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

简介:

我想用,但定义了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.

本文转自博客园知识天地的博客,原文链接:有谁用过sendinput摸拟一个鼠标击键? ,如需转载请自行联系原博主。

相关文章
鼠标按下或鼠标松开做不同的处理
鼠标按下或鼠标松开做不同的处理
|
4月前
低仿lusaxweb鼠标
低仿lusaxweb鼠标
20 0
按下鼠标右键的时候如何截图
点击右键,出现要操作的菜单项 鼠标移动到,想要操作的菜单项上 这时候按下鼠标左键 最后再按下crtl+a,有的电脑是crtl+alt+a,就截图成功了,这时候是所有屏幕的截图 打开word文件,或者打开画图工具,ctrl+v,就把整张截图粘贴上面了 可以跟进自己需求,再次截图,选择自己想要的部分
101 0
按下鼠标右键的时候如何截图
|
API
用VBS控制鼠标的实现代码(获取鼠标坐标、鼠标移动、鼠标单击、鼠标双击)
网上搜到的答案普遍是VBS无法实现,或者是要用第三方COM(ActiveX?)组件。我对第三方组件是很反感的,使用第三方组件毫无可移植性可言,因为别人的系统中不一定注册了这个组件。我的建议是,尽量不要在VBS代码中调用第三方组件,除非你的程序只是写来自己用。
2187 0
鼠标悬浮样式
1)、div{ cursor:default }默认正常鼠标指针2)、div{ cursor:hand }和div{ cursor:text } 文本选择效果3)、div{ cursor:move } 移动选择效果4)、div{ cursor:pointer } 手指形状 链接选择效果5)、div{...
806 0