Deutsch
Forum

Ping-Tool über CMD

 
- Seite 1 -



Penguin
Tux
Hallo,

ich möchte mich ersteinmal vorstellen. Mein Name ist Tony, ich bin 15 Jahre alt und besuche eine Realschule in Chemnitz. Da ich jetzt Sommerferien habe und ich nichts weiter zu tun habe, habe ich mir vorgenommen ein kleines Netzwerkanalysetool zu schreiben. Auf der suche nach einer einfachen Programmiersprache bin ich auf XProfan gestoßen.

Ich habe alles nötige gedownloaded und installiert, anschließen habe ich nach einem Pingcode gesucht und habe diesen:
declare pingstring$,ping$,ping%
********************************************************************

Proc Ping

    Parameters nic$,pingdatei1$,pingdatei2$
    let pingstring$="PING.EXE",nic$,">",pingdatei1$
    Assign #6,pingdatei2$
    Rewrite #6
    Print #6,pingstring$
    Close #6
    WinExecwait(pingdatei2$,0)
    Assign #5,pingdatei2$
    Erase #5
    ASSIGN #3,pingdatei1$
    RESET #3
    Ping%=0

    WHILENOT EOF(#3)

        input #3,ping$
        ping$=mid$(ping$,1,11)
        case equ$(ping$,"Antwort von"):Ping%=1

    WEND

    CLOSE #3
    Assign #1,pingdatei1$
    Erase #1

EndProc

********************************************************************
Beschreibung:
Es gibt zwar schon eine schnelle und schöne Onlineabfrage über API,
aber leider gibt die Funktion nur 1 für Online zurück, wenn
man über ein Standart DFÜ eingewählt ist.
Diese Prozedur ist halt nur etwas langsamer aber man kann sogar DSL
(also - keine DFÜ-Verbindung) oder das alte T-Online u.s.w abfragen!!
alles mit einem Stern umrandete ist wichtig für die Abfrage
Rolf Koch - Rokosoftware - Koblenz 2002
BEISPIEL
WINDOWSTYLE 31
Window 200,200-300,80
Windowtitle "Onlinstatus-Prüfung ohne Api"
TextColor RGB(0,0,255),-1
UseFont "TIMES NEW ROMAN",20,10,0,0,0
DRAWTEXT 40,10,"..moment ermittele!"
HIER JETZT DER AUFRUF DER PROZEDUR:********************
PING ADRESSE,ERGEBNISDATEI,BATCHDATEI
Parameter
1.) Webadresse - eine immer vorhandene wie www.nic.de
2.) Dateiname, in welche Pingergebnis geschrieben wird - wird wieder gelöscht!
3.) Dateiname, um Ping korrekt aufzurufen. - wird wieder gelöscht!
********************************************************
TextColor RGB(255,255,255),RGB(255,255,255)
DRAWTEXT 40,10,"                                "
UseFont "TIMES NEW ROMAN",25,20,1,0,0
TextColor RGB(0,0,255),-1
Ping "192.168.0.7","PINGTEST.TXT","PING.BAT"

if equ(ping%,1)

    DRAWTEXT 25,10,"Erreichbar"

else

    DRAWTEXT 25,10,"Nicht erreichbar"

endif

waitinput

Diesen Code habe ich mir nach meinen Bedürfnissen zurechtgeschnitten und er sieht wie folgt aus. Dazu müsste ich die von mir ausgedachte Funktionsweise erklären.

Es ist geplant, dass ich ein Tool schreibe, welches möglichst einfach eine erste Hilfe für Schüler und Lehrer bietet. Bemerkt ein User das er keinen Internetzugang hat, führt er das Tool aus, welches der Reihe nach erst den Server anpingt, dann einen anderen Client im Netzwerk und dann noch einen Rechner von außerhalb (z.B. Google). Wenn es bei einer der Schritte keine Rückmeldung gibt, soll eine Meldung mit Tips zur Behebung auf dem Bildschrim erscheinen.

Nun zum Code:
declare pingstring$,ping$,ping%

Proc Ping

    Parameters nic$,pingdatei1$,pingdatei2$
    let pingstring$="PING.EXE",nic$,">",pingdatei1$
    Assign #6,pingdatei2$
    Rewrite #6
    Print #6,pingstring$
    Close #6
    WinExecwait(pingdatei2$,0)
    Assign #5,pingdatei2$
    Erase #5
    ASSIGN #3,pingdatei1$
    RESET #3
    Ping%=0

    WHILENOT EOF(#3)

        input #3,ping$
        ping$=mid$(ping$,1,11)
        case equ$(ping$,"Antwort von"):Ping%=1

    WEND

    CLOSE #3
    Assign #1,pingdatei1$
    Erase #1

EndProc

WINDOWSTYLE 31
Window 200,200-500,80
Windowtitle "Onlinstatus-Prüfung ohne Api"
TextColor RGB(0,0,255),-1
UseFont "TIMES NEW ROMAN",20,10,0,0,0
DRAWTEXT 40,10,"..moment ermittele!"
TextColor RGB(255,255,255),RGB(255,255,255)
DRAWTEXT 40,10,"                                "
UseFont "CANDARA",25,20,1,0,0
Ping "127.0.0.1","PINGTEST.TXT","PING.BAT"

if equ(ping%,1)

    TextColor RGB(0,255,0),-1
    DRAWTEXT 25,10,"Server Erreichbar"

else

    TextColor RGB(255,0,0),-1
    DRAWTEXT 25,10,"Server Nicht erreichbar"

endif

Ping "192.168.0.1","PINGTEST.TXT","PING.BAT"

if equ(ping%,1)

    TextColor RGB(0,255,0),-1
    DRAWTEXT 25,10,"Client Erreichbar"

else

    TextColor RGB(255,0,0),-1
    DRAWTEXT 25,10,"Client Nicht erreichbar"

endif

Ping "www.google.de","PINGTEST.TXT","PING.BAT"

if equ(ping%,1)

    TextColor RGB(0,255,0),-1
    DRAWTEXT 25,10,"Google Erreichbar"

else

    TextColor RGB(255,0,0),-1
    DRAWTEXT 25,10,"Google Nicht erreichbar"

endif

waitinput

Ein Problem, welches sich zur Zeit auftut, ist die Tatsache das der Fensterinhalt nicht gelöcht wird. Das heißt das "Server Erreichbar", "Client Erreichbar" und "Google Erreichbar" übereinander geschrieben werden, also brauche ich eine Möglichkeit den Inhalt des Fensters nach jedem Schritt zu löschen. Dabei bin auf

gestoßen. Nutze ich diese Möglichkeit vor bzw. nach "Server Erreichbar" wird "Server Erreichbar" gar nicht angezeigt.

Für eine kleine Hilfestellung wäre ich sehr dankbar.

Danke
Tony
 


OS: Win XP/Debian
XProfan 10
20.07.2008  
 



 
- Seite 5 -


Penguin Tux
Das ENDPROC fehlt in einer Datei, die im Ordner von ROC liegt. Und an der habe ich nichts gemacht. Also muss an etwas anderem liegen.


Das scheint Dir vlt. nur so, zeig mal den Code... (Codes kann man auch einfach nach  [...]  hochladen - dann brauch man hier in den Beiträgen lediglich die URL zum Code hinterlassen. )
 
21.07.2008  
 




Penguin
Tux
Welchen Code?

Das ist der aus der besagten Datei:

Moment...  [...] 
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 




Jörg
Sellmeyer
Hm, Du hast nichts am Code geändert, oder im ROC-Ereigniseditor eingegeben?
Dann muß Rolf wohl mal ran. Das hier kann natürlich nicht funktionieren:
KompilierenMarkierenSeparieren
PROC DIALOG  ---------------------------------------------------------------------------> Dialoganfang

    DECLARE DLG&, DIALOGENDE%
    DECLARE TEXT1&
    DECLARE BUTTON1&

    PROC DIALOG  ---------------------------------------------------------------------------> Dialoganfang

        DECLARE DLG&, DIALOGENDE%
        DECLARE TEXT1&
        DECLARE BUTTON1&

        PROC DIALOG  ---------------------------------------------------------------------------> Dialoganfang

            DECLARE DLG&, DIALOGENDE%
            DECLARE TEXT1&
            DECLARE BUTTON1&

            PROC DIALOG  ---------------------------------------------------------------------------> Dialoganfang

                DECLARE DLG&, DIALOGENDE%
                DECLARE TEXT1&
                DECLARE BUTTON1&
                DLG&=CREATE("DIALOG",%HWND,"Neues Fenster",51,135,640,500)
                USEFONT "MS Sans Serif",13,0,0,0,0
                SETDIALOGFONT 1

Nochmal ne Frage:
Was erwartest Du Dir von dieser Prozedur?
KompilierenMarkierenSeparieren
Da wird nämlich genau nix passieren.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.07.2008  
 




Rolf
Koch
*lol*
Nee so wie oben die Dialogproc aussieht, hab ich das aber nicht programmiert. Wenn es doch so ausgespuckt würde, wurde mir jahrelang keine Rückinfo gegeben und ich progge ROC doch nur für die Katz.
 
21.07.2008  
 




Rolf
Koch
Also ich hab jetzt mit Roc sogar über den Actionwriter (Ereigniseditor) und ohne mal einen oben ähnlichen Dialog erstellt und bei mir kommt nicht solch ein Errorcode heraus.
 
21.07.2008  
 




Dieter
Zornow
@Rolf
Das hatte ich auch schon, das passiert meistens wenn du viele Elemente wieder löschst, dann kann so ein Code rauskommen. Probiere auch mal eine Choicebox zu verschieben, dann ist sie weg.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
21.07.2008  
 




Rolf
Koch
Aha, ist richtig schön, dass man sowas mal gesagt bekommt.
Nachtrag: Ich erstelle erstelle erstelle zerstöre zerstöre zerstöre und alles bleibt bei mir korrekt. Shit.
Auch die Choicebox schieben und schieben und alles bleibt im grünen Bereich.
 
21.07.2008  
 




Penguin
Tux
Jörg Sellmeyer
Nochmal ne Frage:
Was erwartest Du Dir von dieser Prozedur?
KompilierenMarkierenSeparieren
Da wird nämlich genau nix passieren.


Durch das drücken von OK soll das Hilfefenster wieder geschlossen werden,. aber wenn das so nicht funktioniert, wie dann?

Ich habe den ROC-Ordner jetzt einfach mal gelöscht und ihn nocheinmal aus der ZIP herausgeholt, die Datei ist nun weg - mal sehen ob es jetzt was wird.

Edit: Ich kann mein Fenster nun Testen, danke. Jetzt muss ich nur noch herausfinden wie man das Fenster durch klicken von "OK" wieder schließen kann.
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 



destroyWindow 
 
21.07.2008  
 




Rolf
Koch
oder direkt zum Dialog passend:
KompilierenMarkierenSeparieren
Da der Dialog geschlossen werden soll, benötigst Du hier kein Waitinput und Co.
Wie Du an der Schleife siehst
KompilierenMarkierenSeparieren
Whilenot dialogende%


Solange Variable dialogende% auf 0 steht wird diese Schleife durchlaufen. Setzt Du nun Dialogende% auf 1 ist die Bedingung zum Dialog beenden gebeben und die Schleife wird verlassen.

Ergänze folgendes am Schluss, da ich davon ausgehe, dass der Dialog als Hilfefenster auf dem Hauptfenster erstellt wurde:
KompilierenMarkierenSeparieren
WINDOWTITLE "DUMMY HAUPTFENSTER"
WINDOWSTYLE 63
WINDOW (%maxx-300),10-280,80
CLS RGB(0,0,0)
Color 10,0
PRINT "Bitte aufs Systemmenükreuz klicken "
DIALOG Dialog aufrufen!
FOLGENDES EINFÜGEN REICHT
DESTROYWINDOW(DLG&)
 
21.07.2008  
 




Penguin
Tux

KompilierenMarkierenSeparieren
so geht es nicht:
KompilierenMarkierenSeparieren
Ah, danke Rolf, jetzt funktioniert es.

Edit: Mit "Def @Show(1) @ShowWindow(@&(1), 1)" ,üsste ich es doch hinbekommen, das mein Fenster angezeigt wird, es passiert aber wieder nichts.
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 



@Tony: Du musst aber auch die Hilfe einmal richtig lesen! DestroyWindow(0) kann nicht funktionieren - schau richtig nach!
 
21.07.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

23.694 Betrachtungen

Unbenanntvor 0 min.
Georg Teles01.08.2023
Thomas Freier06.10.2022
Langer30.01.2021
Walter29.01.2019
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie