Да, теперь можно менять разрешение через C#-код, аналогично как это делается для внутренних браузеров Зеннопостера.Подскажите, можно-ли менять разрешение экрана?
Чтобы не плодить разных тем тут спрошу. Подскажите, как можно через C# развернуть окно ZennoBrowser на максимум?
Условно, разрешение профиля 1920х1080. SetWindowSize на максимум раскрывает только в PM. Когда запускаешь проект где используется SetWindowSize в ZP, окно получается уже +/- пикселей на 20 из за чего "едут" все координаты. Если работаешь по координатам видимой области то данная проблема мешает очень сильно. Как вариант использовать SetWindowSize только во время правок/отладки в PM -> потом обязательно отключать -> потом заходить в профиль именно через ZB и разворачивать окно на максимум -> только после этого запускать проект в ZP. В общем сложности на ровном месте )
string profile_id = project.Variables["profile_id"].Value.Replace("-", "").ToLower();
string user_name = project.ExecuteMacro("{-Environment.UserName-}").Replace("root", "Administrator");
string profile_file_dir = $@"C:\Users\{user_name}\AppData\Local\ZennoLab\Profiles\{profile_id}\profile.json";
string profile_data = File.ReadAllText(profile_file_dir);
// Десериализация через ZP
dynamic data = Global.ZennoLab.Json.JsonConvert.DeserializeObject(profile_data);
// Получение параметров
int width = data.FingerprintInfo.Screen.Width;
int height = data.FingerprintInfo.Screen.Height;
instance.SetWindowSize(width, height);
Этим вы просто дергаете значения ширины и высоты из профиля. Мне эти значения заранее известны. Да и проблема как оказалось глубже чем просто не раскрытие окна до нужных размеров. Все нижеописанное касается только проектов которые запускаются на ZennoBrowser, с хромиумом такого не видел.Странно, метод SetWindowSize должен решать эту проблему.
Попробуйте такое решение, пользователям в ТГ помогало:
C#:string profile_id = project.Variables["profile_id"].Value.Replace("-", "").ToLower(); string user_name = project.ExecuteMacro("{-Environment.UserName-}").Replace("root", "Administrator"); string profile_file_dir = $@"C:\Users\{user_name}\AppData\Local\ZennoLab\Profiles\{profile_id}\profile.json"; string profile_data = File.ReadAllText(profile_file_dir); // Десериализация через ZP dynamic data = Global.ZennoLab.Json.JsonConvert.DeserializeObject(profile_data); // Получение параметров int width = data.FingerprintInfo.Screen.Width; int height = data.FingerprintInfo.Screen.Height; instance.SetWindowSize(width, height);
Спасибо большое за такое подробное описание.Этим вы просто дергаете значения ширины и высоты из профиля. Мне эти значения заранее известны. Да и проблема как оказалось глубже чем просто не раскрытие окна до нужных размеров. Все нижеописанное касается только проектов которые запускаются на ZennoBrowser, с хромиумом такого не видел.
1) Если не устанавливать размер через SetWindowSize, ломается FullEmulationMouseMove. Мышка начинает периодически телепортироваться, иногда дублирует точки. Проверяю просто направляю мышь по маршруту А->Б->А и сохраняю логи того что видит браузер в файл. Проблема появляется только в ZennoPoster, в ProjectMaker все нормально. Если использовать SetWindowSize то в ZP мышь отрабатывает как надо. Пример телепорта на скрине (доехала до 150:800, дальше послана в другую точку и в самом начале идет резкий скачек).
Посмотреть вложение 139452
2) Нет возможности влиять на параметры Screen. Ниже скрин, на нем: 1. заход руками через ZennoBrowser 2. первое выполнение проекта в ZP после "ручного взаимодействия с ZB" 3. второе и последующие выполнения в ZP после "ручного взаимодействия c ZB". В проекте стоит SetWindowSize(1920, 1080).
Посмотреть вложение 139453
Как повлиять на availHeight так и не понял. Пробовал через SetScreenPreference, пробовал менять данные в файле profile.json - не помогает. availHeight всегда рисует 1080, ну и бонусом не совсем адекватный viewport с 2+ прогона дорисовывает.


