通过PID获取进程句柄

2024-07-04

我想通过进程名称获取进程的句柄。

我有 PID 但当我使用openProcess要始终获取句柄,它将返回 0 或 180,这是我用来使 PID 正常工作的函数

Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,PID);

我应该怎么办?


当您只知道进程名称时,没有直接的方法来获取进程句柄,除非您使用CreateProcess.

相反,您可以使用CreateToolhelp32Snapshot http://msdn.microsoft.com/en-us/library/ms682489.aspx, Process32First http://msdn.microsoft.com/en-us/library/ms684834.aspx, and Process32Next http://msdn.microsoft.com/en-us/library/ms684836.aspx搜索具有您想要的名称的所有进程。请记住,可能有多个同名进程。这些函数会告诉您进程 ID。一旦你有了它,你就可以使用OpenProcess,正如您已经演示的那样。如果OpenProcess返回非零的值(例如 180),那么它就为您提供了有效的进程句柄。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过PID获取进程句柄 的相关文章

  • 如何使用 Delphi 播放单音或自定义波形?

    我查了一些代码 似乎一切都在创建一些数学函数波 但我想要一个单音 或者用自定义单音制作的自定义波 我读了这个如何生成不同频率的连续音调 https stackoverflow com questions 7742377 how can i
  • 光标不工作时完成课程

    我在 2010 年和 XE2 中广泛使用了 Delphi 中的 Complete Class at Cursor 函数 最近 在安装 XE2 的 Update 4 后 Cursor 上的 Complete Class 停止工作 经过一些研究
  • 为什么我的 Delphi FindDialog 中的光标没有变成沙漏形?

    我只是用以下命令打开 FindDialog FindDialog Execute 在我的 FindDialog OnFind 事件中 我想将光标更改为沙漏以搜索大文件 这可能需要几秒钟 所以在 OnFind 事件中我这样做 Screen C
  • Delphi XE3,丑陋的 StringGrid 边框

    与 Delphi 7 相比 为什么 XE3 中的 String Grid 边框如此不清晰 如何解决这个问题 Delphi 2010 之后所有的网格都是主题化的 要在网格上禁用新主题 您必须设置属性 在对象检查器中将 DrawingStyle
  • 如何使用 LiveBindings 在 TStringGrid 中显示超过 200 行?

    我有一个TDataSource这是由一个支持TClientDataset绑定到一个TStringGrid 我通过右键单击网格并选择 Link to DB Datasource 然后选择数据源 这为我设置了 LiveBindings 当我运行
  • 对角画笔样式给我黑色区域

    我想用以下代码在画布上绘制一个对角线十字 InFlateRect r 1 1 Canvas Brush Color clYellow Canvas Brush Style bsFDiagonal Canvas Pen Color clRed
  • 获取当前时间毫秒

    如何获取当前时间 以毫秒为单位 我知道使用Now 但我需要以毫秒为单位的时间 var today TDateTime begin today Now DateUtils MilliSecondsBetween Now 0
  • 使用 Indy 组件下载、暂停和恢复下载

    实际上我正在使用 TIdHTTP 组件从互联网下载文件 我想知道是否可以使用此组件或另一个 indy 组件暂停和恢复下载 这是我当前的代码 这可以正常下载文件 没有简历 但是 现在我想暂停下载关闭我的应用程序 当我的应用程序重新启动时 然后
  • 如何配置新的 Delphi XE8 Editor 开始-结束视觉提示?

    Delphi XE8 编辑器具有视觉提示 以便您知道哪个begin与哪个相配end 在我们的团队中 我们有一个惯例 始终把begin与所有者子句在同一行 有没有办法让视觉提示与相应的内容对齐end而不是它的begin UPDATE 这个问题
  • 如何将接口名称映射到不同的方法名称?

    如果我有一个实现接口的对象 默认情况下它会自动将接口方法映射到具有相同名称和签名的类方法上 有什么方法可以覆盖它并将接口方法映射到具有相同签名但名称不同的方法上 例如 如果我实现两个接口 这两个接口都有一个具有相同名称和签名的方法 并且我希
  • Delphi XE6 TForm.AutoSize

    我在 Delphi XE2 中编写了代码 运行得很好 但在Delphi XE6中它不起作用 我创建了一个 Tform 其属性 AutoSize 为 true 我使用 TPanel 将 alTop 与按钮对齐来创建其他一些面板 procedu
  • 如何在.pot文件中排除DBGrid.Column.FieldName

    我用Delphi 6做了一个应用程序 之后 我提取了一个 pot 文件 其中包含所有要翻译的字符串 问题是有些字符串不需要翻译 如果翻译就会产生问题 其中之一是 TDBGrid Columns x FiedlName 我尝试将这些行放入 g
  • 我可以使用什么脚本工具来自动测试 Delphi 程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个用于自动化测试的工具 我将使用脚本进行测试 而不仅仅是自动化 这意味着它不能只发送一些按
  • OnGuard 许可

    最近 我研究了使用 OnGuard 来帮助诚实的人遵守他们的原则 我同意这里许多人表达的观点 即任何许可制度都无法保护您免受那些想要使用您的软件但不想付费的人的侵害 另一方面 我想避免让其他人太容易为我的程序创建有效密钥 研究完手册和示例后
  • Virtual StringTree:如何判断节点文本是否完整显示?

    当TVirtualStreeTree HintMode hmTooltip时 当鼠标悬停在节点文本未完全显示的节点和列上时 节点文本将成为提示文本 但我必须设置 HintMode hmHint 以便我可以在事件处理程序中根据当前鼠标光标所在
  • Delphi 中的 XML 命名空间

    我正在尝试访问 XML 文件中的一些节点 但无法使其工作 因为我可能不理解 Delphi 中的 XML Namepsaces
  • 如何更改 TTabItem 的样式

    请看下面的图片 我需要修改 TTabItem 处蓝色条的颜色 但我没有找到可以修改的地方 哪些属性或样式可以修改它 要更改选项卡项目的外观 您可以设计自定义样式 使用 TStyleBook 组件或将样式加载到样本并修改布局树上的 tabit
  • 如何调用 Documents.open 并避免出现“文件正在使用”对话框?

    我正在写一些非常简单的代码 https github com tobya DocTo打开 Word 文档 将其保存为新格式并关闭文档 但是 如果文档处于锁定状态并出现 文件正在使用 对话框 我会遇到问题 现在我很高兴自动选择选项 1 或 3
  • TMainMenu 中的透明 PNG 图像(带有 TImageList)

    我想在 TImageList 中加载具有透明背景的 PNG 并在 TMainMenu 中使用它 通过 TAction 然而 在 Delphi 中 背景只是黑色 This https stackoverflow com questions 4
  • 如何获取集合类型的任何变量的元素数量?

    AFAIK 没有内置函数 在网上搜索我发现了这个function http www codenewsfast com cnf article 0 permalink art ng53q107885它对我有用 但我不想使用它 因为它是汇编 我

随机推荐