Windows下怎么用C语言获取正在运行的程序的路径?(windows查看进程句柄数)
Windows下怎么用C语言获取正在运行的程序的路径?
1. 可以通过在Windows下使用C语言获取正在运行的程序的路径。
(图片来源网络,侵删)2. 在Windows下,可以使用GetModuleFileName()函数来获取正在运行的程序的路径。
可以通过查找当前进程的句柄来得到当前程序的句柄,然后使用GetModuleFileName()函数来获取当前程序的完整路径和文件名。
3. 值得注意的是,如果应用程序没有一个主模块,或者主模块被卸载了,GetModuleFileName()函数则可能返回一个不正确的路径。
(图片来源网络,侵删)所以,我们需要按照进程扫描所有的模块,并使用GetModuleFileName()函数来获得正确的路径。
很简单:
API函数:
(图片来源网络,侵删)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点解答对大家有用。