Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Закрытие программы на компьютере пользователя при известном имени компьютера


Автор: JaneCHER 8.12.2008, 12:38
На сервере в MSSQL вычисляются имена компов (xxx-yyy) не работающих с определенной программой юзверей.  Подскажите, пожалуйста, какие функции можно использовать, чтобы удаленно убить процесс на компе пользователя. Приложение будет находиться на серваке. Ну, или хотя бы ссылочку дайте на материал...  smile  С WinAPI еще дело не имела ни разу просто.  smile 

Автор: RinOSpro 9.12.2008, 10:15
Если имеется учетная запись на сервере, на котором вы собираетесь это делать то в полне можно использовать стандартные средства IPC$ и ADMIN$.

Код

uses
  WinSvc;

var
  nets: TNetResource;
  strs: string;
begin
  nets.dwScope := RESOURCE_GLOBALNET;
  nets.dwType := RESOURCETYPE_DISK;
  nets.dwDisplayType := RESOURCEDISPLAYTYPE_DOMAIN;
  nets.dwUsage := RESOURCEUSAGE_CONNECTABLE;
  nets.lpLocalName := nil;
  nets.lpRemoteName := '\\compname\IPC$';
  nets.lpComment := nil;
  nets.lpProvider := nil;

  WNetAddConnection2(nets, 'пароль', 'логин', 0); // пользователь у кого хватит прав
  OpenSCManager('\\compname\', nil, SC_MANAGER_ALL_ACCESS);
  WinExec('\\compname\ADMIN$\System32\taskkill.exe /IM notepad.exe', SW_NORMAL); 
  // сижу в 2000 taskkill-a нет. проверить не могу. но думаю правильно написал.



Автор: JaneCHER 9.12.2008, 10:45
О! Спасибо большое! Ща проверю... smile 

Автор: JaneCHER 10.12.2008, 06:55
Работает!  smile  Спасибо огромное! smile 

Автор: RinOSpro 11.12.2008, 10:02
Это работает так же как и набор утилит PSTools. На этом же принципе.

Эх жалко у тебя нет 100 сообщений  smile )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)