Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

remote process erkennen im lan

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MOD147



Anmeldedatum: 01.02.2008
Beiträge: 31
Wohnort: Ungarn

BeitragVerfasst am: Di Mai 13, 2008 10:13 am    Titel: remote process erkennen im lan Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1878
Wohnort: Österreich

BeitragVerfasst am: Di Mai 13, 2008 10:23 am    Titel: Antworten mit Zitat

Als Basis könntest du die LAN-Chats nehmen (die einzelnen Codes nicht auf Tauglichkeit überprüft):
http://www.autohotkey.com/forum/topic13829.html&highlight=lan+chat
http://www.autohotkey.com/forum/topic27328.html&highlight=lan+chat
http://www.autohotkey.com/forum/topic26556.html&highlight=lan+chat

Grundsätzlich besitzt du dadurch bereits 2 miteinander kommunizierende Skripts und musst nur die Prozessabfrage hinzufügen und die Daten übermitteln. Die Grundstruktur ist aber schon verfügbar und dürfte nach kurzem Einlesen in die Funktionsweisen nur eine Fingerübung sein.

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo¨
Gast





BeitragVerfasst am: Di Mai 13, 2008 10:28 am    Titel: Antworten mit Zitat

Einen Prozess remote abzuschiessen (User mit laufendem Programm aber gelocktem Rechner (Blond mit Stränchen Laughing) 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 Shocked (auf! Wink )
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

BeitragVerfasst am: Di Mai 13, 2008 11:05 am    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
IsNull(n-l-i)
Gast





BeitragVerfasst am: Di Mai 13, 2008 1:08 pm    Titel: Antworten mit Zitat

Nach oben
IsNull(n-l-i)
Gast





BeitragVerfasst am: Di Mai 13, 2008 1:14 pm    Titel: Antworten mit Zitat

http://dl.securityvision.ch/ahk/scvs_AREX.zip.. diesmal mit funktionierendem Link... und nem Screenshot:

Nach oben
MOD147



Anmeldedatum: 01.02.2008
Beiträge: 31
Wohnort: Ungarn

BeitragVerfasst am: Di Mai 13, 2008 1:25 pm    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1878
Wohnort: Österreich

BeitragVerfasst am: Di Mai 13, 2008 1:34 pm    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD147



Anmeldedatum: 01.02.2008
Beiträge: 31
Wohnort: Ungarn

BeitragVerfasst am: Di Mai 13, 2008 2:53 pm    Titel: Antworten mit Zitat

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
Crying or Very sad 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
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1878
Wohnort: Österreich

BeitragVerfasst am: Di Mai 13, 2008 3:33 pm    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD147



Anmeldedatum: 01.02.2008
Beiträge: 31
Wohnort: Ungarn

BeitragVerfasst am: Mi Mai 14, 2008 8:28 am    Titel: Antworten mit Zitat

@ 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
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1878
Wohnort: Österreich

BeitragVerfasst am: Mi Mai 14, 2008 8:45 am    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MOD147



Anmeldedatum: 01.02.2008
Beiträge: 31
Wohnort: Ungarn

BeitragVerfasst am: Mi Mai 14, 2008 12:15 pm    Titel: Antworten mit Zitat

nun passt es, danke nochmal. Very Happy
_________________
mfg Zoltán
_______________________________

Wer Fehler findet kann sie behalten!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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