IPSTools - Tools für Monitor, Maus und mehr ...

Hallo Andreas,

erst mal vielen Dank für Deine Tollen Beiträge!

Da Du den Sourcecode für Deine IPSTools veröffentlich hast, kann ich zu dem Problem „Screensaver deaktivieren“ eine Lösung beitragen. Ich habe Deinem Tool die Methode „StopScreenSaver“ hinzugefügt. Dadurch brauchst Du das Konstrukt mit „keystuff.exe“ nicht mehr.

Die neu kompilierte IPSToolLibrary.dll sowie die geänderten Quelltexte sind angehangen. Vielleicht möchtest Du die Änderungen in einem neuen Release Deiner Tools verwenden.

IPTools.zip (10.5 KB)

Hallo Uwe,

danke Dir, werds in den nächsten Release aufnehmen…

Für’s nächste Release hätte ich auch noch eine Frage oder Bitte,

        public PerformanceUtils()
        {
			cpuCounter = new PerformanceCounter();
			cpuCounter.CategoryName = "Processor";
			cpuCounter.CounterName = "% Processor Time";
			cpuCounter.InstanceName = "_Total";

			//systemUpTime = new PerformanceCounter("System", "System Up Time");
			systemUpTime = new PerformanceCounter();
			systemUpTime.CategoryName = "System";
			systemUpTime.CounterName = "System Up Time";

			//ramCounter = new PerformanceCounter("Memory", "Available MBytes");
			ramCounter = new PerformanceCounter();
			ramCounter.CategoryName = "Memory";
			ramCounter.CounterName = "Available MBytes";
		}

Ich mußte diese Änderung machen, damit die IPSTools bei mir starten. Ich verstehe nicht, warum das so ist, aber ansonsten bekomme ich die angehängte Exception.
Hat jemand eine Erklärung?
Gruß Jens

Exception.png

@hbraun
Hallo Horst,
ich habe deine Variante für FreeDiskSpace von C,D,E übernommen.
int funktionierte bei mir auch nicht.
Wie rufst Du die drei Funktionen auf?
Diese Variante funktioniert bei mir nicht (einzeln ja, aber alle drei nein)

 include_once "IPSTools.ips.php";
 
 IPSTools_FreeDiscSpace('C');
 IPSTools_FreeDiscSpace('D');
 IPSTools_FreeDiscSpace('E');

Da gibt’s vielleicht ein Timingproblem?
Ideen?
Gruß Jens

Hallo,
habe das Script noch mal ein wenig erweitert, so kann man jetzt hiermit den aktuellen Benutzernamen auslesen, den PC herunterfahren/neustarten/sperren und Nachrichten senden. Neustart und herunterfahren ist alternativ auch mit Nachfrage möglich.

Bedienung:
Sperren: Lock
Neustart: Restart
Neustart mit Nachfrage: RestartAsk
Herunterfahren: Shutdown
Herunterfahren mit Nachfrage: ShutdownAsk
Force Shutdown: ForceShutdown
Benutzername: GetUser (sendet dann an die entsprechende Register Variable)
Nachricht: Message;Titel;Text;Zeit zum automatischen schließen (in Sek)

Es gibt noch einen kleinen Fehler: Erst wenn das Hauptfenster minimiert ist, ist es möglich, dass das Nachrichtenfenster in den Vordergrund geht.

Quellcode liefere ich nach, im Anhang die Lib und exe

Die Änderung von Heimgeist ist übernommen.

IPSTools.zip (30.7 KB)

Hallo,

der SourceCode der IPSTools ist bereits in die IPSLibrary integriert.

Wenn Du also Lust hast direkt mitzuentwickeln, dann „fork“ Dir doch das Repository und mach Deine zuküftigen Entwicklungen in der Library.

Hallo,
würde mich zwar gerne dran beteiligen, mir fehlt allerdings zurzeit aus schulischen Gründen die Zeit dafür. Wenn mal wieder Zeit da ist (Ferien kommen bestimmt…) werde ich mich gerne anschließen.
Auch ist das Thema TZusammenarbeit mit „SVN“ o.ä. Neuland für mich und erfordert noch mal extra Zeit zum Einarbeiten.

Im Anhang jetzt der ganze Quellcode (mit ganz kleinen Änderungen).
Könnt es ja gerne schon in eure Version übernehmen und ggf. auch den Fehler mit der Messagebox (eigene Form) beheben.

IPSTools.zip (386 KB)

Ich hab da ein Problem!

Und zwar bin ich nicht ganz so fit in php und nun meine Fragen zu IPSTools:

  1. Habe ich das richtig verstanden, um den Monitor bei Inaktivität der Maus auszuschalten muss ich einfach die Beispiel Skripte Receive/Send aus dem Wiki rein kopieren und gut ist?

  2. Wenn das oben richtig ist, verstehe ich nicht wie ich einstellen kann nach welcher Zeit der Monitor aus gehen soll.

  3. So wie ich es in Punkt 1 beschrieben habe, funktioniert es nicht. Monitor schaltet nicht aus.

  4. Muss die Windows eigene Monitor Abschaltung deaktiviert werden? (derzeit deaktiviert)

Entschuldigt die fragen aber wie gesagt ich bin ein Neuling, jedoch in der Besserungsphase. :wink:

Guten Morgen,

ich arbeite mich gerade in die IpsTools ein.
In der Wiki ist ja ein Beispiel für ein Sendescript. Gibt es für die anderen Aufrufe schon fertige Funktionen, also eine erweiterte IpsTools.php?
Gerade in letzter Zeit sind ja viele neue Funktionen hinzugekommen.

Danke schön und Gruss
René

@tasmanie

mit dem IPSTools Script hast Du nur eine Möglichkeit den Monitor zum Zeitpunkt der Ausführung auszuschalten - den Rest mußt Du Dir selber programmieren.

Hab auf die Schnelle auch kein Beispiel zur Hand.

@Schubi

hab da leider auch noch nichts, werde aber in den nächsten Wochen die IPSTools noch besser in die IPSLibrary integrieren und versuche bei der Gelegenheit das Script noch zu erweitern…

Hallo Leute,

ich hab da auch noch ein kleines Problem.

Ich möchte mein WeTab über die eingebaute Cam via Bewegungserkennung einschalten. Das funktioniert gut, wenn ich den Bildschirm über die IPSTools ausschalte. Wenn er über die Windows eigene Energiesparfunktion ausgeschaltet wird klappt das nicht.

Jetzt müsste ich aber beim Einschalten des Bildschirms die MouseIdle Variable zurück auf 0 setzen damit ich nach der eingestellten Zeit wieder den Monitor ausschalten kann. Das geht aber bisher leider nicht.

Hat jemand eine Idee, wie man das Ereignis „Monitoraufwachen“ abfangen und den MouseIdle Zähler auf der ClientSeite der Tools auf 0 Setzen kann?

Dafür habe ich mir eine eigene Integer Variable genommen,
die ich mit hochzählen lasse. Dann aber im Bedarfsfall durch
ein Ereignis wieder Nulle. Klappt super mit meinem WeTab.

Wie genau machst Du das?

Ich benutze übrigens mpower.exe zum aufwecken meines Bildschirms.
Und ich kann nicht auf ein externes Ereignis wie einen Bewegungsmelder reagieren denn ich nutzte ja die interen CCam des WeTab.

PS: Mir würde es schon reichen, wenn ich den IPSTools via Batch irgend etwas mit geben könnte sobald der Bildschirm wieder an geht.

Integer anlegen

$status=GetValue(59701 /*[Skripts\System\IPSTools\screensaver]*/ );

	SetValue(59701 /*[Skripts\System\IPSTools\screensaver]*/ , ++$status);  //Hier deine angelegte Var angeben

Skript mit trigger auf MouseIdleSince „Variablenänderung“ erstellen.
Das war es :wink:

Sorry, wenn ich noch mal frage aber wie erkenne ich damit, dass der Screen durch mein Tool auf dem WeTab wieder eingeschaltet wurde?

Es soll doch so sein, dass nach 60 Sekunden ohne Aktion der Screen aus geht (das kann ich einmalig daran erkennen, dass der MouseIdle > 60 ist) ist er das schalte ich den Bildschirm aus. Soweit so gut.

Jetzt kann der Bildschirm vom WeTab irgendwann durch eine Bewegung wieder aufgeweckt werden. Das wird durch YawCam (ein Prog für die Cam nmit Bewegungserkennung) überprüft welches mein MPOWER.EXE startet, das dann den Monitor ein schaltet. Die MouseIdle Time läuft dann aber munter weiter wenn niemand etwas am WebFront ändert und kann nicht mehr verwendet werden um den Bildschirm wieder aus zu schalten.

Ich weiß auch nicht wie ich erkennen soll, dass ein das Aufweck-Event aufgetreten ist damit ich darüber die MouseIdle Time wieder auf 0 stellen kann…

Oder gibt es eine Möglichkeit die IPSTools durch die Cam-Software so zu triggern, dass ich über ein Skript den Bildschirm wieder einschalten kann?

Da ich das einschlafen und das aufwachen von meinem Server steuere
klappt das. Vieleicht könntest du durch EventGhost ein Mausereignis erzeugen
lassen. Ich war da mal dran, hab es aber aus Zeitmangel nicht weiter verfolgt.

Das mit den Mausereignissen habe ich schon versucht, klappt aber in einer Konsolenanwendung nicht :frowning:

Ich hab jetzt schon mal überlegt eine Systemvar zu erzeugen, die beim Screnn Off auf 0 und über meine Batch auf 1 gesetzt wird und dann im .NET Teil der Tools abgefragt wird.

Wenn sonst keiner eine Idee hat.

Auf einem meiner PC mit Win7 schaffe ich es nicht die IPSTools zu starten. Auf einem anderen PC mit gleicher Win7 Inst läuft es ohne Probleme ???

.Net: neueste Version,
verschiedene Kompatibilitästmodi getestet,
Firewall komplett deaktiviert,
Virenscanner komplet deaktiviert,

Fehler:
Problemsignatur:
Problemereignisname: CLR20r3
Problemsignatur 01: ipstools.exe
Problemsignatur 02: 1.0.0.0
Problemsignatur 03: 4e5a9b22
Problemsignatur 04: System
Problemsignatur 05: 4.0.0.0
Problemsignatur 06: 4ec9fe7b
Problemsignatur 07: 3d9e
Problemsignatur 08: 16a
Problemsignatur 09: System.InvalidOperationException
Betriebsystemversion: 6.1.7601.2.1.0.256.48
Gebietsschema-ID: 1031

Für Ideen wäre ich sehr dankbar.

Auf meinem Touchterminal (W7 x64 Ultimate) läuft es seit kurzem auch nicht mehr. Kann aber nicht genau sagen seit wann. Denke aber es hängt mit den automatischen Updates von W7 zusammen. Sonst hat sich an dem Gerät nichts geändert da die Familie da ständig dran rumfingert und mein Drang an der Installation direkt etwas zu ändern daher nicht wirklich gross ist.
Fehlerbild: Das Programm wird gestarten, taucht in der Taskleiste kurz auf und beendet sich nach ein paar Sekunden wieder.

W7x32, zwischendurch kommt sogar noch ne Fehlermeldung bei meinem PC.

Hatte es mal mit dem .net-Service in Verbindung gebracht, aber auch die Neuinstallation brachte nix.

Gruß
Bruno