首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C#中确定当前关注的进程名称和版本

在 C# 中确定当前关注的进程名称和版本的方法有很多种。这里提供一种简单的方法:使用 Process 类的相关信息。以下是一个示例:

首先,需要使用 C# 的 System.Diagnostics.Process 类和 System.IO 来实现这个功能。

  1. 通过反射获取程序集名称

首先,通过反射获取程序集的名称。

代码语言:csharp
复制
Assembly assembly = Assembly.GetEntryAssembly();
string program AssemblyTitle = assembly.GetName().Name;
string program AssemblyDescription = assembly.GetName().Version.ToString();
AssemblyName an = AssemblyName.GetAssemblyName(Assembly.GetEntryAssembly().Location);
string AssemblyTitleAndDescription = AssemblyTitle + "-" + AssemblyDescription;
  1. 使用 Process 类获取相关信息

接下来,可以获取正在运行的进程的名称和版本信息。

代码语言:csharp
复制
Process[] processes = Process.GetProcessesByName("your_application_name");
foreach (Process process in processes)
{
 string processName = process.MainWindowTitle;
 if (processName == "")
 {
  processName = process.ProcessName.ToLower();
 }

 string processVersion = "";
 ProcessModule[] modules = process.Modules;

 foreach (ProcessModule module in modules)
 {
  Version version = Assembly.GetEntryAssembly().GetName().Version;
  if (module.ModuleName == an.Name.ToLower() && module.ModuleName == an.EntryPoint.ToLower() && module.FileVersion == version.ToString())
  {
   processVersion = version.ToString();
   break;
  }
 }
}

其中 your_application_name 是你想要查找的程序的名称。

这样,你就可以获取到进程的名称(标题栏上的标题显示的名称)和版本信息。

推荐腾讯云相关产品:

  • 企业官网云产品:例如,Tencent Cloud AppSolution(应用解决方案)、Tencent Cloud Website Plus(网站 Plus)等提供一站式的应用程序的部署和解决方案。

例如,Tencent Cloud AppSolution 为各种类型的应用程序提供了一站式的解决方案,包括应用程序构建、部署、监控和管理。该服务提供了许多开箱即用的工具,包括编译和部署工具以及容器服务,可以帮助开发人员快速建立应用程序和服务。

产品地址:https://www.qcloud.com/solution/app

类似地,对于网站服务和管理,Tencent Cloud Website Plus 提供了一站式的解决方案,包括网站构建、部署、监控和管理。该服务提供了一些开箱即用的工具,包括编译和部署工具、防火墙和负载均衡服务等,可以帮助开发者快速建立高效、安全和可靠的网站解决方案。

产品地址:https://www.qcloud.com/solution/website

代码语言:txt
复制
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

必备 .NET - C# 异常处理

您可以在其中了解 Microsoft .NET Framework 领域所有最新动态,无论是 C# vNext 最新进展(当前C# 7.0)、改进 .NET 内部结构,还是 Roslyn ...在将异步添加到 C# 5.0 语言时,这是无法实现。此外,之前五版 C# 相应 .NET Framework 也有其他许多变更,在某些情况下这些变更非常重要,需要对 C# 编码指南进行编辑。...在实践,catch(System.Exception) 块常规 catch 块(本文通常称为 catch System.Exception 块)都是可以避免,只需在关闭进程前记录异常即可,“处理”...总结 在本文中,我介绍了更新后异常处理指南(与捕获异常有关),主要是由于过去几个版本 C# .NET Framework 改进才需要更新。...若要回顾这些指南详细信息,请转至 itl.tc/ExceptionGuidelinesForCSharp。在未来专栏,我打算更加关注异常引发指南。

2.3K60

一个实用却被忽略命名空间:Microsoft.VisualBasic

虽然是为了VB而建,但并不妨碍我们在C#中使用它。   ...对于本地计算机资源使用,我们可能会着重关注Microsoft.VisualBasic.Devices命名空间,在这里包含了与本机设备操作系统相关资源。...下面,我们将通过几种典型应用了解下如何在C#代码中使用这些资源。...获取操作系统与内存信息 为了实现本功能,我们使用了ComputerInfo类,下面代码显示当前计算机系统名称版本,以及内存相关信息。...如果你需要得到更多关于Windows相关信息,计算机名称(ComputerName)、当前登录名 (UserName)等,可以使用位于System.Windows.Forms命名空间中SystemInformation

2.1K60

.NET周报【1月第2期 2023-01-13】

对,就是文件意思,file是只能用来定义类型访问修饰符,不能定义类型类成员,即使嵌套类也不可以。file是用来定义使用范围最小类型访问修饰符,只限于在当前文件,其他类型成员内访问。...这个版本包括对压力检测支持,基于GPU渲染图像处理,一个新效果插件系统各种性能提升改进。...该版本解决了zlib一个漏洞,并修复了几个bug。.../ 解释了我们在将ReSharper移至与Visual Studio分开进程进程外)运行时遇到障碍正在做事情。...议程(PDF) 【日文】确定你是否不需要管理员权限就能在C#写入文件夹 - Qiita https://qiita.com/Alone-and-Slow/items/a2332bcb500051e19fbc

2.7K20

.NET周刊【3月第1期 2024-03-03】

该组件支持动态数组公式,通过 C#(.NET Core)项目创建工作簿,提取和解析公式,进而修改公式特定参数,替换销售代表姓名。...C#系统菜单添加自定义项 - 开源研究系列文章 https://www.cnblogs.com/lzhdim/p/18047745 这篇文章介绍了如何在 C#应用程序系统菜单添加自定义项方法,并提供了示例代码运行效果截图...此版本添加了向连接库名称添加后缀功能,以及即使在空闲时也可以执行保活检查选项。...此版本包括更快重命名、改进了 C# 异步方法中一次性资源处理、代码格式化反编译器改进、对 dotMemory 内存分析冻结对象堆支持等等。...一个关于尝试将 Google 基于机器学习文件类型确定工具 Magika 从 Python 移植到 C# 故事。

14110

.NET周刊【12月第1期 2023-12-06】

介绍了两种 JSON 序列化库:内置 System.Text.Json 功能强大 Newtonsoft.Json。文章指出,可以全局配置 Json 属性名称序列化方式日期格式,以满足前端需求。...关键性能计数器包括 Web 服务的当前连接数、每秒请求数等,ASP.NET 请求执行时间、请求排队数等,以及 CPU 内存使用情况。...IIS 请求队列是处理前临时存放请求地方,监控请求队列性能计数器有助于优化队列设置,增加工作进程数、优化代码调整队列长度,以减少等待时间,确保请求快速处理。...p=1975 C# 2023 年降临节日历第 2 天文章。如何在 C# 代码格式设置设置大括号之前之后开口。...如何在桌面应用程序包含最小 ASP.NET Core 服务器。

19610

通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

何在编译时加载两个相同程序集 如何同时调用两个两个相同命名空间类型程序集?...,C#调用C++代码,C++抛出一个string类型异常),在C#2.0之前Catch(Exception)是捕捉不了,但之后版本可以。...程序入口方法 2)CLR版本号等一些标志 3)一个可选名称数字签名 4)元数据表,主要用来记录了在源代码定义引用所有的类型成员(方法、字段、属性、参数、事件...)位置其标志Flag(各种修饰符...第一种:通过bindingRedirect节点重定向,即当找到10.0版本时,给定向到6.0版本何在编译时加载两个相同程序集?...而在.NET Framework,这主体可以是Windows账户,也可以是自定义标识,通过生成当前线程或应用程序域使用主体相关信息来支持授权。

2.7K63

C#Process类调用第三方插件实现PDF文件转SWF文件

在项目开发过程,有时会需要用到调用第三方程序实现本系统某一些功能,例如本文中需要使用到swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件呢...接下来就会做一个简单介绍。     在.NET平台中,对C#提供了一个操作对本地远程访问进程,使能够启动停止系统进程。...一.解析System.Diagnostics.Process类       在C#中使用Process类可以提供对本地远程访问进程,使能够启动停止系统进程,并且该类可以对系统进程进行管理。...///如果句柄存储在当前进程对象,则使用它。          ///注意,我们存储在当前进程对象句柄将具有我们需要所有访问权限。...如何操作外部程序线程类System.Diagnostics.Process,并介绍了该类一些常用方法底层实现代码,如果需要对该类进行详细了解,可以根据MSDN.NET底层源码关注释和文章进行细致学习

1.6K60

通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

C#调用C++代码,C++抛出一个string类型异常),在C#2.0之前Catch(Exception)是捕捉不了,但之后版本可以。...除了程序集版本不同外,还有一种情况就是,我一个项目同时引用了程序集A程序集B,但程序集A程序集B命名空间类型名称完全一模一样,这个时候我调用任意一个类型都无法区分它是来自于哪个程序集,那么这种情况我们可以使用...既然是共享存放位置,那不可避免会遇到文件名重复情况,那么为了杜绝该类情况,规定在GAC只能存在强名称程序集,每当CLR要加载强名称程序集时,会先通过标识去GAC查找,而考虑到程序集文件名称一致但版本文化等复杂情况...而在.NET Framework,这主体可以是Windows账户,也可以是自定义标识,通过生成当前线程或应用程序域使用主体相关信息来支持授权。...) 2.在高级生成设置中有:语言版本(可以选择C#版本)、调试信息(相当于csc/debug。

3.9K20

使用 Visual Studio 创建 .NET 控制台应用程序

本教程演示如何在 Visual Studio 2022 创建和运行 .NET 控制台应用程序。...在最新版本 C# ,名为顶级语句新功能允许你省略 类 Main 方法。 大多数现有 C# 程序不使用顶级语句,因此本教程不使用此新功能。...在 Program.cs 或 Program.vb ,将 方法内容(当前只是调用 行)替换为以下代码: Console.WriteLine("What is your name?")...它会将此字符串存储到名为 name 变量。 它还会检索 DateTime.Now 属性值(其中包含当前本地时间),并将此值赋给 currentDate 变量。...替代方法是在 C# 中使用 \n 和在 Visual Basic 中使用 vbCrLf。 字符串前面的美元符号 ($) 使你可以将表达式(变量名称)放入字符串大括号内。

4.2K20

C# 指标

要在 Counter ObservableCounter 之间进行选择,具体要考虑其中哪一个更容易添加到现有代码:是对每个增量操作 API 调用,还是从代码维护变量读取当前总计数回调。...要在它们之间进行选择,具体要考虑其中哪一个更容易添加到现有代码:是对每个增量减量操作 API 调用,还是从代码维护变量读取当前回调。...不同检测类型示例 停止前面启动示例进程,并将 Program.cs 示例代码替换为: C# using System; using System.Diagnostics.Metrics; using...停止前面启动示例进程,并将 Program.cs 示例代码替换为: C# using System; using System.Diagnostics.Metrics; using System.Threading...如果在不同指标或其他遥测记录重用标记名称,则无论用于何处,它们应具有相同含义法律意义。

16220

.NET周刊【5月第3期 2024-05-19】

面临问题是晚间 MongoDB、SQL Server WebAPI 进程 CPU 使用率暴增,导致数据处理不及时。...Azure Service Bus 等组件属性名称更新以更清晰表达其含义。仪表板更新增强了视觉效果多语言支持,容器镜像默认设置现在包含更完整注册中心标签信息。...BaseModel 继承自 PageModel,通过检查请求数据或 Cookie 来确定访问有效性,无效访问将弹出错误提示,并中断页面加载回发事件。...创建一个传出请求需要目标服务地址、操作名称、请求字段有效负载等信息,其中请求字段有效负载对管道内通信至关重要。文章还展示了序列图来解释请求有效负载发送过程。...区分联合:是什么驱动了 C# 社区关注

100

.NET周刊【2月第3期 2024-02-25】

进一步研究,确定这些对象因MethodTable被损坏而出错,作者还用临近内存数据排查问题,最后通过相关字段验证了堆一致性。 C# 12 中新增八大功能你都知道吗?...在 C# 源文件,可以通过编写由三斜杠表示特殊注释字段,在代码建立类库所需 API 文档。...更新添加推荐组件 调试诊断 使用条件断点跟踪点增强调试 简化内存工具内存使用情况调查 EXE 目标检测 改进了“附加到进程”对话框 C++游戏开发 CMake目标固定 构建见解模板视图 添加了虚幻引擎宏缩进...本文讨论了使 Visual Studio 设计器兼容 64 位、迁移到进程外设计器、使设计器成为 32 位 .NET Framework 应用程序进程优点困难,以及发生情况到 17.9。....NET 进程

13010

.NET周报【12月第1期 2022-12-08】

这篇文章涵盖了这个版本以下主题 性能改进 支持.NET 7 SDK 支持 WSL2 UX/UI 改进 对接工具窗口 新主工具条 最新 C#特性 网站开发更新 游戏开发更新 NuGet 支持 中央软件包管理漏洞版本检测...这篇文章涵盖了这个版本以下主题 C#支持 C# 11 特点 语言注入 全球进口水沟标志 漏洞版本依赖检测 支持 ARM64 上 Visual Studio 动态程序分析数据库检查 支持 C+...确定自然类型如何根据描述方式而变化文章,作为确定变量类型时一种推论。.../ 这篇文章解释了如何在 WinForms .NET Core 及以上版本进程外设计器中支持自定义控件,该设计器在 Visual Studio 中使用。...优先级绑定规则。 以及在 C#优先级连接规则。 为什么.NET 7 是开始 C# SIMD 编程最佳场所。

4.6K20

windows常用命令

在渗透测试遇到 Windows 概率是非常大,那么在拿到一台服务器权限之后,通常会获得一个 shell,想要进行下一步渗透,几乎都是需要通过在 shell 中使用 Windows 命令来进行渗透...DLL信息 tasklist /m 显示进程所有者 tasklist /v 查看远程主机进程列表 tasklist /S ip /v 搜索所有 pdf 文件 dir /a /s /b c:\'.pdf....txt 搜索敏感文件名称 dir /s *pass* == *cred* == *vnc* == *.config* 更改服务二进制路径 sc config upnphost binpath=...\Framework64\v4.0.30319 (或者 .NET 对应版本目录) 2、编译 x86 版本 csc.exe /unsafe /reference:"C:\path\to\System.Management.Automation.dll...,看看执行结果,了解一下这些命令作用,看如何在实际渗透应用,话不多说,有好文章给我投稿呦。

59100

.NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体

控件 .NET混合开发解决方案8 WinForm程序通过设置固定版本运行时BrowserExecutableFolder属性集成WebView2控件 .NET混合开发解决方案9 WebView2...但是在企业级应用软件业务需求可能更加复杂,JS调用C#方法之后,需要访问宿主窗体,设置窗体(WinForm、WPF、WinUI、Win32)控件等。...窗体 SetResultFromWeb() 方法 在普通访问一个窗体有两种方式 第一种是使用窗体类来实例化一个对象 Frm4JSCallWinForm form = new Frm4JSCallWinForm...,在构造函数赋值为当前运行对象值。...步骤4 网页定义一个测试按钮,并设置点击事件 点击事件,第43行获取主机对象,customWebView2HostObject 与 C#定义名称需要完全相同。

2.3K40
领券