程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 彈出窗口殺手(下)

彈出窗口殺手(下)

編輯:VC++

  注冊系統熱鍵

  系統熱鍵用在像彈出窗口殺手這種應用程序非常有用,Ctrl+Shift+J是缺省熱鍵。

  說道實現,我們繼續用RegisterHotkey(HWND hWnd, int id, UINT fsModifiers, UINT vkey)完成,代碼如下:

  一般的,注冊熱鍵要以下幾步:

/* ------- using HOTKEYs in a C# application -------

-- code snippet by James J Thompson --

在Form的load 中 : Ctrl+Shift+J

bool success = RegisterHotKey(Handle,
100,
KeyModifiers.Control | KeyModifiers.Shift,
Keys.J);

  在form的closing中:

  UnregisterHotKey(Handle, 100);

  如何處理熱鍵:

  當我們按下熱鍵以後,流程是這樣:首先用HWND GetForegroundWindow()來得到窗體,然後要抓出窗體的標題,GetWindowText(HWND hwnd, /*out*/LPTSTR lpString, int nMaxCount)。

  具體如下:

protected void ProcessHotkey()
{
IntPtr hwnd = NativeWIN32.GetForegroundWindow();
if (!hwnd.Equals(IntPtr.Zero))
{
NativeWIN32.STRINGBUFFER sWindowTitle;
NativeWIN32.GetWindowText(hwnd, out sWindowTitle, 256);

if (sWindowTitle.szText.Length>0)
AddWindowTitle( sWindowTitle.szText ); // add to the ListView (Form)
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved