Я запускаю экземпляр сервера Windows 2012 на AWS.
Windows_Server-2012-R2_RTM-English-64Bit-Base-2018.05.09 (ami-3c0f22d7)
Идентификатор экземпляра - 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;
}
Спасибо, Бен.