我在aws上运行了一个窗口2012服务器实例。
Windows_Server-2012-R2_RTM-English-64Bit-Base-2018.05.09(ami-3c0f22d7)
实例ID - i-0cd5e4853062d3e69
在实例上,我正在运行一个执行自动化(c#),鼠标点击/键盘点击等脚本。
脚本工作正常,直到我决定最小化/关闭实例的窗口。 一旦我从实例中删除了焦点,我就会在服务器上出错:
System.ComponentModel.Win32Exception:拒绝访问
无法看到它背后的逻辑,因为它应该保持同样的工作方式,无论我是否专注甚至当前登录到远程桌面都不是吗?
有什么建议吗?
代码示例 -
static public void StayAlive()
{
IntPtr hWnd = FindFocusWindow();
Stopwatch s = new Stopwatch();
s.Start();
while (s.Elapsed < TimeSpan.FromSeconds(1))
{
SendKeys.SendWait("{LEFT}");
}
s.Stop();
s = new Stopwatch();
s.Start();
while (s.Elapsed < TimeSpan.FromSeconds(1))
{
SendKeys.SendWait("{RIGHT}");
}
s.Stop();
}
static private IntPtr FindFocusWindow()
{
IntPtr hWnd = IntPtr.Zero;
//Look for chrome and set to top
foreach (Process pList in Process.GetProcesses())
{
if (pList.MainWindowTitle.Contains("Google Chrome"))
{
hWnd = pList.MainWindowHandle;
ShowWindow(hWnd, 3);
SetForegroundWindow(hWnd); //set to topmost
return hWnd;
}
}
return hWnd;
}
谢谢,Ben。
答案 0 :(得分:0)