1.锁定鼠标:
这个功能很简单只要一个ClipCursor()就可以搞定了看看下面的小程序 [cpp]view plaincopyprint?
1. #include
3. int main(int argc, char* argv[]) 4. {
5. printf(\别害怕15妙后你的鼠标就可以使用了^_^\\n\6. RECT rect;
7. rect.bottom=1; 8. rect.right=1;
9. ClipCursor(&rect); 10. ::Sleep(15000);
11. ClipCursor(NULL);//释放 12. return 0; 13.}
注:本文于06/12月于黑客防线发表版权归黑客防线所有,转载请注明出处 rect是一个结构,表示锁定的范围我们通常只用 bottom和right两个域
2.锁定键盘:
锁键盘一般用钩子实现,所以难度稍大,不过下面这个程序当简单,而且连钩子所需要DLL也省了
[cpp]view plaincopyprint?
1. #include
3. //处理按键消息的过程函数
4. LRESULT CALLBACK keyproc( int code, 5. WPARAM wParam, 6. LPARAM lParam ) 7. {
8. return 1;//返回1可使键盘停止响应 9. }
10.main(int argc, char* argv[]) 11.{ 12.
13.
14. SetWindowsHookEx(WH_KEYBOARD,keyproc,GetModuleHandle(NULL),
0);//安装键盘钩子
15. printf(\程序将在15妙之后返回...嘿嘿15妙内你的键盘是
无法工作的哦\\n\16. ::Sleep(15000); 17.}
注:本文于06/12月于黑客防线发表版权归黑客防线所有,转载请注明出处 上面的代码是参考了6期“全局钩子”和7期“楚茗”的文章写成的,使用钩子而无DLL的关键就在于 GetModuleHandle(NULL),GetModuleHandle()参数为NULL得到的是调用者本身的模块句柄,也就是说用程序本身作为 DLL。因为是console程序,所以随着程序的结束钩子也就OVER了,所以我并没有卸载钩子。钩子果然是强大,学会使用钩子你的水平就不一般了 ^_^.
3.关闭显视器
这个也是相当简单的看看代码: [cpp]view plaincopyprint?
1. #include
4. int APIENTRY WinMain(HINSTANCE hInstance, 5. HINSTANCE hPrevInstance, 6. LPSTR lpCmdLine, 7. int nCmdShow) 8. {
9. SendMessage(FindWindow(0,0),WM_SYSCOMMAND,SC_MONITORPOWER,2
);//关闭
10. ::Sleep(10000);
11. SendMessage(FindWindow(0,0),WM_SYSCOMMAND,SC_MONITORPOWER,-1);//打开 12. 13.
14. return 0; 15.}
要是你够毒的话可以让它自动运行,开机就黑屏,任你杀毒水平再高,没有显示器看你怎么杀??.嘿嘿
4.关闭所有窗口
原理是枚举所有窗口句柄,然后发送WM_CLOSE消息来关闭窗口,效果蛮好就差没重起
[cpp]view plaincopyprint?
1. #include
2. BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam); 3. int APIENTRY WinMain(HINSTANCE hInstance, 4. HINSTANCE hPrevInstance, 5. LPSTR lpCmdLine, 6. int nCmdShow) 7. {
8. EnumWindows(EnumWindowsProc,0);//将窗口句柄传给回调函数处
理
9. return 0; 10.} 11. 12.
13.BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam)//回调函
数 14.{
15. ::PostMessage(hwnd,WM_CLOSE,0,0);//结束窗口 16. return (true);//返回FALSE时EnumWindows结束 17.}
程序用EnumWindows()枚举所有窗口并把窗口句柄传给回调函数EnumWindowsProc,而回调函数的任务就是CLOSE!,呵呵
5.锁定光驱
其实说让“光驱跳舞”更合适,以下的程序可以打开并关闭光驱 [cpp]view plaincopyprint?
1. #include
2. int APIENTRY WinMain(HINSTANCE hInstance, 3. HINSTANCE hPrevInstance, 4. LPSTR lpCmdLine, 5. int nCmdShow) 6. {
7. ::mciSendString(\打
开
8. ::mciSendString(\
;//关闭
9. return 0; 10.}
//注意在 工程-设置-LINK中加入库文件名winmm.lib
如果你弄个死循环,就可以让他的光驱好好活动活动了^_^
6.制造噪音
大多时候我们要隐藏自己,但有时候我们就需要给对方放点音乐,小小的“提示”一下以证明我们的存在
[cpp]view plaincopyprint?
1. #include
4. for(int j=450;j<500;j++) 5. {
6. for(int i=1000;i<1110;i++) 7. {
8. Beep(i,30); 9. ::Sleep(100); 10. } 11. } 12. 13. 14.}
关键就是一个Beep()第一个参数为赫兹第二个为音长你可以自己试一下,弄点好听的。
7.隐藏桌面
其实桌面与任务栏也是一种窗口,我们可以通过FindWindow来查找它们的句柄,然后通过ShowWindow()来隐藏或显视,其中桌面类名为ProgMan任务栏类名为Shell_TrayWnd。
[cpp]view plaincopyprint?
1. #include
3. int main(int argc, char* argv[]) 4. {
5. HWND disk,mask;
6. disk=FindWindow(\
7. mask=FindWindow(\8. ShowWindow(mask,SW_HIDE);//隐藏任务栏 9. ShowWindow(disk,SW_HIDE);//隐藏桌面
10. printf(\妙后会自动出现桌面 请等待.....\\n\11. Sleep(15000);
12. ShowWindow(mask,SW_SHOW);//显示 13. ShowWindow(disk,SW_SHOW);//显示 14. return 0; 15.}