Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 18.06.2012, 20:18   #1
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию знает ли кто программный запуск другой программы с режимом совместимости?

нашел функцию, где с помощью win api, можно запустить программу с правами администратора.
PHP код:
Procedure.i LaunchAndElevate(Exe.s,Parameters.s="")
  Protected 
ExecFile.SHELLEXECUTEINFO
  
If Exe ""
    
Exe ProgramFilename()
  EndIf
  
ExecFile\cbSize SizeOf(ExecFile)
  
ExecFile\fMask #Null
  
ExecFile\hwnd GetDesktopWindow_()
  
ExecFile\lpVerb = @"runas"
  
ExecFile\lpFile = @Exe
  ExecFile
\lpParameters = @Parameters
  ExecFile
\lpDirectory #Null
  
ExecFile\nShow #SW_NORMAL
  
ExecFile\hInstApp #Null
  
ProcedureReturn ShellExecuteEx_(ExecFile)
EndProcedure 
код правда под PureBasic - но суть думаю понятна на прочих языках, дружащих с winapi будет примерно тот-же год.

все здорово, однако один минус - окно подтверждения запуска, ну то где весь экран темнеет и вылазит диалог "вы согласны запустить бла бла бла?" - так вот оно запускается в свернутом виде. и естественно на этот процесс этого служебного сообщения consent.exe понавешаны всякие хуки и я не могу передать фокус этому окну. на всякие блокноты да нотепады - без проблем, а этот скатина не дается

ну да ладно... запуск с правами администратора это пол белы, вторая проблема как бы запускать помимо прав администратора еще в режиме совместимости с XPSP3?

правка реестра не подходит. я имею ввиду добавление нужного ехе и добавления ему флагов прав администратора и совместимости. после такого "дописывания" из моей программы, даже с правами администратора, искомый ехе не хочет запускаться с этими режимами. при просмотре свойств ехе - галки прав и совместимости есть, но на иконке ехе файла нет значка безопасности и он запускается под обычными правами. видимо помимо правки реестра нужно еще что-то делать, чтобы дать понять системе как именно запускать данный ехешник. поэтому ищу способ запуска, аналогично приведенной выше функции, но с еще флагом совместимости... и повозможности с развернутым consent.exe, чтобы это диалог был в фокусе, а не как у меня в свернутом виде...
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 19.06.2012, 01:17   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Вариант, который предлагает фирма майкрософт и который рекомендуют использовать кодеры (не только рекомендуют, но и используют):
Manifest
Ну и ссылки по теме:
http://msdn.microsoft.com/en-us/library/aa375632.aspx
http://msdn.microsoft.com/ru-ru/library/k26e96zf.aspx
Может находится в папке с прогой (должен иметь такое же называние как исполняемый файл и разшерение .Manifest) или же подключатся как ресурс ехе файла (вроде бы не подлежит шифрованию, но не уверен).
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 19.06.2012, 10:22   #3
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

подобную статью читал, только нашел из более менее подходящего это:
PHP код:
compatibility
Contains at least one application
It has no attributesOptionalApplication manifests without a compatibility element default to Windows Vista compatibility on Windows 7. 
но исходя из описания тут касается только висты и семерки:
Манифест без элемента совместимости на виндовс 7 по умолчанию включает совместимость с виндовс вистой.

Добавлено через 3 минуты
гыгыгы еще раз поискал в гугле свой запрос, и вышел опять в эту тему ))))))))

Добавлено через 20 минут
кстати еще по манифесту: в тело программы вроде как встраивается уже манифест на стадии компилирования, а если положить рядом еще внешний файл манифеста - кто из них примется за главного?
__________________
хочу картинку в подпись!

Последний раз редактировалось SeregaZ, 19.06.2012 в 10:22. Причина: Добавлено сообщение
SeregaZ вне форума   Ответить с цитированием
Старый 20.06.2012, 00:04   #4
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Цитата:
Сообщение от SeregaZ Посмотреть сообщение
кстати еще по манифесту: в тело программы вроде как встраивается уже манифест на стадии компилирования, а если положить рядом еще внешний файл манифеста - кто из них примется за главного?
Попробовал так сделать, главный тот что в ехе файле.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 21.06.2012, 11:35   #5
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

так... ну все оказалось сам дурак в реестре две ветки, где записаны пути до файлов и их параметры при запуске: одна что глобальные параметры для всех пользователей, а вторая ветка только для текущего пользователя. я правил те глобальные и удивлялся, почему значек безопасности не появляется. надо было править или оба, или только для текущего - тогда появляется и программа требует подтверждение при запуске

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
глобальные права администратора и совместимости

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
юзерские права администратора и совместимости
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:54.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!