如何打开计算机管理对话框,如何锁定计算机、打开运行对话框、打开系统帮助、打开资源管理器...

本文介绍了如何使用C++模拟键盘事件来执行Windows系统的常见操作,如锁定计算机、打开运行对话框、显示系统帮助、打开资源管理器等。通过键盘事件函数keybd_event实现了快捷键的模拟,同时也提到了Shell32.dll中未公开API的一种方法来打开自定义运行对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何锁定计算机、打开运行对话框、打开系统帮助、打开资源管理器

这个问题我想也许很多朋友遇到过,我最近用到了,有必要记录一下,以期与大家共勉。

由于系统里默认有一些组合键如:

WIN(CTRL和ALT中间的那个键)+R   运行

WIN+F                          查找

WIN+D                          显示桌面

WIN+E                          资源管理器

WIN+U                          辅助工具

WIN+L                          切换用户

那么很自然的,我们想到了模拟系统按键,当然还有一些可以通过其他途径也能实现,这里也进行列举。

锁定计算机:

实现思路模拟系统按键:

void LockComputer()

{

//模拟按下Windows键+L键

keybd_event(0x5B, 0, 0, 0);

keybd_event((unsigned char)'L', 0, 0, 0);

keybd_event((unsigned char)'L', 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

打开运行对话框:

实现思路有两种:

(1) 模拟按下Windows键+R键

void ShowRunDlg()

{

//模拟按下Windows键+R键

keybd_event(0x5B, 0, 0, 0);

keybd_event((unsigned char)'R', 0, 0, 0);

keybd_event((unsigned char)'R', 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

(2) Shell32.dll里有一个未公开的API,无函数名,序号为61,可以显示定制的运行对话框,

字符集要设成Unicode,否则可能会是乱码。

/**************************************************************************************

* 函数名称 : ShowMyRunDlg(...)

* 功能描述 : 显示定制的运行对话框

* 入 参 : HWND hWndOwner, //所有者窗口句柄

HICON hIcon, //要显示的图标句柄

PTCHAR pszDirectory, //“浏览”按钮的目录,该目录下的文件可省略路径

PTCHAR pszTitle, //窗口标题的文字

PTCHAR pszDescription, //窗口上的文本描述

UINT nFlags //样式

* 出 参 : 无

* 返回值 : -1 失败 0 成功

* 作 者 : 一剑

* 创建日期 : 2012/07/31

* 处理说明 : 显示定制的运行对话框

*************************************************************************************/

BOOL ShowMyRunDlg(HWND hWndOwner, HICON hIcon, PTCHAR pszDirectory,

PTCHAR pszTitle, PTCHAR pszDescription, UINT nFlags)

{

/* 声明未公开的API函数原型,函数名称可任意指定 */

typedef void (CALLBACK *lpfnRunDlg)(HWND, HICON, PTCHAR, PTCHAR, PTCHAR, UINT);

HMODULE hModule = LoadLibrary(TEXT("Shell32.dll"));

if(hModule != NULL)

{

lpfnRunDlg RunDlg = (lpfnRunDlg)GetProcAddress(hModule, (LPCSTR)MAKEINTRESOURCE(61));

RunDlg(hWndOwner, hIcon, pszDirectory, pszTitle, pszDescription, nFlags);

FreeLibrary(hModule);

return TRUE;

}

return FALSE;

}

调用方法示例:

ShowMyRunDlg(hwnd, LoadIcon(hAppInstance, MAKEINTRESOURCE(IDI_MAIN_ICON)),

TEXT("C:\\"), TEXT("窗口标题的文字"), TEXT("窗口上的文本描述"),

WS_POPUPWINDOW|WS_VISIBLE|WS_CLIPSIBLINGS|WS_DLGFRAME|WS_OVERLAPPED|

DS_3DLOOK|DS_FIXEDSYS|DS_SETFONT|DS_MODALFRAME|DS_NOIDLEMSG);

打开系统帮助和支持窗口:

void OpenSysHelp()

{

//模拟按下Windows键+VK_F1键

keybd_event(0x5B, 0, 0, 0);

keybd_event(VK_F1, 0, 0, 0);

keybd_event(VK_F1, 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

打开资源管理器窗口:

void OpenExplorerWnd()

{

//模拟按下Windows键+E键

keybd_event(0x5B, 0, 0, 0);

keybd_event((unsigned char)'E', 0, 0, 0);

keybd_event((unsigned char)'E', 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

打开查找窗口:

void OpenFindWnd()

{

//模拟按下Windows键+F键

keybd_event(0x5B, 0, 0, 0);

keybd_event((unsigned char)'F', 0, 0, 0);

keybd_event((unsigned char)'F', 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

打开辅助工具窗口:

void OpenToolWnd()

{

//模拟按下Windows键+U键

keybd_event(0x5B, 0, 0, 0);

keybd_event((unsigned char)'U', 0, 0, 0);

keybd_event((unsigned char)'U', 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

显示桌面:

void GotoDesktop()

{

//模拟按下Windows键+D键

keybd_event(0x5B, 0, 0, 0);

keybd_event((unsigned char)'D', 0, 0, 0);

keybd_event((unsigned char)'D', 0, 2, 0);

keybd_event(0x5B, 0, 2, 0);

}

附赠“躺尸剑法”口诀:

1、“落泥招大姐,马命风小小。”

2、“哥翁喊上来,是横不敢过。”

3、“闯前门越广,疑尸地上爽。举头亡命也,低头死故乡。”

4、“忽听喷惊风,连山若布逃。”

5、“白日一扇近,长活如海流。鱼穷千里谋,跟上一层楼。”

6、“两个黄梨拧脆了,一行白骆丧今天。”

抛砖引玉,高手莫笑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值