|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Запуск системной утилиты из приложения
Доброго времени суток, уважаемы форумчане!
Что-то не могу найти на форумах похожих тем (наверное плохо ищу), поэтому буду рад любой помощи. Суть вот в чем. При запуске из командной строки (с правами администратора) какой-нибудь системной утилиты (например sfc /scannow или powercfg /energy) все работает отлично и замечательно. Но стоит запустить эти же утилиты из приложения - начинаются проблемы. Пробовал решить их и так, и сяк - ничего не получается. Под "и так, и сяк" я понимаю ShellExecute(), WinExec(); CreateProcess(). Всегда одно и то же. Привожу пример выполнения команды powercfg /energy: С помощью CreateProcess: Код:
if (Radiobutton1.Checked = True) then FillChar(si,SizeOf(si),0); si.cb := SizeOf(si); si.dwFlags := STARTF_USESHOWWINDOW; si.wShowWindow := SW_SHOWNORMAL; if CreateProcess(nil, 'cmd.exe /K "powercfg /energy"', nil, nil, false, 0, nil, nil, si, pi) then begin CloseHandle(pi.hProcess); end else begin MessageBox(0, PChar(IntToStr(GetLastError())), nil, 0); end; С помощью ShellExecute: Код:
if (Radiobutton1.Checked = True) then begin Nrg_btn:='/K powercfg /energy'; ShellExecute(Handle, nil, 'cmd.exe', PChar(Nrg_btn), nil, SW_SHOW); end; P.S. Ошибка при выполнении: Цитата:
|