c# 写的Windows服务程序 为什么不能调用mouseEvent API???

ztmkadaj 2014-11-11 05:47:32

[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlags dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
mouse_event(MouseEventFlags.LEFTDOWN, 0,0,0,0);
Thread.Sleep(10);
mouse_event(MouseEventFlags.LEFTUP, 0, 0, 0, 0);
Thread.Sleep(10);
mouse_event(MouseEventFlags.LEFTDOWN, 0, 0, 0, 0);
Thread.Sleep(10);
mouse_event(MouseEventFlags.LEFTUP, 0, 0, 0, 0);

StreamWriter sw = new StreamWriter("E:\\data\\111.txt",true);
sw.WriteLine("hahahahahaha");
sw.Flush();
sw.Close();

Thread.Sleep(500);

可以实现写操作,但是 鼠标双击没有反应???求助
...全文
244 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winnowc 2014-11-12
  • 打赏
  • 举报
回复
引用 3 楼 ztmkadaj 的回复:
[quote=引用 1 楼 github_22161131 的回复:] 服务和用户不是一个session,各自有独立的消息队列,给那边的消息队列发消息是影响不到用户这边的。具体见这里的文档
那么用什么方法可以操作到鼠标??[/quote] 一般方法就是服务创建一个运行在用户session的进程,由那个进程来完成操作,找到一篇比较完整的:http://www.cnblogs.com/luxilin/p/3347212.html
mjp1234airen4385 2014-11-12
  • 打赏
  • 举报
回复
windows服务还要操作鼠标? 这都是什么需求啊。
ztmkadaj 2014-11-12
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
不知道你是否用过Windows远程桌面。 同样一台电脑,允许2个不同的用户登录进来,每个人看到各自的桌面、窗口、运行各自的程序,相互毫不干扰。 Windows服务和你的桌面其实就相当于两个桌面会话,它们的键盘鼠标当然完全隔绝的。
那么用什么方法可以操作到鼠标??
ztmkadaj 2014-11-12
  • 打赏
  • 举报
回复
引用 1 楼 github_22161131 的回复:
服务和用户不是一个session,各自有独立的消息队列,给那边的消息队列发消息是影响不到用户这边的。具体见这里的文档
那么用什么方法可以操作到鼠标??
失落的神庙 2014-11-12
  • 打赏
  • 举报
回复
你可以用服务开启一个程序。然后用程序控制试试。
threenewbee 2014-11-11
  • 打赏
  • 举报
回复
不知道你是否用过Windows远程桌面。 同样一台电脑,允许2个不同的用户登录进来,每个人看到各自的桌面、窗口、运行各自的程序,相互毫不干扰。 Windows服务和你的桌面其实就相当于两个桌面会话,它们的键盘鼠标当然完全隔绝的。
winnowc 2014-11-11
  • 打赏
  • 举报
回复
服务和用户不是一个session,各自有独立的消息队列,给那边的消息队列发消息是影响不到用户这边的。具体见这里的文档

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧