如何判断是否从桌面或cmd shell启动了C#应用程序?

时间:2009-09-08 05:12:09

标签: c#

如何查看是否已从桌面或cmd shell启动C#应用程序?

msdn文档在这一部分有点模糊。也许有人可以帮助我在这里:)

很多!

3 个答案:

答案 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)

我很确定没有办法知道这一点,这就是文档“模糊”的原因。