📄 loadvxd.cpp
字号:
// LoadVxD.cpp : Defines the entry point for the application.
/*************************\
*文件:LoadVxD.cpp *
*功能:动态载入/卸载VxD *
\*************************/
#include "stdafx.h"
#include "resource.h"
BOOL CALLBACK MainDlgProc(HWND,UINT,UINT,LONG);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
DialogBox(hInstance,"MainDialog",0,MainDlgProc);
return 0;
}
BOOL CALLBACK MainDlgProc(HWND hMainDlg,UINT uMsg,
UINT wParam,LONG lParam)
{
static HANDLE hVxD = 0;
switch(uMsg)
{
case WM_CLOSE: //关闭主窗口
if ( hVxD )
SendMessage(hMainDlg,WM_COMMAND,IDC_UNLOAD,0);
EndDialog(hMainDlg,TRUE);
break;
case WM_COMMAND:
switch (wParam)
{
case IDC_LOAD:
if ( hVxD ) break;
char file[1024];
char buff[512];
GetDlgItemText(hMainDlg,IDC_VXDPATH,buff,256);
wsprintf(file,"\\\\.\\%s.vxd",buff);
//载入VxD
hVxD = CreateFile(file,0,0,0,0,
FILE_FLAG_DELETE_ON_CLOSE,0);
if ( hVxD == INVALID_HANDLE_VALUE ) //成功否?
{
MessageBox(hMainDlg,"Load VxD Error","error",MB_OK);
ExitProcess(1);
}
EnableWindow(GetDlgItem(hMainDlg,IDC_LOAD), FALSE);
EnableWindow(GetDlgItem(hMainDlg,IDC_UNLOAD),TRUE );
break;
case IDC_UNLOAD:
if ( !hVxD ) break;
//卸载VxD
CloseHandle(hVxD);
hVxD = NULL;
EnableWindow(GetDlgItem(hMainDlg,IDC_LOAD), TRUE );
EnableWindow(GetDlgItem(hMainDlg,IDC_UNLOAD),FALSE);
break;
}
break;
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -