• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              3 隨筆 :: 10 文章 :: 0 評(píng)論 :: 0 Trackbacks

            一 鍵盤
            1.1 Disabling Low-level Keys


            #define _WIN32_WINNT 0x0400
            #include
            LRESULT CALLBACK LowLevelKeyboardProc(int nCode,
            ?????????? WPARAM wParam, LPARAM lParam)
            {
            ?BOOL fEatKeystroke = FALSE;
            ?
            ?if (nCode == HC_ACTION) {
            ? switch (wParam) {
            ? case WM_KEYDOWN:?
            ? case WM_SYSKEYDOWN:
            ? case WM_KEYUP:???
            ? case WM_SYSKEYUP:
            ?? PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
            ?? fEatKeystroke =
            ??? ((p->vkCode == VK_TAB)??? &&? ((p->flags & LLKHF_ALTDOWN) != 0)) ||
            ??? ((p->vkCode == VK_ESCAPE) &&? ((p->flags & LLKHF_ALTDOWN) != 0)) ||
            ??? ((p->vkCode == VK_ESCAPE) &&? ((GetKeyState(VK_CONTROL)&0x8000) != 0))||
            ??? ( p->vkCode == VK_LWIN)?? ||? ( p->vkCode==VK_RWIN )
            ??? ;
            ?? break;
            ? }
            ?}
            ?return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam,
            ? lParam));
            }


            int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int)
            {
            ??????
            ??????? // Install the low-level keyboard & mouse hooks
            ??????? HHOOK hhkLowLevelKybd? = SetWindowsHookEx(WH_KEYBOARD_LL,
            ??????? LowLevelKeyboardProc, hinstExe, 0);
            ?
            ?????? // Keep this app running until we're told to stop
            ???????? MessageBox(NULL,
            ???????????? TEXT("Alt+Esc, Ctrl+Esc, Alt+Tab, LWIN and RWIN are now disabled.\n")?
            ????????? TEXT("Click \"Ok\" to terminate this application and re-enable these keys."),
            ??????????????? TEXT("Disable Low-Level Keys"),
            ??????????????? MB_OK);
            ?
            ???????????? UnhookWindowsHookEx(hhkLowLevelKybd);
            ???????????? return(0);
            }


            1.2 系統(tǒng)熱鍵
            ??????? 1.屏蔽:SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,true,0, SPIF_UPDATEINIFILE);
            ??????? 2.恢復(fù):SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,false,? 0, SPIF_UPDATEINIFILE);

            1.3 模擬按鍵
            ? 讓系統(tǒng)模擬一次按下WIN+D鍵?
            ?
            ?????????????? keybd_event(VK_LWIN,0,0,0);?
            ?????????????? keybd_event('D',0,0,0);?
            ?????????????? keybd_event(VK_LWIN,0,KEYEVENTF_KEYUP,0);?
            ?????????????? keybd_event('D',0,KEYEVENTF_KEYUP,0);

            1.4 切換到當(dāng)前桌面

            模擬最小化屏幕快捷鍵Window+D?
            ?
            ???????????????????????????? keybd_event(VK_LWIN,0,0,0);?????
            ???????????????????????????? keybd_event('D',0,0,0);?????
            ???????????????????????????? keybd_event(VK_LWIN,0,KEYEVENTF_KEYUP,0);?????
            ???????????????????????????? keybd_event('D',0,KEYEVENTF_KEYUP,0);?
            ---------------------------------------------------------------?
            ?
            正統(tǒng)的辦法如下:?
            ?
            #include???
            #include???
            ?
            int? main? ()?
            ?????? {?
            ?????????????? CoInitialize? (0);?
            ?????????????? IShellDispatch4? *pdisp? =? NULL;?
            ?????????????? CoCreateInstance? (CLSID_Shell,? NULL,? CLSCTX_ALL,? __uuidof? (IShellDispatch4),? (void? **)&pdisp);?
            ?????????????? pdisp->ToggleDesktop? ();? //? 這句是用來(lái)切換桌面的?
            ?????????????? pdisp->Release? ();?
            ?????????????? CoUninitialize? ();?
            ?????? };

            1.5 調(diào)出關(guān)機(jī)選擇畫面

            ////////調(diào)出關(guān)機(jī)選擇畫面:(重啟、關(guān)機(jī)、休眠、待機(jī))?
            typedef? int? (CALLBACK? *SHUTDOWNDLG)(int);? //顯示關(guān)機(jī)對(duì)話框函數(shù)的指針?
            HINSTANCE? hInst? =? LoadLibrary("shell32.dll");? //裝入shell32.dll?
            SHUTDOWNDLG? ShutDownDialog;? //指向shell32.dll庫(kù)中顯示關(guān)機(jī)對(duì)話框函數(shù)的指針?
            if(hInst? !=? NULL)?
            {?
            ?????? //獲得函數(shù)的地址并調(diào)用之?
            ?????? ShutDownDialog? =? (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);?
            ?????? (*ShutDownDialog)(0);?
            }?

            二 鼠標(biāo)


            2.1?? ::ClipCursor(&rect);
            ??????? ::ClipCursor(NULL);

            2.2 一個(gè)未公開(kāi)的API函數(shù)BlockInput,在user32.dll中,用它可以
            輕易的鎖定鍵盤和鼠標(biāo)。

            BOOL __stdcall (*BlockInput)(BOOL Flag);
            (FARPROC)BlockInput = GetProcAddress(GetModuleHandle(
            ??? "user32.dll"), "BlockInput");
            if (BlockInput) BlockInput(TRUE); //這樣就可以了


            三 顯示器

            ?? 3.1 關(guān)閉顯示器
            ??????? 1. SendMessage( WM_SYSCOMMAND, SC_MONITORPOWER, 2);//關(guān)顯示器
            ?????????? SendMessage( WM_SYSCOMMAND, SC_SCREENSAVE, 0);//運(yùn)行屏保

            ??????? 2. ::SendMessage(GetSafeHwnd(), WM_SYSCOMMAND, SC_MONITORPOWER, 2);
            ?
            ??????? 3. SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
            ?? 3.2 啟動(dòng)屏保
            ???????? PostMessage(WM_SYSCOMMAND,SC_SCREENSAVE,0);

            四 系統(tǒng)桌面

            ? 4.1 隱藏任務(wù)欄
            ?????? 隱藏 ::ShowWindow (::FindWindow("Shell_TrayWnd",NULL),SW_HIDE);
            ??????????? or ::ShowWindow (::FindWindow("Shell_TrayWnd",NULL),SW_HIDE);
            ?????? 顯示 ::ShowWindow (::FindWindow("Shell_TrayWnd",NULL),SW_SHOW);
            ??????????? or ::ShowWindow (::FindWindow("Shell_TrayWnd",NULL),SW_SHOW);

            ?? 4.2 在任務(wù)欄隱藏
            ?????? SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

            ?? 4.3在任務(wù)管理器中隱藏
            //定義RegisterServiceProcess函數(shù)的原型
            typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);

            //注冊(cè)應(yīng)用程序的進(jìn)程
            //其中i = 0,將進(jìn)程注冊(cè)成非服務(wù)進(jìn)程,這樣,在Windows的關(guān)閉程序窗口中就不會(huì)出現(xiàn)應(yīng)用程序
            //的名稱了。
            // i = 1,將進(jìn)程注冊(cè)成服務(wù)進(jìn)程,這是一般應(yīng)用程序運(yùn)行時(shí)所采用的狀態(tài)。

            void RegisterProcess(int i)
            {
            ??????????? HINSTANCE hDLL;
            ??????????? LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;

            ??????????? //加載RegisterServiceProcess函數(shù)所在的鏈接庫(kù)
            ??????????? hDLL = LoadLibrary("KERNEL32");

            ??????????? //得到RegisterServiceProcess函數(shù)的地址
            ??????????? lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL, "RegisterServiceProcess");

            ??????????? //執(zhí)行RegisterServiceProcess函數(shù)
            ??????????? lpRegisterServiceProcess(GetCurrentProcessId(),i);

            ?????????? //卸載鏈接庫(kù)
            ?????????? FreeLibrary(hDLL);
            }

            ?

            4.4啟動(dòng)屏保

            SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"C:\\*.BMP",WM_WININICHANGE);

            posted on 2006-07-03 19:36 dbsky 閱讀(747) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 東南西北
            大伊人青草狠狠久久| 7国产欧美日韩综合天堂中文久久久久 | 久久综合偷偷噜噜噜色| 人妻无码αv中文字幕久久琪琪布| 思思久久好好热精品国产| 中文国产成人精品久久不卡| 国产精品久久久久天天影视| 久久综合精品国产一区二区三区| 大香伊人久久精品一区二区| 久久不射电影网| 欧美精品乱码99久久蜜桃| 成人妇女免费播放久久久| 亚洲&#228;v永久无码精品天堂久久 | 久久se这里只有精品| 色偷偷88888欧美精品久久久| 久久青草国产精品一区| 久久精品中文字幕大胸| 四虎国产精品免费久久久| 亚洲AV无码一区东京热久久 | 99久久国产综合精品女同图片| 久久香蕉一级毛片| 新狼窝色AV性久久久久久| 香港aa三级久久三级老师2021国产三级精品三级在 | 青青青伊人色综合久久| 久久亚洲中文字幕精品有坂深雪 | 伊人久久久AV老熟妇色| 久久久久亚洲av毛片大| 91久久精品国产免费直播| 99久久国产综合精品麻豆| 日本久久久久亚洲中字幕 | 中文字幕久久亚洲一区| 欧美麻豆久久久久久中文| 久久精品国产亚洲5555| 国产99久久久国产精品~~牛| 99re久久精品国产首页2020| 丰满少妇高潮惨叫久久久| 97超级碰碰碰久久久久| 久久久精品午夜免费不卡| 色综合久久88色综合天天 | 国产免费福利体检区久久| 国产一区二区精品久久凹凸|