如何查看是否已从桌面或cmd shell启动C#应用程序?
msdn文档在这一部分有点模糊。也许有人可以帮助我在这里:)
很多!
答案 0 :(得分:5)
这似乎有效:
string[] args = System.Environment.GetCommandLineArgs();
if(args[0] == "you exe name"){ ...}
如果双击它,args [0]包含完整文件夹。
注意,您需要实际调用.GetCommandLineArgs()
,args[]
参数中的static void Main(string[] args)
参数已删除此项目。
- 编辑
这只会检测它是否与.exe
本身的路径相同。如果您从子文件夹(foo\hello.exe
)运行它,它将无效。
答案 1 :(得分:3)
尝试获取父进程:
var pc = new PerformanceCounter("Process", "Creating Process Id",
Process.GetCurrentProcess().ProcessName);
var p = Process.GetProcessById((int)pc.RawValue);
但是,当同一进程有多个实例时,不确定这是否有效。在这种情况下,最好使用这种方法:http://www.codeproject.com/KB/threads/ParentPID.aspx
答案 2 :(得分:1)
我很确定没有办法知道这一点,这就是文档“模糊”的原因。