Laden...

Windows-Dienst soll Benutzer-Status "erkennen"

Erstellt von simonsturzenegger vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.815 Views
S
simonsturzenegger Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren
Windows-Dienst soll Benutzer-Status "erkennen"

Hallo Leute,

Ich setze mich heute zum ersten mal mit der Windows-Dienst Programmierung auseinander. Dabei möchte ich einen Dienst realisieren, der erkennt, dass der Benutzer seinen PC gesperrt hat und als Aktion darauf ein Programm beendet, das läuft.
Sobald der Benutzer die Sperrung auflöst, soll das Programm wieder starten.

Hab auch danach gegoogelt, aber bisher leider nichts Brauchbares gefunden. Hat jemand Tipps, Tutorials oder ne Idee, wie ich das realisieren könnte?

Danke für eure Hilfe!

Gruss, Simon

4.221 Beiträge seit 2005
vor 18 Jahren

Such mal nach ISensLogon DisplayLock DisplayUnlock

Ohne mich jetzt eingelesen zu haben denke ich, dass dies mit WMI realisierbar sein sollte.

Gruss
Programmierhans

GuckstDu auch hier: http://dotnet.sys-con.com/read/105651_1.htm

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
simonsturzenegger Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren
Werds mal ausprobieren

Danke dir schonmal!

Ich werd mir das morgen mal in Ruhe ansehen und mich dann wieder melden. Habe in der Zwischenzeit auch in der MSDN Library einige interessante Artikel gefunden, die das Thema betreffen.

Gruss, Simon

S
simonsturzenegger Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren

Sieht so aus, als hättest du nicht Recht, Programmierhans 🙂

Hab Folgendes auf ner Microsoft Scripting Site gefunden:

as near as we can tell, nothing within WMI allows you to lock a computer.

Aber über die LockWorkstation Methode der user32.dll sollte es wohl irgendwie gehen.

Ich werde mich melden, sobald ich weitergekommen bin.

Gruss, Simon

4.221 Beiträge seit 2005
vor 18 Jahren

Du willst ja auch nicht den Computer locken sondern benachrichtigt werden, dass der Computer gelockt wurde.... und dies würde vermutlich auch mit WMI funzen.... aber im Link den ich angegeben habe findest Du vollständigen Source-Code wie Du dies mit ISenseLogon lösen kannst...

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
simonsturzenegger Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren
Okay

Okay, dann werde ich mir das nochmals ansehen.

Dann habe ich noch ne zusätzliche Frage.
Ich will gerade die user32.lib zu meinem C# Projekt hinzufügen. Finde Sie aber bei den Verweisen nicht...Weiss jemand wo, bzw. nach was ich suchen muss?

4.221 Beiträge seit 2005
vor 18 Jahren

Das geht nicht....

Du musst die Funktionen die Du brauchst mit DllImport reinsaugen... (Beispiele siehe SDK oder hier im Forum)

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
125 Beiträge seit 2005
vor 18 Jahren

Ich kann mich Programmierhans nur anschließen.
WMI scheint mir auch die richtige Wahl zu sein.

Begründung: Ich beschäftige mich gerade selbst damit und habe festgestellt, daß WMI sehr, sehr mächtig ist.

Schau mal hier nach den Win32-OperatingSystem-Klassen, da wirst du bestimmt fündig.

Mfg SGT_BOB

*************************
Ich bin root, ich darf das... 😜
root>_
*************************

S
simonsturzenegger Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren
Jepp

Ja habe ich auch gemerkt 😁

Hab jetzt mal folgendermassen angefangen:

		

private void bt_lock_Click(object sender, System.EventArgs e)
{
	bool result = LockWorkStation();
			

	if( result == true )
	{
		textBox1.Text = "Station gesperrt";
	}
	else
	{
		textBox1.Text = "Station frei";
	}
}

Jetzt muss ich das Ganze nur noch so ändern, dass er ein laufendes Programm beendet, sobald die Workstsation gesperrt wird und regelmässig überpürft (z.B. jede Minute ob die WS gesperrt ist)

Nur wie ich daraus einen Windows-Service mache weiss ich nicht. Hab noch nie einen Windows-Service erstellt.....

Gruss, Simon

4.221 Beiträge seit 2005
vor 18 Jahren

Liest Du eigentlich die Links die man dir gibt ???

Du willst jetzt pollen..... Obwohl Du Dich in die Events einklinken kannst und so mitbekommst, wann der Lock aufgehoben wird...

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
simonsturzenegger Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren
Habs gefunden

Danke Leute, ich habe jetzt ein Beispiel im Netz gefunden, das genau dem entspricht, was ich suche. Ist nur noch ein wenig Anpassung nötig.

Hier für die, die es interessiert: http://adam.hughes.cc/blog/2005/03/21/senswrapper-in-csharp/

Gruss, Simon