Как завершить процессы для всех пользователей на Windows Server 2008 под администратором? - вопрос №3034483

Как завершить процесс 1cv8c.exe для всех пользователей на Windows Server 2008 под администратором? Есть код, он завершает процесс, но на Windows Server такое не прокатило, хотя на Windows 7 Enterprise все работает.
Проблема в многопользовательности. Как решить задачу? Заранее спасибо.

uses TLHelp32;
...
function CloseByExeName(ExeFilename: String): Integer;
var
continueloop: Boolean;
fsnapshothandle: THandle;
fprocessentry32: TProcessEntry32;
const
//константа для команды завершения процесса
process_terminate=$0001;
begin
Result := 0;
//переводим имя файла в верхний регистр для сравнения
ExeFilename = uppercase(ExeFilename);
//получаем снимок работабщих в системе процессов
fsnapshothandle := createtoolhelp32snapshot(th32cs_snapprocess,0);
fprocessentry32.dwsize := sizeof(fprocessentry32);
continueloop := process32first(fsnapshothandle,fprocessentry32);
//перебираем процессы
while integer(continueloop)<>0 do
begin
//если имя файла совпадает с искомым, то пробуем его завершить
if ( ( uppercase( extractfilename( fprocessentry32.szexefile ) ) = ExeFilename ) OR
( uppercase( fprocessentry32.szexefile ) = ExeFilename) ) then
Result := integer( terminateprocess( openprocess( process_terminate, bool(0), fprocessentry32.th32processid ), 0) );
//берем следующий процесс
continueloop := process32next(fsnapshothandle,fprocessentry32);
end;
closehandle(fsnapshothandle);
end;
26.10.18
0 ответов
Ответов пока нет
Посмотреть всех экспертов из раздела Технологии > Delphi
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store