首页
社区
课程
招聘
[旧帖] [求助]编写键盘记录器(最好用c) 0.00雪花
发表于: 2011-12-28 19:20 2038

[旧帖] [求助]编写键盘记录器(最好用c) 0.00雪花

2011-12-28 19:20
2038
要用c写一个键盘记录器,可是不知道该怎么下手。从网上下了个代码,运行的时候总是出现GetWindowText 函数的参数问题 “cannot convert parameter 2 from 'char *' to 'LPWSTR' ”,一直解决不了,求大牛指点一二。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 139
活跃值: (225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
会不会是编译器的问题?
2011-12-28 19:27
0
雪    币: 10
活跃值: (231)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
函数第二个参数需要强转一下类型
2011-12-28 19:59
0
雪    币: 139
活跃值: (225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
下面为出现错误的代码及变量的定义(红色的为错误行
   HWND hFocus = GetForegroundWindow();
   int WinLeng = GetWindowTextLength(hFocus);
   char  *WindowCaption = (char *) malloc(sizeof(char) * (WinLeng + 2));
   GetWindowText(hFocus,WindowCaption,(WinLeng + 1));
2011-12-28 20:23
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
'char *' to 'LPWSTR'

单字符和宽字符的问题,你的编译选项选的unicode,所以GetWindowText其实编译的时候是GetWindowTextW 注意是W.

改成这样就ok.

HWND hFocus = GetForegroundWindow();
        int WinLeng = GetWindowTextLength(hFocus);
        WCHAR  *WindowCaption = (WCHAR *) malloc(sizeof(WCHAR) * (WinLeng + 2));
        GetWindowText(hFocus,WindowCaption,(WinLeng + 1));
2011-12-29 11:43
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
正解,注意工程属性
2011-12-29 11:47
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
修改工程属性,或者在inclue宏命令之前加入以下语句:
#ifdef UNICODE
#undef UNICODE
#endif

#ifdef _UNICODE
#undef _UNICODE
#endif
2011-12-29 20:24
0
雪    币: 159
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
嘿嘿~~~本人菜鸟一个,目前只能用E来写键盘记录器。
2011-12-30 10:09
0
雪    币: 139
活跃值: (225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
照楼上的改了,可是错误提示又变成了
error C2664: 'strlen' : cannot convert parameter 1 from 'WCHAR *' to 'const char *'
2011-12-30 23:25
0
雪    币: 139
活跃值: (225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=bombless;1033771]修改工程属性,或者在inclue宏命令之前加入以下语句:
#ifdef UNICODE
#undef UNICODE
#endif

#ifdef _UNICODE
#undef _UNICODE
#endif
[/QUOTE]

谢谢LS‘s,问题已经解决了,当你们无聊的时候帮忙解释一下为什么吧,再次感谢
2011-12-30 23:32
0
游客
登录 | 注册 方可回帖
返回
//