我想要获得当前运行程序的名称,即程序的可执行名称。在C/ c++中,你从args[0]中得到它。


当前回答

您可以使用Environment. getcommandlineargs()来获取参数和Environment. getcommandlineargs()。CommandLine获取实际输入的命令行。

此外,您可以使用Assembly.GetEntryAssembly()或Process.GetCurrentProcess()。

但是,在调试时,您应该小心,因为最后一个示例可能会给出调试器的可执行文件名称(取决于您如何附加调试器),而不是可执行文件,其他示例可能也是如此。

其他回答

对于windows应用程序(窗体和控制台),我使用这个:

在VS中添加对System.Windows.Forms的引用,然后:

using System.Windows.Forms;
namespace whatever
{
    class Program
    {
        static string ApplicationName = Application.ProductName.ToString();
        static void Main(string[] args)
        {
            ........
        }
    }
}

无论我是运行实际的可执行文件还是在VS中调试,这对我来说都是正确的。

注意,它返回的是应用程序名称,而不是扩展名。

John

如果您需要程序名称来设置防火墙规则,请使用:

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

这将确保在VisualStudio中调试和在windows中直接运行应用程序时名称是正确的。

更多选择:

System.Reflection.Assembly.GetExecutingAssembly () . getname () . name .CodeBase Path.GetFileName (System.Reflection.Assembly.GetExecutingAssembly () . getname ()

System.AppDomain.CurrentDomain.FriendlyName

来获取路径和名称

.MainModule.FileName System.Diagnostics.Process.GetCurrentProcess ()