有谁用过sendinput摸拟一个鼠标击键?

时间:2022-12-22 17:05:57

我想用,但定义了MOUSEINPUT和INPUT结构,编译是时出现这个错误: 
E:\My document\VC++programs\13\13.cpp(152) : error C2065: 'MOUSEINPUT' : undeclared identifier 
E:\My document\VC++programs\13\13.cpp(152) : error C2065: 'INPUT' : undeclared identifier 
请问是为什么? 
如果能给出原码,就更好了。 

问题点数:30、回复次数:17Top

 

1 楼Wargod2002(Wargod2002) 回复于 2002-07-20 12:15:53 得分 2

现在可以用mouse_event 
Top

2 楼zhuwenzheng(卧薪尝胆) 回复于 2002-07-20 12:21:48 得分 20

lack *.h or *.lib 
Top

3 楼brapler(ANN) 回复于 2002-07-20 12:43:25 得分 0

我的是win2000,msdn上就在2000上用sendinput,再说我也想用一用。 

zhuwnzheng(),缺哪个?怎么加?Top

4 楼zhuwenzheng(卧薪尝胆) 回复于 2002-07-20 12:49:30 得分 0

now my computer have no msdn,so i dont give u a correct answer.Maybe you type your code,i give u some advice. 
Top

5 楼zhuwenzheng(卧薪尝胆) 回复于 2002-07-20 12:59:59 得分 0

INPUT input; 
input.type=INPUT_MOUSE; 
input.mi.dwFlags=MOUSEEVENTF_LEFTDOWN; 
SendInput(1,&input,sizeof(input));Top

6 楼brapler(ANN) 回复于 2002-07-20 16:48:18 得分 0

不行,只要有 
INPUT input; 
就报错,是不是sdk版本问题?Top

7 楼camel_vc(骆驼) 回复于 2002-07-20 20:24:30 得分 2

Requirements 
Windows NT/2000/XP: Included in Windows NT 4.0 SP3 and later. 
Windows 95/98/Me: Included in Windows 98 and later. 
Header: Declared in Winuser.h; include Windows.h.Top

8 楼DragonCity(自己发工资) 回复于 2002-07-20 21:03:29 得分 2

呵呵,我是只会VB,今天来提问,顺便插句话 
我试过,用API 函数 PostMessage可以实现诸如模拟鼠标移动的消息。不知道对你有没有帮助。Top

9 楼zhuwenzheng(卧薪尝胆) 回复于 2002-07-20 21:31:50 得分 0

typedef struct tagINPUT { 
DWORD type; 
union {MOUSEINPUT mi; 
KEYBOARDINPUT ki; 
HARDWAREINPUT hi; 
}; 
}INPUT, *PINPUT; 

Header Declared in Winuser.h, include Windows.h 
Minimum operating systems Included in Windows 98, Windows NT 4.0 Service Pack 3 



Top

10 楼brapler(ANN) 回复于 2002-07-20 22:44:39 得分 0

zhuwenzhen:你自已试了一下吗?Top

11 楼lihao_ningxia(耗子) 回复于 2002-07-21 08:10:46 得分 2

我用了POSTMESSAGE(HWND,MOUSE_EVENT,WM_MOUSELBUTTON,0)可以传过去!Top

12 楼brapler(ANN) 回复于 2002-07-21 11:36:36 得分 0

发消息不行的,我必须用模拟击键. 

是缺了lib或h文件,但我不知道如何加呀? 
帮帮小弟吧!Top

13 楼brapler(ANN) 回复于 2002-07-21 11:39:06 得分 0

Requirements 
Windows NT/2000: Requires Windows NT 4.0 SP3 or later. 
Windows 95/98: Requires Windows 98. 
Header: Declared in Winuser.h; include Windows.h. 
Library: Use User32.lib. 
------------------------------------------- 

请问这句是什么意思 : 
Windows NT/2000: Requires Windows NT 4.0 SP3 or later. 
Top

14 楼siphonelee(sifone) 回复于 2002-07-21 13:09:33 得分 2

upTop

15 楼zhuwenzheng(卧薪尝胆) 回复于 2002-07-22 09:31:19 得分 0

我试过了,是可以的,你可以重新生成一个MFC的程序,添加#include "winuser.h" 
然后定义INPUT input,最后 Input.type=INPUT_MOUSE; 
Input.mi.dwFlags=MOUSEEVENTF_LEFTDOWN; 
SendInput(1,&Input,sizeof(Input)); 


Windows NT/2000: Requires Windows NT 4.0 SP3 or later的意思是需要SP3 PACKAGE或更高版本 

Top

16 楼brapler(ANN) 回复于 2002-07-22 13:07:05 得分 0

Thank you very much Zhuwenzheng. 
this problem is resolved.