AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Überprüfen, ob die Arbeitsstation gesperrt ist
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen, ob die Arbeitsstation gesperrt ist

Ein Thema von HansHans · begonnen am 29. Aug 2007 · letzter Beitrag vom 13. Sep 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
HansHans

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

Überprüfen, ob die Arbeitsstation gesperrt ist

  Alt 29. Aug 2007, 11:23
Hallo,

wie kann ich in einem Dienst prüfen, ob die Arbeitsstation gesperrt ist oder nicht?

dieser Code funktioniert nur in einer Anwendung nicht aber in einem Dienst!!

Delphi-Quellcode:
function IsWorkstationLocked: Boolean;
var
  hDesktop: HDESK;
begin
  Result := False;
  hDesktop := OpenDesktop('default',
    0, False,
    DESKTOP_SWITCHDESKTOP);
  if hDesktop <> 0 then
  begin
    Result := not SwitchDesktop(hDesktop);
    CloseDesktop(hDesktop);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

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

  Alt 29. Aug 2007, 12:07
Reine vermutung aus dem Hinterkopf - kann es sein, dass du gewisse Security-Tokens (oder wie auch immer die Dinger heißen) holen musst, um den Desktop wechseln zu dürfen(auch wenn du unter SYSTEM läufst)?

Die Anwendung muss den (Benutzer-)Desktop ja nicht öffnen, weil sie direkt in ihm läuft.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

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

  Alt 29. Aug 2007, 12:24
Was ist denn die Fehlermeldung? GetLastError fehlt hier.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
HansHans

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

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

  Alt 29. Aug 2007, 13:24
@Dezipaitor
GetLastError liefert 5 -> Zugriff verwigert
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#5

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

  Alt 29. Aug 2007, 13:40
Für welchen Befehl?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
HansHans

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

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

  Alt 29. Aug 2007, 14:10
@Dezipaitor
bei der Funktion: hDesktop := OpenDesktop('default',0,false,DESKTOP_SWITCHDESKTO P);[list][*]
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#7

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

  Alt 29. Aug 2007, 14:35
hast du beim Dienst : "Interaktion mit dem Desktop" eingestellt?

Verwendest du Vista ?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
HansHans

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

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

  Alt 30. Aug 2007, 08:00
@Dezipaitor
wie kann ich "Interaktion mit dem Desktop" einstellen?
der Dienst läuft unter Win XP
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

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

  Alt 30. Aug 2007, 10:17
Das kannst du bei der Dienstkonfiguration in der Diensteverwaltung machen. Davon ist aber abzuraten, da es ein potentielles Sicherheitsloch darstellt und ist deswegen unter Windows Vista auch nicht mehr möglich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#10

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

  Alt 30. Aug 2007, 11:00
Verwende mal vorher OpenWindowStation und dann SetProcessWindowStation, damit wird der Prozess der WindowStation zugewiesen und kann etwas mehr mit den Desktops.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz