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

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

 

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

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

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、“两个黄梨拧脆了,一行白骆丧今天。”

抛砖引玉,高手莫笑。

 

你可能感兴趣的:(如何锁定计算机、打开运行对话框、打开系统帮助、打开资源管理器)