Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Техническая помощь в реализации самописных игр | страница 5
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 5 из 15
На страницу: Пред.  1, 2, 3, 4, 5, 6 ... 13, 14, 15  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Техническая помощь в реализации самописных игр»
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Michael_Moon :

- как запустить сторонний exe-файл, избежав при этом выскакивания разрешительного запроса от UAC?

Запускать файлы, в которые не пытаются повысить уровень своих привилегий Улыбка
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (15:59 10-09-2015), всего редактировалось 2 раз(а)
    Добавлено: 15:57 10-09-2015   
Vostok-1
 155 EGP


Репутация: 24
Сообщения: 394

Зарегистрирован: 15.08.2015
Michael_Moon :
как запустить сторонний exe-файл, избежав при этом выскакивания разрешительного запроса от UAC?


Возможно, это поможет: http://stackoverflow.com/questions/1533017/dropping-privileges-in-c-on-windows

добавлено спустя 1 минуту:
Или это: http://stackoverflow.com/questions/2488632/win-c-run-app-as-administrator-without-uac-prompt
_________________
"The gods do not protect fools.
Fools are protected by more capable fools."

Larry Niven

Последний раз редактировалось: Vostok-1 (16:13 10-09-2015), всего редактировалось 1 раз
    Добавлено: 16:13 10-09-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Там речь идёт о регулировании уровня привилегий своего файла (а рантайме). Если запускаешь сторонний - свои привелегии он требует сам.
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (16:25 10-09-2015), всего редактировалось 1 раз
    Добавлено: 16:23 10-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Shirson :
Michael_Moon :

- как запустить сторонний exe-файл, избежав при этом выскакивания разрешительного запроса от UAC?

Запускать файлы, в которые не пытаются повысить уровень своих привилегий Улыбка

По умолчанию винда запрашивает разрешение на запуск любого экзешника, если только это не экзешник из папки винды. А вот разрешения на запуск скриптов или батников не запрашивает (опять же - по умолчанию, а не у параноиков, у которых все настройки в УАК выставлены на максимум Улыбка )
Вопрос, скорее, о возможности прописывания экзешнику сценариев запуска через реестр (можно прописать скриптами, но сработает ли?) либо еще как-то.

Кстати, в VBScript пробовал запускать командой Exec (аналог командной строки), и, вроде бы, обошелся без запроса. Но как-то мутно это все. Хочется проверенных надежных вариантов.
    Добавлено: 16:35 10-09-2015   
Vostok-1
 155 EGP


Репутация: 24
Сообщения: 394

Зарегистрирован: 15.08.2015
А так? ссылка
_________________
"The gods do not protect fools.
Fools are protected by more capable fools."

Larry Niven
    Добавлено: 16:36 10-09-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Michael_Moon :
По умолчанию винда запрашивает разрешение на запуск любого экзешника, если только это не экзешник из папки винды.
С чего бы это? Запрос идёт только тогда, когда файл пытается повысить свои привилегии.
Бороться с эти, запуская его со своего приложения, нельзя.

UPD: Если запускается неавторизованный системой файл - да, спрашивает всегда.
Если авторизованый (signed), то просто запускается. Но может спросить, если файл потребует больше привилегий или полезет менять что-то.

Цитата:
Вопрос, скорее, о возможности прописывания экзешнику сценариев запуска через реестр (можно прописать скриптами, но сработает ли?) либо еще как-то.

Как только екзешник требует повышения своих привилегий, выскакивает запрос. Т.е. если изначально привилегии запуска ниже, чем потом потребует екзкшник, запрос будет выставлен пользователю.
Бороться с этим извне нельзя. Разве что сразу пытаться запустить экзешник с максимальными привилегиями, но тогда винда покажет запрос на это Улыбка
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (18:05 10-09-2015), всего редактировалось 2 раз(а)
    Добавлено: 17:40 10-09-2015   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Через планировщик заданий можно попробовать

добавлено спустя 1 минуту:
Поставить там галку "Выполнять с наивысшими правами"

Последний раз редактировалось: Криптон (17:50 10-09-2015), всего редактировалось 1 раз
    Добавлено: 17:50 10-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Спасибо всем! Остается попробовать через планировщик заданий скриптом. По результатам отпишусь.

По поводу сворачивания окна в полноэкранном режиме никто ничего не встречал? Может подскажет кто как с этим бороться? Пробовал принудительную активацию скриптом и через cmdow.exe - бесполезно.
    Добавлено: 18:30 10-09-2015   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Tasks that trigger a UAC prompt:

Running an Application as an Administrator
Changes to system-wide settings or to files in %SystemRoot% or %ProgramFiles%
Installing and uninstalling applications
Installing device drivers
Installing ActiveX controls
Changing settings for Windows Firewall
Changing UAC settings
Configuring Windows Update
Adding or removing user accounts
Changing a user’s account type
Configuring Parental Controls

Running Task Scheduler
Restoring backed-up system files
Viewing or changing another user’s folders and files
Running Disk Defragmenter
Running Registry Editor

_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (18:45 10-09-2015), всего редактировалось 1 раз
    Добавлено: 18:44 10-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Насчет последней строки - интересно. Улыбка
Встречал целую кучу скриптов на разных языках, которые делают с реестром что хотят. Некоторые пробовал на своем компе - УАК не реагировал.
По поводу таск-менеджера пока ничего не скажу. Вроде бы встречал скрипты, которые позволяют программное вписывание задачи, но - тут врать не буду - не пробовал.

Вообще же общая задача такая: есть екзешник игры с основным сюжетом, есть один (или несколько) екзешников, позволяющих либо запускать какие-то сторонние процессы в игре - квесты, абордаж, исследования, и т.д., либо выполнять какие-то достаточно сложные и продолжительные расчеты и не грузить этим основной движок (способ передачи результата можно реализовать через тот же xml). Чтобы не парить геймера сообщениями от UAC на разрешение запуска того или иного экзешника, надо как-то этим экзешникам прописать те же права запуска, что и основному экзешнику игры. Как это возможно реализовать (если вообще возможно)?
    Добавлено: 19:25 10-09-2015   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson :
Running Task Scheduler
Да, запуск самого планировщика нужно подтвердить через UAC. Но когда задачи настроены, они уже запускаются без подтверждения.

Michael_Moon :
Чтобы не парить геймера сообщениями от UAC на разрешение запуска того или иного экзешника, надо как-то этим экзешникам прописать те же права запуска, что и основному экзешнику игры. Как это возможно реализовать (если вообще возможно)?
Ну, например можно соорудить собственный лаунчер. Пользователь запускает его с максимальными правами (подтверждая их в диалоге UAC), а потом этот лаунчер уже запускает всё, что нужно (включая экзешник самой игры) без дальнейших запросов.

Последний раз редактировалось: Криптон (19:44 10-09-2015), всего редактировалось 2 раз(а)
    Добавлено: 19:41 10-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Криптон :
Ну, например можно соорудить собственный лаунчер. Пользователь запускает его с максимальными правами (подтверждая их в диалоге UAC), а потом этот лаунчер уже запускает всё, что нужно (включая экзешник самой игры) без дальнейших запросов.

Т.е. запуск экзешников в процессе самой игры производить через тот же лончер, но типа с аргументами, как через командную строку или ярлык? Хм, а это, пожалуй, может сработать Ой, не могу!..
Попробую потестировать такой сценарий через vbs, а потом, если получится, сконвертировать его в ехе. Улыбка
    Добавлено: 20:05 10-09-2015   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Michael_Moon :
Т.е. запуск экзешников в процессе самой игры производить через тот же лончер, но типа с аргументами, как через командную строку или ярлык? Хм, а это, пожалуй, может сработать
Не совсем понял.
Я предлагал так: есть некая программа-лаунчер. Она один раз запускается (с полными правами, через UAC) пользователем, и висит где-нибудь в трее (или просто на заднем плане). И уже она, по расписанию, или по команде, запускает нужные экзешники/скрипты/что там ещё надо.
А вот при чём тут всякие аргументы, мне не понятно.

Последний раз редактировалось: Криптон (20:38 10-09-2015), всего редактировалось 1 раз
    Добавлено: 20:38 10-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Проблема в том, как передать этому лончеру команду на запуск того или иного исполняемого файла? Да и непродуктивно это - держать процесс постоянно запущенным. А вот запуск этого же лончера из командной строки, но с передаваемым аргументом в виде файла, который он должен запустить, вполне себе идея. Запуск, разумеется, должен быть "тихим". В этом случае лончер запускается в процессах, но не лезет в активные окна, и так же в тихом режиме запускает нужный экзешник, указанный в качестве аргумента. Если лончер запустить без аргумента (даблклик по нему), то он запустит основной экзешник самой игры.
На мой неискушенный взгляд вполне себе изящное решение. Просто я пока себе довольно плохо представляю, как, например, на игрушке, сделанной на юньке, с прикрученным обработчиком LUA -скриптов, написать сценарий динамического запуска внешних экзешников.
    Добавлено: 21:18 10-09-2015   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Michael_Moon :
- как избежать сворачивания окна игры при игре в полноэкранном режиме при запуске сторонних батников или vb-скриптов? При этом при игре в оконном режиме игра не сворачивается, но поверх пролетает окно командной строки?

Если только в изначально минимизированном варианте запускать.
А дочерним процессом не пробовал?
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 22:13 10-09-2015   
Minx
 980 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 136
Сообщения: 10528
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Мы (не в геймдеве) как раз такие задачи дочерними процессами чаще всего решаем. Дергается какой-нибудь ACE_Process или Poco::Process::launch и вперед. Дочерний если что грохается вместе с родительским. Передал параметры, лови результат. Или коннект между процессами сетевой если нужно общение.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (23:37 10-09-2015), всего редактировалось 1 раз
    Добавлено: 23:35 10-09-2015   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Minx :
Или коннект между процессами сетевой если нужно общение.

Если есть лаунчер различных экзешников и есть собственно игра(или какое-либо приложение) то из игры проще дать команду лаунчеру по сети, таким образом получаем "распараллеливание" выполнения задачи.

Michael_Moon :
но поверх пролетает окно командной строки?

Аналогичная проблему потери фокуса и плавающих черных окошек решил с помощью модифицированного CHP.exe, другие варианты не помогали.
Внимание! Оригинал 100% работает под winXP sp2. Под win7/8 не испытывал.
http://www.commandline.co.uk/chp/
В оригинале программа CHP.exe запускает указанное приложение в невидимом окне и оно висит в процессах до тех пор, пока не завершится само. При этом, само приложение CHP создает собственное скрытое окно, таким образом ничего не видно, кроме изменяющегося курсора мыши.
При этом есть нюансы: оргинал CHP.exe не ждет завершения указанного процесса, вместо этого он возвращает PID созданного процесса и выключается.

В моем случае, мне нужен был сам факт того, что скрытый процесс завершился - я просто взял исходник CHP.exe и изменил его, благо исходники на оффсайте прилагаются.
Таким образом, запуская chp.exe с нужными аргументами получаю скрытый дочерний процесс, который останавливает игру до тех пор, пока не завершится дочерний процесс.
Банально с точки зрения любого языка высокого уровня - создать дочерний и ждать его завершения, но только не в случае с GameMaker и скрытыми процессами.
Если нужно - могу выложить сорцы, если лень собирать - могу само приложение выложить, все равно опенсорс Улыбка
Хотя если нет проблем с отслеживанием процесса по его PID то по ссылке CHP.exe вполне подойдет Улыбка

Последний раз редактировалось: БулерМэн (23:21 11-09-2015), всего редактировалось 3 раз(а)
    Добавлено: 23:01 11-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Отследить PID ПРОЦЕССА через Task Manager в VBS проблем не представляет. Вот только даже насильственная активация не помогает. Фиг его знает, господа-товарищи Улыбка
    Добавлено: 15:11 12-09-2015   
Minx
 980 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 136
Сообщения: 10528
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
После создания процесса нормальные библиотеки (в т.ч. ACE/Poco) позволяют получить хэндл, из которого узнается PID, а также можно выполнять кучу действий, типа убить процесс, подождать, узнать родительский процесс, узнать работает или нет и т.п. без какой-либо уличной магии.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (16:22 12-09-2015), всего редактировалось 1 раз
    Добавлено: 16:21 12-09-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 1(2)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Minx :
После создания процесса нормальные библиотеки (в т.ч. ACE/Poco) позволяют получить хэндл, из которого узнается PID, а также можно выполнять кучу действий, типа убить процесс, подождать, узнать родительский процесс, узнать работает или нет и т.п. без какой-либо уличной магии.

Весь прикол в том, что я и хэндл, и пид процесса узнать могу (могу код привести), но ХЭНДЛЕР окна получить не могу (даже через cmdow, но... самый прикол, ПРОГРАММНО). Т.е. я не могу непосредственно влиять на окно, а, значит, и скомандовать ему активироваться в макс режиме. Иначе все было бы довольно просто.
Как-то так...
    Добавлено: 16:37 12-09-2015   
Канал Игры Мечты: «Техническая помощь в реализации самописных игр»
На страницу: Пред.  1, 2, 3, 4, 5, 6 ... 13, 14, 15  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Увидите где-нибудь ''мамбу'' с пустым трюмом - не стреляйте, это я. (попросил PillBoX)

  » Техническая помощь в реализации самописных игр | страница 5
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18