我想和一个计时器,并在事件timer_tick我想我的电脑自动按空格键我怎样才能每隔5分钟按空间?
1
A
回答
3
0
0
你必须发送一个窗口消息窗口中的应用每5分钟一次。所以看看SendMessage功能 http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx
3
只是设置了一个定时器并使用System.Windows.Forms.SendKeys.Send
方法!
2
另外,您可以的平台,USER32调用PostMessage的:
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32.dll", SetLastError = true)]
static extern bool PostMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
这无疑是一个更好的方法,因为它允许您指定的hWnd,从而允许您将击键发送到AREN”窗口t本地呼叫者:
/// <summary>
/// Sends keystrokes to the specified window
/// </summary>
/// <param name="hWnd">Window's hWnd</param>
/// <param name="keys">String of keys to send</param>
/// <returns>Returns number of keystrokes sent, -1 if an error occurs</returns>
public int SendKeys(int hWnd, string keys)
{
if(hWnd <= 0 || keys.Length == 0)
return -1;
int ret = 0, i = 0;
System.Text.StringBuilder str = new System.Text.StringBuilder(keys.ToUpper());
str.Replace(Convert.ToChar("`"), Convert.ToChar(0xC0));
str.Replace(Convert.ToChar("~"), Convert.ToChar(0xC0));
str.Replace(Convert.ToChar("-"), Convert.ToChar(0xBD));
str.Replace(Convert.ToChar("="), Convert.ToChar(0xBB));
str.Replace("{TAB}", Convert.ToChar(0x9).ToString());
str.Replace("{ENTER}", Convert.ToChar(0xD).ToString());
str.Replace("{ESC}", Convert.ToChar(0x1B).ToString());
str.Replace("{F5}", Convert.ToChar(0x74).ToString());
str.Replace("{F12}", Convert.ToChar(0x7B).ToString());
str.Replace("{SHIFTD}", Convert.ToChar(0xC1).ToString());
str.Replace("{SHIFTU}", Convert.ToChar(0xC2).ToString());
for(int ix = 1; ix <= str.Length; ++ix)
{
char chr = str[i];
if(Convert.ToInt32(chr) == 0xC1)
{
_PostMessage(hWnd, 0x100, 0x10, 0x002A0001);
_PostMessage(hWnd, 0x100, 0x10, 0x402A0001);
Thread.Sleep(1);
}
else if(Convert.ToInt32(chr) == 0xC2)
{
_PostMessage(hWnd, 0x101, 0x10, 0xC02A0001);
Thread.Sleep(1);
}
else
{
ret = _MapVirtualKey(Convert.ToInt32(chr), 0);
if(_PostMessage(hWnd, 0x100, Convert.ToInt32(chr), MakeLong(1, ret)) == 0)
return -1;
Thread.Sleep(1);
if(_PostMessage(hWnd, 0x101, Convert.ToInt32(chr), (MakeLong(1, ret) + 0xC0000000)) == 0)
return -1;
}
i++;
}
return i;
}
相关问题
- 1. 我怎样才能每10分钟使用重复间隔?
- 2. 解释这个计时器 - 我怎样才能设置为每5分钟? C#
- 3. 我怎样才能让阿卡演员每5分钟执行一次?
- 4. 我怎样才能按分隔符分割数组
- 5. 我怎样才能在一个空间{{}}
- 6. 我怎样才能得到圆整的分钟时间直接
- 7. 每隔5分钟通知
- 8. 我怎样才能获得时间和打印每个时间间隔?
- 9. 我该怎么做才能隐藏按钮5秒钟
- 10. 生成5分钟间隔
- 11. matplotlib.finance 5分钟间隔
- 12. Android TimePicker间隔5分钟
- 13. 我怎样才能每15秒钟刷新页面?
- 14. 我怎样才能按时间分组在SQL中
- 15. 我怎样才能均匀地间隔开我的RelativeLayout的
- 16. 我怎样才能每5秒发送一个请求在jmeter
- 17. 我想每5分钟拨打一次api电话。我怎样才能达到这个使用gatling?
- 18. 我怎样才能每10分钟从HTML执行一次外部JS?
- 19. 我怎样才能
- 20. 我怎样才能
- 21. 我怎样才能
- 22. 我怎样才能
- 23. 我怎样才能提供一个值在几分钟内setAnimationDuration?
- 24. 我怎样才能为每个外键
- 25. 我怎样才能看到每一行?
- 26. 我怎样才能摆脱“空白”
- 27. 3 cronjobs,15个分钟的间隔,相隔5分钟
- 28. 我怎样才能减少divs之间的垂直空间
- 29. 我怎样才能使周围按钮
- 30. 我怎样才能使按钮出现
你试过了什么?你卡在哪里? – Thomas
如果您有按下空格键时应触发的事件,则只需手动调用处理程序。 – Tudor
所以我做了一个计时器和一个按钮的形式。当我按下按钮计时器,哪个间隔是600000(5分钟)开始,并在timer1_tick方法我想告诉我的电脑按空格键 – user1074030