Schrift
[thread]4717[/thread]

Windows Fenster manipulieren: Fremdprozesse, Windows Fenster Manipulie

Leser: 1


<< >> 10 Einträge, 1 Seite
ahnungsloser
 2004-02-12 13:42
#46859 #46859
User since
2003-09-03
80 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe mal eine Frage, die sich auf Fremdfenster, bzw. Fremdprozesse bezieht. Unter Windows, werden den Fenster-Dekorationen ja 3 Buttons mitgegen, zum Minimieren, Maximieren und Fensterschliessen. Ich suche eine Möglichkeit, über Perl, ein Prozess, bzw. ein gestartetes Programm zu identifizieren und dann z.B. dem user die Möglichkeit (X-Button) Fensterschliessen zu entziehen. So dass er sich aus der Fremdapplikation korrekt abmelden muss!
Crian
 2004-02-12 14:06
#46860 #46860
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Ich glaube das wird so einfach nicht gehen. Aber vielleicht gibt es die Möglichkeit, über Funktionen aus Microsofts DLL's diese Funktionalität hinzubekommen. Aber Du müsstest ja auch gegen Alt-F4 etwas unternehmen.

Und was machst Du, wenn der User den Rechner ausschaltet? Warum willst Du, dass er sich abmelden muss?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
ahnungsloser
 2004-02-12 16:12
#46861 #46861
User since
2003-09-03
80 Artikel
BenutzerIn
[default_avatar]
Hi,

es geht darum, weil wir eine Anwendung fahren, die einem Telnet gleich kommt, das ist eine der Hauptanwendungen. Wenn die User nu dort Daten verändern und sich nicht korrekt ausloggen, dann werden die Datensätze gesperrt, das heist andere kommen nicht mehr heran und die Herren der Großen schwarzen Kiste (AS400) sind mit freischalten der Datensätze beschäftigt.
Mit einem korrekten Logoff, passiert das nicht.
Ja, eigentlich müsste alt+f4 auch getötet werden, wobei ein grossteil das hier nicht weis. Dachte schon an Registry-eintrag????
steffenw
 2004-02-13 10:49
#46862 #46862
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich glaube, daß das der falsche Lösungsansatz ist.

Die Ursache ist doch die, daß die Lebenszeit der Sperrung auf Serverseite nicht automatisch überwacht wird. Es fehlt der Automatismus, der einen User aus so einem brisanten Dialog herauswirft, wenn er andere User absichtlich durch Untätigkeit blockiert.

Genau so gut kannst Du auch den Netzwerkstecker am PC abziehen und das kannst Du schlecht mit Perl abfangen.

Denke doch nur mal daran, wie es ist, wenn ein User in einem Internet-Shop eintritt, sich den Warenkorb füllt und dann einfach die Internet-Verbindung getrennt wird. Da kann man sich doch auch nicht beim User beschweren. Man muß Mittel und Wege beschreiten, daß eine Session automatisch abläuft und die Datenbanken usw. wieder bereinigt werden.
$SIG{USER} = sub {love 'Perl' or die};
esskar
 2004-02-13 11:23
#46863 #46863
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Soweit ich das Verstehe besteht aber nicht die Möglichkeit selber am Code des "Telnet"-Systems zu schrauben...

es gibt unter Windows Hooks für Tastatur und so... auch systemweite...
surf mal nach http://msdn.microsoft.com und such nach hook (wahrscheinlich ist es in dem fall besser ein c/c++ oder .NET programm zu schreiben, da das interface glaub ich nicht sehr trivial ist)!
ahnungsloser
 2004-02-13 12:23
#46864 #46864
User since
2003-09-03
80 Artikel
BenutzerIn
[default_avatar]
Hi,

@steffenw, es ist nicht so, dass andere nicht arbeiten könnten, is nur so, der user, bearbeitet einen Datensatz, schliesst das Fenster über (X) und der Datensatz hat eine Sperre. Ansehen, können natürlich die User aber nicht mehr verändern. Is etwas haarig die Sache.
Crian
 2004-02-13 13:37
#46865 #46865
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Dann gib gesperrte Datensätze einfach nach einer langen Zeit (15 Minuten?) wieder frei, das System könnte ja noch eine entsprechende Nachricht an den User schicken bzw. dessen Dilog canceln, falls er etwa gerade nur in einem Gespräch oder Anruf vertieft war und das Programm gar nicht beendet hat.
Oder Du lässt das Userprogramm alle 5 Minuten Lebenszeicehn an den Server schicken. Wenn dann zu einem gesperrten DS nach 6 Minuten kein Lebenszeichen mti der passenden SessionID kam, gibst Du ihn frei.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2004-02-14 04:01
#46866 #46866
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Eigentlich bräuchte es nur solange zu sperren bis der socket geschlossen wird...
telnet eben!
ahnungsloser
 2004-02-17 08:51
#46867 #46867
User since
2003-09-03
80 Artikel
BenutzerIn
[default_avatar]
Hi,

also, das verhält sich so, ich habe keinen Einfluss, auf die Datensätze des Großrechners und mittels einer 5250 Anwendung (Client Access Express) können die User mit dem Großrechner kommunizieren. Diese Sitzungen, werden unregelmäsig beendet, weil die User nie etwas von Abmelden höhren wollen.
Ich dacht mir, ich greif jeweils, den Prozess auf dem einzel Rechner ab, erroriere das oder die Fenster und kann dann auf die Fensterdekoration Einfluss nehmen.
Crian
 2004-02-17 11:15
#46868 #46868
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Wenn Du den Prozess herausbekommst merk Dir die PID, wenn der Prozess weg ist gib halt selbst frei, was der User sonst durch Abmelden freigeben würde.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 10 Einträge, 1 Seite



View all threads created 2004-02-12 13:42.