и опять ShellExecute Ex и ошибка 42

yemets63
Дата: 02.01.2020 13:09:05
есть необходимость запустить GPRESULT с параметрами и получить ответ в текстовый файл именно через ShellExecute или ShellExecuteEx но ShellExecuteEx использовать без скрипта CMD и в случае ошибки запуска gpresult.exe получить код ошибки

и так строка
ShellExecute(Handle, 'open', 'gpresult.exe', '/R >texftfile.txt','c:\temp\', SW_SHOWNORMAL);
всегда выдает ошибку 42,
если указать полный путь к gpresult.exe (32 или 64) ИНОГДА срабатывает и выполняется

как запустить 'gpresult.exe' с параметрами, чтобы работало?
P:S:
работаем в системе от пользователя с повышением - Администратор или подобный
alekcvp
Дата: 02.01.2020 16:50:08
yemets63
P:S: работаем в системе от пользователя с повышением - Администратор или подобный

А разве программы, которые должны работать с правами администратора, надо не как 'runas' вместо 'open' запускать?.. UAC же.
yemets63
Дата: 02.01.2020 17:30:08
alekcvp,

параметр OPEN вписал просто в топик, при RUNAS работает также как и при OPEN, недобившись успеха я в итоге перебрал всё, результаты те же при использовании shellexecute


P.S.
пока использую shellexecuteex со скриптом CMD, в котором прописано что стартовать и с какими параметрами
Bred eFeM
Дата: 02.01.2020 17:50:27
yemets63,
+
procedure TFmMain.Button1Click(Sender: TObject);
var
 res : Integer;
 opr,fle,prm,dir:string;
begin
 opr := 'open';
 fle := 'cmd.exe';
 prm := '/c chcp 1251 && gpresult.exe /R > c:\temp\gpr.txt';
 dir := 'c:\windows\system32';
 res := ShellExecute(Handle,PChar(opr),PChar(fle),PChar(prm),PChar(dir),SW_NORMAL);
 if (res <= 32) then begin
   case res of
     0,                      // The operating system is out of memory or resources.
     ERROR_BAD_FORMAT,
     SE_ERR_ACCESSDENIED,
     SE_ERR_ASSOCINCOMPLETE,
     SE_ERR_DDEBUSY,
     SE_ERR_DDEFAIL,
     SE_ERR_DDETIMEOUT,
     SE_ERR_DLLNOTFOUND,
     SE_ERR_FNF,
     SE_ERR_NOASSOC,
     SE_ERR_OOM,
     SE_ERR_PNF,
     SE_ERR_SHARE: Halt;
   end;
 end else Caption:='Ok {42} !';
end;
Dimitry Sibiryakov
Дата: 02.01.2020 18:00:54

yemets63
использовать без скрипта CMD

Невозможно. У тебя в командной строке перенаправление в файл, а оно работает только в
скриптах.

Posted via ActualForum NNTP Server 1.5