Главная страница
    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.043 c
2-1131229226
zaN0za
2005-11-06 01:20
2005.11.20
Подскажите пожалуйста, что я делаю не правильно.


1-1130596156
FunkyByte
2005-10-29 18:29
2005.11.20
Проблема при вставке текста из буффера обмена в Memo


8-1120155066
ronyn
2005-06-30 22:11
2005.11.20
Минимизация названия медиа файла в ListBox


3-1128759093
Серг73
2005-10-08 12:11
2005.11.20
RecordStatus постоянно rsUnmodified


2-1130828309
DimaDima
2005-11-01 09:58
2005.11.20
Требует всё больше памяти.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский