Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

Необходимо из сервиса запустить интерактивный EXE.   Найти похожие ветки 

 
Still Swamp   (2005-09-16 13:51) [0]

Необходимо из сервиса запустить интерактивный EXE. Я попробовал запустить calc.exe c помощью ShellExecute. Не получилось. Точнее процесс запустился но окошка я не увидел. Как это делается?


 
BiN ©   (2005-09-16 14:28) [1]

Зачем делать дыру в защите?


 
chili   (2005-09-16 14:37) [2]

Still Swamp   (16.09.05 13:51)

function CreateProcessWithLogonW(
 lpUsername,
 lpDomain,
 lpPassword:PWideChar;
 dwLogonFlags:dword;
 lpApplicationName: PWideChar;
 lpCommandLine: PWideChar;
 dwCreationFlags: DWORD;
 lpEnvironment: Pointer;
 lpCurrentDirectory: PWideChar;
 const lpStartupInfo: tSTARTUPINFO;
 var lpProcessInformation: TProcessInformation ): BOOL; stdcall; external "advapi32.dll";

wUsername := "admin";
           wDomain := "";
           wPassword := "test";
           wApplicationName := "calc.exe";
           pwUsername := Addr(wUsername[1]);
           pwDomain := Addr(wDomain[1]);
           pwPassword := Addr(wPassword[1]);
           pwApplicationName := Addr(wApplicationName[1]);
           FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
           StartupInfo.cb := SizeOf(TStartupInfo);
           CreateProcessWithLogonW(pwUsername,pwDomain,pwPassword,LOGON_WITH_PROFILE,
                                  pwApplicationName,nil,CREATE_DEFAULT_ERROR_MODE,
                                  nil,nil,StartupInfo,ProcessInfo);


 
chili   (2005-09-16 14:39) [3]

Можно еще пробовать запускать через AT с ключем /INTERACTIVE
правде не факт, что будет запущена служба расписаний...


 
kami ©   (2005-09-16 16:10) [4]

//автор -  Набережных С. ©

function ExecuteOnSession(SessionID: DWORD; const AppName: string): THandle;
var
H: THandle;
SI: TStartupInfo;
PI: TProcessInformation;
begin
Result:=0;
if not WTSQueryUserToken(SessionID, H) then Exit;
try
  FillChar(SI, SizeOf(SI), 0);
  SI.cb:=SizeOf(SI);
  if CreateProcessAsUser(H, nil, @AppName[1], nil, nil, false,
                   CREATE_NEW_CONSOLE,  nil, nil, SI, PI) then
  begin
    CloseHandle(PI.hThread);
    Result:=PI.hProcess;
  end;
finally
  CloseHandle(H);
end;
end;

function ExecuteAsIU_XP(const AppName: string): THandle;
var
SessionID: DWORD;
begin
SessionID:=WTSGetActiveConsoleSessionId;
Result:=ExecuteOnSession(SessionID, AppName);
end;


ЗЫ. Проверено автором на XP SP2



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.033 c
14-1130239426
Жук
2005-10-25 15:23
2005.11.20
Школьная парта


1-1130340430
vers
2005-10-26 19:27
2005.11.20
TPopupMenu с 32-битными картинками


2-1130493477
Perf2k2
2005-10-28 13:57
2005.11.20
Всем привет. Проблемы со связкой DBComboBox и DataSource и вообще


1-1130350320
Димитрий
2005-10-26 22:12
2005.11.20
Событие деактивации дочерней формы


4-1127117079
NightLord
2005-09-19 12:04
2005.11.20
PopupManu на WinApi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский