我想要获得当前运行程序的名称,即程序的可执行名称。在C/ c++中,你从args[0]中得到它。
当前回答
对于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.AppDomain.CurrentDomain.FriendlyName -返回带扩展名的文件名(例如MyApp.exe)。
System.Diagnostics.Process.GetCurrentProcess()。ProcessName -返回没有扩展名的文件名(例如MyApp)。
.MainModule System.Diagnostics.Process.GetCurrentProcess()。FileName -返回完整的路径和文件名(例如C:\Examples\Processes\MyApp.exe)。然后,您可以将此传递到System.IO.Path.GetFileName()或System.IO.Path.GetFileNameWithoutExtension()以实现与上述相同的结果。
如果你只需要应用程序名而不需要扩展名,这是有效的:
Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName);
System.Reflection.Assembly.GetEntryAssembly()。如果程序集没有从内存中加载,Location返回exe名称的位置。 System.Reflection.Assembly.GetEntryAssembly()。CodeBase以URL的形式返回位置。
System.Diagnostics.Process.GetCurrentProcess()获取当前正在运行的进程。您可以使用ProcessName属性来确定名称。下面是一个示例控制台应用程序。
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Process.GetCurrentProcess().ProcessName);
Console.ReadLine();
}
}
在。net Core(或Mono)上,当定义进程的二进制文件是Mono或。net Core (dotnet)的运行时二进制文件,而不是您感兴趣的实际应用程序时,大多数答案都不适用。在这种情况下,使用这个:
var myName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location);
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 如何从终端/命令行调用VS代码编辑器
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 在Jar文件中运行类
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 如何在Windows命令提示符下运行.sh ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?