(Zastanawiałem się nad opublikowaniem tego tutaj, ServerFault i StackOverFlow. Rozstrzygnąłem za to. Mam nadzieję, że jest to właściwe miejsce).
Nasz pakiet testowy interfejsu użytkownika uruchamiamy za pomocą Selenium Grid 2 na maszynie Amazon EC2 Windows (uruchamianej przy użyciu interfejsów API CloudFormation firmy Amazon). Moje pytanie brzmi: jak zmienić rozdzielczość tego komputera?
Jeśli zdalnie się do niego włączę, mogę określić rozdzielczość za pomocą Pulpitu zdalnego. Ale oczywiście nie zmienia to na stałe rozdzielczości. Kiedy uruchamiamy nasze testy, rozdzielczość jest tak mała, że przeglądarka usuwa elementy razem i powoduje, że testy kończą się niepowodzeniem.
Jakieś pomysły? Czy jest coś, co mogę umieścić w przepisie CloudFormation? Czy mogę coś zrobić z obrazem przed utworzeniem AMI?
Dzięki.
mstsc.exe /console
Odpowiedzi:
Oświadczenie: TightVNC nie jest bezpieczny, więc jeśli problemem jest bezpieczeństwo, może być konieczne zastosowanie innego podejścia. Cały proces zajmie tylko kilka minut, więc dziura w zabezpieczeniach jest niewielka, ale mimo to istnieje.
źródło
Możesz zmienić rozdzielczość ekranu, modyfikując dwie wartości rejestru. Te dwie wartości to:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution
Gdzie GUID jest losowo generowanym GUID.Możesz faktycznie podać dowolną wartość XResolution i YResolution, o ile są one szesnastkowe.
Uwaga: W przypadku monitora CRT określenie absurdalnej rozdzielczości może uszkodzić monitor. W przypadku monitora LCD monitor może nie wyświetlać żadnego interfejsu użytkownika. Dobrym sposobem na zmianę rozdzielczości ekranu jest zapisanie liczby pikseli, które chcesz wypełnić szerokością ekranu (jest to XResolution) oraz liczby pikseli, które chcesz na wysokości ekranu (YResolution). Kalkulator Windows (niedostępny w Server Core, będziesz musiał znaleźć inny komputer lub zaawansowany kalkulator sprzętowy) oferuje łatwy sposób konwersji liczb dziesiętnych na szesnastkowe. Następnie można użyć tych wartości, aby zmodyfikować odpowiednie wartości rejestru. Ponowne uruchomienie sprawi, że preferowana rozdzielczość ekranu spełni się.
Głębia kolorów używana na monitorze jest rejestrowana w następującej wartości rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel
Na moim urządzeniu ta wartość szesnastkowa została ustawiona na 0x00000008 (8), co oznaczało, że mój ekran używał 8-bitowej głębi kolorów. (256 kolorów) Zmiana na 16 bitów (0x00000010) spowoduje wyświetlenie 65536 kolorów (wysokie kolory) Inne dostępne wartości to 24 bity (0x00000018) i 32 bity (0x00000020).Źródło
źródło
Udało mi się to uruchomić, używając kombinacji powyższej odpowiedzi @ kenny-trytek i skonfigurując automatyczne logowanie.
Myślę, że rozdzielczość VNC jest ustawiana tylko dla bieżącego użytkownika, więc skonfigurowanie automatycznego logowania zapewnia, że ten użytkownik ma otwartą sesję.
Skonfiguruj automatyczne logowanie https://support.microsoft.com/en-us/kb/324737
Następnie w folderze Start Up użytkowników podaj plik skrótu lub nietoperza, aby rozpocząć proces węzła selenu.
źródło
Próbowałem wszystkiego, co wyżej, i nie udało mi się. Znalazłem rozwiązanie unikalne dla mojej sytuacji, które było proste .. użyj powłoki systemu Windows.
napisał skrypt Power-Shell
nazwij to resolution.ps1
zapisane w C: \ myTestFolder
i uruchom go z wiersza poleceń, jak poniżej ..... (moje skrypty są sterowane przez pliki wsadowe)
źródło
Oto jak ustawić rozdzielczość ekranu bezgłowego w Windows AWS za pomocą RDP:
Należy pamiętać, że automatyczne logowanie wymaga nazwy użytkownika i hasła oraz że hasło jest przechowywane niezaszyfrowane w rejestrze systemu Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.
Testowane na Amazon Windows Server 2012 R2 AMI.
Oto książka kucharska szefa kuchni, która wykonuje powyższe czynności: https://github.com/dhoer/chef-windows_screenresolution
źródło