Показать сообщение отдельно
  #4  
Старый 04.05.2013, 00:55
Colombo Colombo вне форума
Прохожий
 
Регистрация: 03.05.2013
Сообщения: 5
Версия Delphi: Delphi XE2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
А вот это (см. прикреплённый архив) снимает блокировку с процесса? Если не снимает, то подключение тогда вообще не возможно.
Это не заработало на win7(64).


Немного подробностей по проблеме
читаю процесс так

Код:
procedure TForm2.ConnectGame;
var
  WndHndl: THandle;
  PID, BytesCount, ipbuf: size_t;
begin

  WndHndl := findwindow('ArmA 2 OA', nil);
  GetWindowThreadProcessId(WndHndl, @PID);
  hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ or
      PROCESS_VM_OPERATION, False, PID);
  if hProcess = 0 then
    begin
      BitBtn1.Caption := ('error');
      BitBtn1.Font.Color := clRed;
    end
  else
    begin
      BitBtn1.Caption := ('connected');
      BitBtn1.Font.Color := clGreen;
    end;
  if hProcess <> 0 then
    try
До 8-й строки, включительно, все вроде бы хорошо.
Девятая возвращает 0.
Это происходит именно когда срабатывает блокировка на открытие/чтение процесса, потому что если ее обойти (есть временный вариант), то все работает.
Ответить с цитированием