在隐藏桌面,任务栏,开始按钮,都可以通过windows API 函数 FindWindow() 和
ShowWindow()实现。
隐藏任务栏,你可以使用下面的代码:
ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_HIDE);
隐藏开始菜单按钮,你首先要获得按钮的ID,然后使用下面的代码:
ShowWindow(GetDlgItem(FindWindow("Shell_TrayWnd", NULL),0130), SW_HIDE);
Shell_TrayWnd 是任务栏的类
0130 是开始按钮的ID
这些都是通过VC++6.0 下面的Spy++ 工具捕获到的。同理,你可以捕获任何一个你想要的窗口或者按钮。
屏蔽窗口不想隐藏,可以把ShowWindow() 函数换为 EnableWindow()。
如此,当你按下Win键仍然会弹出开始菜单,下面我们来屏蔽热键。
屏蔽系统热键
在Win9x/ME 可以用下面的代码:
SystemParametersInfo(SPI_SETSCREENSERRUNNING, TRUE, &bOldState, 0);
当然Windows2000 和 Windows XP 是不适合这种方法的。
屏蔽系统热键,在Windows2000 和 Windows XP 是用钩子函数来实现的
首先,在程序中安装一个钩子:
SetWindowsHookEx():
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, hInstance, 0);
KeyboardProc() 函数是一个CallBack类型的,也就是说一旦有按键按下系统都会调用此函数。
LRESULT KeyboardProc()
{
if (Key == VK_SOMEKEY)
return 1; // 屏蔽热键
return CallNextHookEx(); // 返回
}
释放钩子时:
UnhookWindowsHookEx(hKeyboardHook);
当然这里是安装的系统级的钩子(关于钩子可以参看Blog里的另外一篇转的文章[C++与WIN32与MFC]利用钩子函数来捕捉键盘响应的windows应用程序.(转))。
Ctrl+Alt+Del 的屏蔽
Ctrl+Alt+Del Windows 不会把它放入键盘钩子的消息中(关于键盘钩子也请参看上面的文章)
在这里说说我的方法,主要是屏蔽任务管理。
首先获得系统所以的进程(请参考Blog里的 通过Toolhelp API 查看本地进程的程序(VC 6.0 编译通过))。
然后使用 Bool TerminateProcess (HANDLE hProcess,UINT fuExitCode);完成。
如果大家有更好的方法可以和我交流。
一:引言:
你也许一直对金山词霸的屏幕抓词的实现原理感到困惑,你也许希望将你的键盘,鼠标的活动适时的记录下来,甚至你想知道木马在windows操作系统是怎样
进行木马dll的加载的…..其实这些都是用到了windows的钩子函数。因此本文将对钩子函数的相关知识进行阐述。当然,本文的目的并不是想通过此程
序让读者去窃取别人的密码,只是由于钩子函数在windows系统中是一个非常重要的系统接口函数,所以想和大家共同的探讨,当然本文也对怎样建立动态连
结库(DLL)作了一些简单的描述。(本文的程序为vc6.0的开发环境,语言是:C和win32api)。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-27965-1.html
有十万的人不会在乎那100