 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
MOD147
Anmeldedatum: 01.02.2008 Beiträge: 31 Wohnort: Ungarn
|
Verfasst am: Di Mai 13, 2008 10:13 am Titel: remote process erkennen im lan |
|
|
Hi leuts, ich schon wider,
läst es sich mit "Process" erledigen?, das ich feststellen kann ob eine bestimte Software auf einem anderen Pc im LAN gestartet wurde.
Der Hintergrund ist wir haben eine Software mit einer Lizenz für 2 User, d.h. 2 User dürfen gleichzeiteig damit arbeiten, jedoch sind 6 User davon betroffen, für diese möchte ich eine kleine gui -schreiben in der sie sehen ob irgenwo im LAN die Software läuft - damit mann dann dort anrufen kann und der andere abschaltet - "anruf" evtl. auch mit einer Msgbox? _________________ mfg Zoltán
_______________________________
Wer Fehler findet kann sie behalten!! |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1878 Wohnort: Österreich
|
|
| Nach oben |
|
 |
BoBo¨ Gast
|
Verfasst am: Di Mai 13, 2008 10:28 am Titel: |
|
|
Einen Prozess remote abzuschiessen (User mit laufendem Programm aber gelocktem Rechner (Blond mit Stränchen ) in Mittagspause/Urlaub). Ich denke das ist nicht ohne weiteres möglich (und sollte es auch nicht sein).
Vorschlag:
Eine laufende SetTimer-Routine für jeden der genannten Rechner/User.
Diese ermittelt den Status des Programms (läuft vs. läuft nicht, evtl. mit User-/Rechnername) und schreibt
a) entweder eine lokale Datei (welche remote abgefragt wird), oder
b) eine zentrale Datei im Netz (welche ebenfalls abfragbar sein sollte).
c) per Hotkey kann von einem der Rechner eine Anfrage (über die Datei) an einen vermeintlichen Blockierer übermittelt werden. Dessen Routine popt daraufhin mit ner MessageBox (auf! )
d) Ferdsch.
e) oder Thalons Hinweise aufmerksam studieren und umsetzen |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1062 Wohnort: 127.0.0.1
|
Verfasst am: Di Mai 13, 2008 11:05 am Titel: |
|
|
sysinternals.com (neuerdings bei microsoft zu finden) haben mal die sog. pstools veröffentlicht. zu finden unter
http://technet.microsoft.com/de-de/sysinternals/bb896649(en-us).aspx
ich habe mit denen mal eine wenig herumgespielt und es ist - so die passenden dienste freigeschaltet sind - recht einfach möglich, aufzulisten, welche prozesse auf welchem computer laufen und diese ggf abzuschießen.
unter umständen muss aber der zielcomputer vorher passend präpariert werden also die dienste auf der maschiene, die sowas ermöglichen erst angeschaltet werden. leider ist das bei mit schon zu lange her, als dass ich mich an details erinnern kann (vor 2004). die ausgabe der utilities lässt sich via cmdret oder ähnlichem (pipe nach datei) abfragen und von da an wieder mit autohotkey auswerten.
ich meine es war der so. remote registry zugriff, der dafür notwendig ist ggf muss die firewall configuriert werden, dass der process funktioniert
um beispielsweise die passenden prozesse zu listen wäre folgender aufruf nötig:
| Code: | | pslist.exe \\ip.des.ziel.pc -u Benutzer -p Geheim -e ExacterNameDesProgramms >ausgabe.txt |
wenn der zu findende prozess nicht existiert, erscheint der text
| Code: | Process information for COMPUTER-NAME:
process GibtEsGarnicht was not found on COMPUTER-NAME |
in der datei
andernfalls stehen da vitale informationen über den process u.a. seine PID, die dann mittels pskill.exe abgeschossen werden kann
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
IsNull(n-l-i) Gast
|
Verfasst am: Di Mai 13, 2008 1:08 pm Titel: |
|
|
|
|
| Nach oben |
|
 |
IsNull(n-l-i) Gast
|
|
| Nach oben |
|
 |
MOD147
Anmeldedatum: 01.02.2008 Beiträge: 31 Wohnort: Ungarn
|
Verfasst am: Di Mai 13, 2008 1:25 pm Titel: |
|
|
nö nö nö nö,
nicht so komplex bitte,
wollte nur wissen, wo eine bestimmte software gestartet wurde, damit ich den user sagen kann - "geh raus - ich muss was buchen", sind schon 2 am arbeiten, macht die software schon ne meldung, das 2 damit arbeiten bzw. diese offen haben.
die Soft liegt auf'm server und wenn ich richtig checke wird eine users.dat aktuell geschrieben sobald einer die software nutzt.
habe folgendes versucht:
| Code: | FileRead, zusuchen , G:\UGYV\Program\users.dat
if not ErrorLevel ; Erfolgreich geladen.
{
FoundPos1 := RegExMatch(%zusuchen%, Penzt0101 )
FoundPos2 := RegExMatch(%zusuchen%, Titk0301 )
FoundPos3 := RegExMatch(%zusuchen%, Konv0501 )
FoundPos4 := RegExMatch(%zusuchen%, Konv0503 )
FoundPos5 := RegExMatch(%zusuchen%, Konv0504 )
FoundPos6 := RegExMatch(%zusuchen%, Erte0601 )
FoundPos7 := RegExMatch(%zusuchen%, Erte0602 )
FoundPos8 := RegExMatch(%zusuchen%, Rakt0101 )
FoundPos9 := RegExMatch(%zusuchen%, Rakt0201 )
}
msgtxtx =
if (%FoundPos1% != 0)
msgtxtx = %msgtxtx%`nPenztar 11
if (%FoundPos2% != 0)
msgtxtx = %msgtxtx%`nTitkarság - 13
if (%FoundPos3% != 0)
msgtxtx = %msgtxtx%`nKonvelő - 16
if (%FoundPos4% != 0)
msgtxtx = %msgtxtx%`nKonvelő - 16
if (%FoundPos5% != 0)
msgtxtx = %msgtxtx%`nKonvelő - 16
if (%FoundPos6% != 0)
msgtxtx = %msgtxtx%`nKereskedő - 17
if (%FoundPos7% != 0)
msgtxtx = %msgtxtx%`nKereskedő - 17
if (%FoundPos8% != 0)
msgtxtx = %msgtxtx%`nRaktar - 14
if (%FoundPos9% != 0)
msgtxtx = %msgtxtx%`nRaktar - 26
msgbox, 0,Számadó felhasznalók, %msgtxtx%
|
bekomme aber entweder eine leere Msgbox oder aber eine mit allen drin, je nachdem ob ich % benutze oder nicht, habe auch <> statt != versucht
kann es an den "steuerzeichen ~ nicht text" in der datei liegen??
ich checks nicht _________________ mfg Zoltán
_______________________________
Wer Fehler findet kann sie behalten!! |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1878 Wohnort: Österreich
|
Verfasst am: Di Mai 13, 2008 1:34 pm Titel: |
|
|
Wenns strutzendoof sein soll kannst folgendes machen:
IniWrite auf ein Netzlaufwerk mit 2 Einträgen:
Lizenz1_used=
Lizenz2_used=
Wenn nun ein User das Programm startet schreibt er per IniWrite seine Durchwahl, seine IP oder sonstwas in Lizenz1_used rein.
Wenn nun ein weiterer User das Programm startet fragt er an (per IniRead) ob einer der beiden Einträge leer ist.
Falls ja, trägt er dort seine Daten ein.
Falls nein, bekommt er eine entsprechende Meldung ausgegeben mit den eingetragenen Daten.
Wenn ein User das Programm beendet wird "sein" Eintrag wieder geleert um anzuzeigen, dass die Lizenz frei ist.
Diese Lösung erschien mir so naheliegend, dass ich die Anfrage nach einem etwas zuverlässigerem "On-Demand" verstanden hatte.
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
MOD147
Anmeldedatum: 01.02.2008 Beiträge: 31 Wohnort: Ungarn
|
Verfasst am: Di Mai 13, 2008 2:53 pm Titel: |
|
|
| Thalon hat Folgendes geschrieben: | Wenns strutzendoof sein soll kannst folgendes machen:
IniWrite auf ein Netzlaufwerk mit 2 Einträgen:
Lizenz1_used=
Lizenz2_used=
Wenn nun ein User das Programm startet schreibt er per IniWrite seine Durchwahl, seine IP oder sonstwas in Lizenz1_used rein.
Wenn nun ein weiterer User das Programm startet fragt er an (per IniRead) ob einer der beiden Einträge leer ist.
Falls ja, trägt er dort seine Daten ein.
Falls nein, bekommt er eine entsprechende Meldung ausgegeben mit den eingetragenen Daten.
Wenn ein User das Programm beendet wird "sein" Eintrag wieder geleert um anzuzeigen, dass die Lizenz frei ist.
Diese Lösung erschien mir so naheliegend, dass ich die Anfrage nach einem etwas zuverlässigerem "On-Demand" verstanden hatte.
Thalon | strutzendoof bin ich heute auch - ich kriegs nicht gebacken, kannst nicht mal ein paar zeilen zeigen _________________ mfg Zoltán
_______________________________
Wer Fehler findet kann sie behalten!! |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1878 Wohnort: Österreich
|
Verfasst am: Di Mai 13, 2008 3:33 pm Titel: |
|
|
| Code: | #Persistent
#SingleInstance off ;For testing at 1 PC, remove in final version
NetworkFilePath = C:\UsedLicences.ini
Pc_Info = DW:666
Settimer, CheckProcess, 5000
return
CheckProcess:
Process, Exist, Notepad.exe
if (Errorlevel != "0") AND (MyLicenceNumber = "")
{
IniRead, Licence1, %NetworkFilePath%, Licences, Licence1Used
if Errorlevel = ERROR
msgbox No network-connection or file missing!
else if Licence1 =
{
IniWrite, %Pc_Info%, %NetworkFilePath%, Licences, Licence1Used
MyLicenceNumber= 1
}
else
{
IniRead, Licence2, %NetworkFilePath%, Licences, Licence2Used
if Errorlevel = ERROR
msgbox No network-connection or file missing!
else if Licence2 =
{
IniWrite, %Pc_Info%, %NetworkFilePath%, Licences, Licence2Used
MyLicenceNumber= 2
}
else
msgbox All licences used.`nPlease contact %Licence1% or %Licence2%
}
}
else if (Errorlevel = "0") AND (MyLicenceNumber != "")
{
IniWrite, %None%, %NetworkFilePath%, Licences, Licence%MyLicenceNumber%Used
MyLicenceNumber=
}
return |
| Zitat: | [Licences]
Licence1Used=
Licence2Used= |
Rudimentär getestet auf einem PC.
Die Variable PC_Info ist auf jedem PC anzupassen und könnte A_IPAdress1-4, A_UserName o.ä. verwenden um das Skript nicht für jeden Arbeitsplatz anpassen zu müssen.
Alternativ wäre es auch denkbar ein lokales Ini-File im Skriptordner zu platzieren das den anzuzeigenden Text vorgibt.
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
MOD147
Anmeldedatum: 01.02.2008 Beiträge: 31 Wohnort: Ungarn
|
Verfasst am: Mi Mai 14, 2008 8:28 am Titel: |
|
|
@ Thalon, echt gut, danke!!
habe es ein bisserl umgebaut
ich prüfe zuerst ob 2 User das Prog in gebrauch haben
wenn ja - gibts die Meldung "Abteilung - Tel."
wenn nicht - eintrag in die ini
und start des geprüften Progs
| Code: |
#Persistent
#SingleInstance off ;For testing at 1 PC, remove in final version
NetworkFilePath = C:\UsedLicences.ini
NetworkFilePprog = C:\Windows\system32\notepad.exe
IniRead, Pc_Info, %NetworkFilePath%, Machinas, %A_ComputerName%
if Errorlevel = ERROR
msgbox No network-connection or file missing!
gosub Checkszamado
Settimer, CheckProcess, 5000
return
Checkszamado:
IniRead, Licence1, %NetworkFilePath%, Licences, Licence1Used
if Errorlevel = ERROR
msgbox No network-connection or file missing!
else if Licence1 =
{
IniWrite, %Pc_Info%, %NetworkFilePath%, Licences, Licence1Used
MyLicenceNumber= 1
run %NetworkFilePprog%
return
}
else
{
IniRead, Licence2, %NetworkFilePath%, Licences, Licence2Used
if Errorlevel = ERROR
msgbox No network-connection or file missing!
else if Licence2 =
{
IniWrite, %Pc_Info%, %NetworkFilePath%, Licences, Licence2Used
MyLicenceNumber= 2
run %NetworkFilePprog%
return
}
else
msgbox A felhasznalók`n %Licence1% és %Licence2%`nhasznaljak a szamadót ;Meldung "Abteilung - Tel."
}
return
CheckProcess:
Process, Exist, Sz01w.exe
if (Errorlevel != "0") AND (MyLicenceNumber = "")
{
gosub Checkszamado
}
else if (Errorlevel = "0") AND (MyLicenceNumber != "")
{
IniWrite, %None%, %NetworkFilePath%, Licences, Licence%MyLicenceNumber%Used
MyLicenceNumber=
exitApp
}
return |
| Zitat: |
[Licences]
Licence1Used=
Licence2Used=
[Machinas]
Masch0101 =Penztar - 11
Masch0301 =Titkarság - 13
Masch0501 =Könvelés - 16
Masch0503 =Könvelés - 16
Masch0504 =Könvelés - 16
Masch0601 =Kereskedő - 17
Masch0602 =Kereskedő - 17
Masch0101 =Raktar - 14
Masch0201 =Raktar - 26
|
nach beenden des Progs, schliesst sich der/das script auch.
bisher nur auf einen Pc getested, sollte aber gehn.
wie kann ich dem compiliertem script noch ein eigenes icon verpassen, so dass ich nicht auf jeden Pc noch ein icon-file und eine ini mit kopieren muss
, entsteht ja bei 'compile with option' - wobei die exe immer noch das grüne H zeigt _________________ mfg Zoltán
_______________________________
Wer Fehler findet kann sie behalten!! |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1878 Wohnort: Österreich
|
Verfasst am: Mi Mai 14, 2008 8:45 am Titel: |
|
|
| MOD147 hat Folgendes geschrieben: | @ Thalon, echt gut, danke!!
habe es ein bisserl umgebaut
ich prüfe zuerst ob 2 User das Prog in gebrauch haben
wenn ja - gibts die Meldung "Abteilung - Tel."
wenn nicht - eintrag in die ini
und start des geprüften Progs | Da ich nicht wusste wie das Programm angewendet werden soll habe ich eine aktive Überprüfung eingebaut ob das Programm läuft bzw gestartet wurde.
Wenn es über das Skript aufgerufen wird ists natürlich noch besser.
Ein Icon kannst hinzufügen indem du es mittels AHK2Exe.exe (einfach im Dialog "Ausführen..." (Win+R)) kompilierst, alternativ gibts einen von Ladiko gewarteten AHK-Compiler, der wesentlich umfangreichere Möglichkeiten bietet.
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
MOD147
Anmeldedatum: 01.02.2008 Beiträge: 31 Wohnort: Ungarn
|
Verfasst am: Mi Mai 14, 2008 12:15 pm Titel: |
|
|
nun passt es, danke nochmal.  _________________ mfg Zoltán
_______________________________
Wer Fehler findet kann sie behalten!! |
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|