Windows下怎么用C语言获取正在运行的程序的路径?(windows查看进程句柄数)

2023-12-27 41阅读

Windows下怎么用C语言获取正在运行的程序的路径?

1. 可以通过在Windows下使用C语言获取正在运行的程序的路径。

Windows下怎么用C语言获取正在运行的程序的路径?(windows查看进程句柄数)(图片来源网络,侵删)

2. 在Windows下,可以使用GetModuleFileName()函数来获取正在运行的程序的路径。

可以通过查找当前进程的句柄来得到当前程序的句柄,然后使用GetModuleFileName()函数来获取当前程序的完整路径和文件名。

3. 值得注意的是,如果应用程序没有一个主模块,或者主模块被卸载了,GetModuleFileName()函数则可能返回一个不正确的路径。

Windows下怎么用C语言获取正在运行的程序的路径?(windows查看进程句柄数)(图片来源网络,侵删)

所以,我们需要按照进程扫描所有的模块,并使用GetModuleFileName()函数来获得正确的路径。

很简单:

API函数:

Windows下怎么用C语言获取正在运行的程序的路径?(windows查看进程句柄数)(图片来源网络,侵删)

GetModuleFileName(模块句柄,保存的字符数组,字符数组的大小);

一般来说,要获取正在运行程序的全路径,那就在第一个参数写个0

参数2是保存的数组,获取的路径将保存在这个数组

参数三是字符数组的大小

给你一个示例程序:

#include <windows.h>

#include <stdio.h>

void main()

怎么查看程序文件?

工具/原材料电脑。

1、在电脑的任务管理器页面中,点击“性能”按钮;

2、点击性能以后,再页面的最下方点击“打开资源监视器”;

3、在进入资源监视器界面后,再点击选择“CPU”按钮;

4、点击CPU以后,再下方选择“关联的句柄”搜索框,就会出现相应程序的占用情况;

5、找到所需要删除的文件进行删除即可。

delphi下,通过已知pid,如何获取这个程序的句柄名称?

先用FindWindow得到窗口句柄

再用GetDlgItem 得到 该窗口中 已知控件ID的控件的句柄(控件ID用spy++或spy4win得到)

建议你去玩一下csdn上的大神ccrun 做的spy4win 比spy++可强多了 例子中就用了spy4win 自动生成 delphi 查找窗口语句

什么是句柄,解释一下好吗?

现理解的句柄有以下两种意义:

第一种是指程序设计;

第二种是指Windows编程。现在大部分都是指程序设计、程序开发这类。

句柄解释也有以下两种:

第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

第二种解释:句柄是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例。

例如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但这里的句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

到此,以上就是小编对于查看进程打开的句柄数的问题就介绍到这了,希望这4点解答对大家有用。

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]