Einzelnen Beitrag anzeigen

HansHans

Registriert seit: 29. Aug 2007
12 Beiträge
 
#15

Re: Überprüfen, ob die Arbeitsstation gesperrt ist

  Alt 3. Sep 2007, 17:01
hier der neue Code:

Delphi-Quellcode:
function TTimeService.IsWorkstationLocked: Boolean;
var
  hDesktop : HDESK;
  hOldStation : THandle;
  hStation : THandle;
  ErrorCode : Integer;
begin
  Result := false;
  hOldStation := GetProcessWindowStation;
  if hOldStation = 0 then Exit;
  try
    hStation := OpenWindowStation('winsta0',false,MAXIMUM_ALLOWED);
    if hStation <> 0 then begin
      if SetProcessWindowStation(hStation) then begin
        hDesktop := OpenDesktop('default',0,false,DESKTOP_SWITCHDESKTOP);
        if hDesktop <> 0 then begin
          Result := not SwitchDesktop(hDesktop);
          CloseDesktop(hDesktop);
        end;
      end;
    end;
  except
  end;
  SetProcessWindowStation(hOldStation);
end;
  Mit Zitat antworten Zitat