Показать сообщение отдельно
Старый 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 вне форума   Ответить с цитированием