xamarin 通过命令提示符检测程序是否正在运行

xriantvc  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(178)

有没有办法检测c# xamarin控制台库是正在运行还是通过终端运行?

console.read();

如果用户直接运行该程序,则他们可以看到该程序的输出

nnsrf1az

nnsrf1az1#

这样的事情应该会让你走上正确的方向:(https://msdn.microsoft.com/en-us/library/z3w4xdc9(v=vs.110).aspx)(英文)

var processes = Process.GetProcessesByName("Name");
if(processes.Count > 0)
{
    //do something here
}
xa9qqrwz

xa9qqrwz2#

使用命令

Environment.CommandLine

允许打开程序的命令。如果程序在命令行中运行,则环境。命令行将显示

ProgramName -parameter

但是,如果通过资源管理器或调试程序调用它,它将作为

"PathToFile/ProgramName.exe"

这允许进程通过一些if语句查看它是通过资源管理器调用的还是通过CMD调用的

hmmo2u0o

hmmo2u0o3#

如果你从命令行运行,那么MainWindowTitle将是空的。所以让我们先检查一下我们是否在运行UserInteractive,然后检查标题是否是空的。

private bool GUIMode()
{
    return Environment.UserInteractive && !string.IsNullOrEmpty(Process.GetCurrentProcess().MainWindowTitle);
}

或VB

Private Function GUIMode() As Boolean
    Return Environment.UserInteractive AndAlso Not String.IsNullOrEmpty(Process.GetCurrentProcess().MainWindowTitle)
End Function

相关问题