弹出窗口杀手(下)
来源:网络收集 责任编辑:栏目编辑 发表时间:2013-07-01 03:15 点击:次
注册系统热键
系统热键用在像弹出窗口杀手这种应用程序非常有用,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)
}
}
系统热键用在像弹出窗口杀手这种应用程序非常有用,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)
}
}
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>