百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 电脑系统 > 正文

win32程序(win32程序菜单函数过多)

swdejp 2026-01-16 17:41 33 浏览

Win32进程间通信的方式主要有:

(1)剪贴板(Clip Board);

(2)动态数据交换(Dynamic Data Exchange);

(3)部件对象模型(Component Object Model);

(4)文件映射(File Mapping);

(5)邮件槽(Mail Slots);

(6)管道(Pipes);

(7)Win32套接字(Socket);

(8)远程过程调用(Remote Procedure Call);

(9)WM_COPYDATA消息(WM_COPYDATA Message)。 在WIN32中,可使用在PSAPI .DLL中提供的Process status Helper函数帮助我们获取进程信息。

(1)EnumProcesses()函数可以获取进程的ID,其原型为:

BOOL EnumProcesses(DWORD * lpidProcess, DWORD cb, DWORD*cbNeeded);

参数lpidProcess:一个足够大的DWORD类型的数组,用于存放进程的ID值;参数cb:存放进程ID值的数组的最大长度,是一个DWORD类型的数据;

参数cbNeeded:指向一个DWORD类型数据的指针,用于返回进程的数目;

函数返回值:如果调用成功,返回TRUE,同时将所有进程的ID值存放在lpidProcess参数所指向的数组中,进程个数存放在cbNeeded参数所指向的变量中;如果调用失败,返回FALSE。

(2)GetModuleFileNameExA()函数可以实现通过进程句柄获取进程文件名,其原型为:

DWORD GetModuleFileNameExA(HANDLE hProcess, HMODULE hModule,LPTSTR lpstrFileName, DWORD nsize);

参数hProcess:接受进程句柄的参数,是HANDLE类型的变量;

参数hModule:指针型参数,在本文的程序中取值为NULL;

参数lpstrFileName:LPTSTR类型的指针,用于接受主调函数传递来的用于存放进程名的字符数组指针;

参数nsize:lpstrFileName所指数组的长度;

函数返回值:如果调用成功,返回一个大于0的DWORD类型的数据,同时将hProcess所对应的进程名存放在lpstrFileName参数所指向的数组中;如果调用失败,则返回0。

通过下列代码就可以遍历系统中的进程,获得进程列表:

//获取当前进程总数

EnumProcesses(process_ids, sizeof(process_ids), &num_processes);

//遍历进程

for (int i = 0; i < num_processes; i++)

{

//根据进程ID获取句柄

process[i] = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0,

process_ids[i]);

//通过句柄获取进程文件名

if (GetModuleFileNameExA(process[i], NULL, File_name, sizeof(fileName)))

cout << fileName << endl;

}

相关推荐

三星s23ultra(三星s23ultra优缺点)

三星S23Ultra的详细配置是,采用6.1英寸FHD+屏幕,刷新率依然为120Hz,配备8GB运行内存,后置依然使用三摄方案,不过与GalaxyS22不同的是,新款手机的取消了拍照模组的凸起,三颗...

迅捷wifi(迅捷音频转换器)

答:迅捷无线路由器连接wifi的操作步骤:第一步、连接迅捷 路由器1、电话线上网:用户需要准备2根网线,一根网线用来连接ADSLModem(宽带猫)与迅捷FW326R路由器。...

取消文件加密怎么设置(如何取消文件加密设置)

点击右上角的【文件】。再点击右侧的【保护文档】。【保护文档】展开后再点击【用密码进行加密】。会跳出一个对话框,把密码删掉。密码删掉后点击【确定】。文档退出时注意点击【保存】才能取消加密。取...

bios怎么退出(联想笔记本退出bios怎么退出)

具体操作方法如下:1.如果没有更改BIOS设置,可以按ESC或者屏幕最后的Exit选项退出。BIOS主菜单上有退出的选项,主要功能键还有说明,选择【EXITWITHOUTSAVING】即可退出BI...

百度平台(百度平台商家我的订单)

需要具体问题具体分析,不能一概而论。举报百度的不当行为可以根据不同情况去不同的部门投诉。如果是关于知识产权方面的问题,可以向国家知识产权局投诉;如果是网络安全方面的问题,可以向公安机关网络安全部门投诉...

剪切到u盘的文件不见了怎么恢复

检查回收站:首先查看电脑的回收站,可能文件被误删后被移动到回收站中。如果找到了被剪切的文件,可以将其恢复到原来的位置或者将其复制到U盘中。使用数据恢复软件:如果文件不在回收站中,您可以尝试使用一些数据...

桌面文件如何加密(桌面文件如何加密码)

1.首先,我们找到该文件夹,右键点击,选择“添加到压缩文件”。2.出现“压缩”面板,我们点击常规选项卡下面的“设置密码”。3.然后,我们创建密码,勾选“加密文件名”,点击确定。4.把原文件删除之后,想...

迅雷下载电脑版(迅雷电脑版叫什么)

下载完毕之后点击打开文件夹,就可以找到迅雷下载的根目录,然后将下载更录像的文件,通过复制或者剪切的形式复制到电脑的其他盘中。如果你的迅雷下载的文件在手机上可以直接将手机上的文件传到你的迅雷云盘,在电脑...

mac删除os只装win10(删除mac装windows)

mac只装win10三种的方法,1、首先打开mac的finder,找到应用程序里的实用工具中的BootCamp助力工具。2、打开BootCamp之后,插入一个至少8G的优盘,点击继续。3、选择创建...

连接别人的共享打印机(连接别人的共享打印机要安装驱动吗)
  • 连接别人的共享打印机(连接别人的共享打印机要安装驱动吗)
  • 连接别人的共享打印机(连接别人的共享打印机要安装驱动吗)
  • 连接别人的共享打印机(连接别人的共享打印机要安装驱动吗)
  • 连接别人的共享打印机(连接别人的共享打印机要安装驱动吗)
移动硬盘数据怎么恢复(移动硬盘数据恢复方法)

为了恢复移动硬盘数据,您可以尝试以下方法:1.停止读写:一旦发现移动硬盘数据丢失,首先要做的是停止任何读写操作,以避免新的数据覆盖原有的数据。2.下载数据恢复软件:您可以在网上找到许多免费的数据恢...

电脑打不开如何用u盘重装系统

如果电脑不能识别U盘,可以考虑使用其他引导设备,如DVD或外接硬盘等。首先需要在BIOS中设置引导顺序,将DVD或外接硬盘设置为第一启动项。然后将系统安装光盘或制作好的U盘镜像文件插入设备中,重新启动...

怎么装系统win11系统(怎么重装系统win11)

windows11系统安装方法如下1、下载Windows11系统镜像;2、下载并安装VirtualBox软件。【安装教程】1、以VM虚拟机安装Windows11为例,首先打开VirtualBox,...

win10下制作mac启动u盘(win电脑制作mac启动u盘)

1、开机/重启的时候长按“optin键”。2、进入一个开机启动选项界面。3、使用方向键选择右边的“U盘启动”,按回车键进入。4、直接就能进入U盘启动选项界面,可以根据自己的需求选择对应的选项。扩展资料...

温7系统升级win10怎么样操作

Windows7可以升级成windows10,但是有一个前提条件就是你的电脑的配置一定要能适合windows10的要求,否则就会出现小马拉大车的现象,卡顿的不得了,你用起来也十分的闹心。内存一定要在...