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 3 -



Penguin
Tux

@tony
hm,
ne ich glaub hinter dem waitinput wäre das besser aufgehoben.
dann wird nämlich erst dein bildschirm mit den ergebnissen angezeigt.
und wenn man dann eine taste drückt erscheint der infotext.

als anregung für dein programm:
- die schrift im ergebnisfenster ist ziemlich langgezogen.kann man vielleicht ändern.
- super wäre es auch noch wenn die schrift rot wäre wenn die IP nicht erreichbar ist.


Gut dann werd ich das mal so machen und gucken was passiert.

Um die Schrift werde ich mich kümmern.
Nicht antwortende IP´s werden schon rot gekennzeichnet, mach mal aus www.google.de www.google.xy
 


OS: Win XP/Debian
XProfan 10
20.07.2008  
 




Rolf
Koch
hier noch ein Vorschlag einfach nur so
KompilierenMarkierenSeparieren
 $P+
SET("ERRORLEVEL",0)
********************** HINWEISE ********************************
CODE ERZEUGT MIT ROKOS OBJECT CREATOR 4.6a
DATUM  20.07.2008    um  18:56 Uhr
VERWENDETE PROFANVERSION IST 11.0ß S16-NT XPROFAN
CODE ERSTELLT UNTER WINDOWS VISTA
!!! Dieser Code wird von Roc immer neu erzeugt        !!!
!!! Erst bearbeiten, wenn alle Objekte erzeugt wurden !!!
!!! Verändern Sie ggf. feste Pfade in variable Pfade  !!!
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 ping$="Antwort von":Ping%=1

    WEND

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

EndProc

DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE TEXT1&
DECLARE TEXT2&
DECLARE TEXT3&
DECLARE TEXT4&
DECLARE TEXT5&
DECLARE EDIT1&
DECLARE EDIT2&
DECLARE EDIT3&
DECLARE EDIT4&
DECLARE EDIT5&
DECLARE EDIT6&
DECLARE BUTTON1&
DECLARE BUTTON2&
WINDOWSTYLE 63
WINDOWTITLE "Online Status"
WINDOW 167,154-302,267
SET("TRUECOLOR",1)
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Hier kann ggf. Ihr Menü hin
TEXT1& = CREATE("TEXT",%HWND,"Server",0017,0047,0070,0020)
TEXT2& = CREATE("TEXT",%HWND,"Client",0017,0077,0070,0020)
TEXT3& = CREATE("TEXT",%HWND,"Google",0017,0107,0070,0020)
TEXT4& = CREATE("TEXT",%HWND,"Prozess",0107,0017,0070,0020)
TEXT5& = CREATE("TEXT",%HWND,"Status",0197,0017,0070,0020)
EDIT1& = CREATE("EDIT",%HWND,"",0107,0047,0067,0020)
EDIT2& = CREATE("EDIT",%HWND,"",0107,0077,0067,0020)
EDIT3& = CREATE("EDIT",%HWND,"",0107,0107,0067,0020)
EDIT4& = CREATE("EDIT",%HWND,"",0197,0047,0067,0020)
EDIT5& = CREATE("EDIT",%HWND,"",0197,0077,0067,0020)
EDIT6& = CREATE("EDIT",%HWND,"",0197,0107,0067,0020)
BUTTON1& = CREATE("BUTTON",%HWND,"beenden",0017,0197,0265,0030)
BUTTON2& = CREATE("BUTTON",%HWND,"Status checken",0017,0157,0129,0030)
SETFOCUS(%HWND)
REPAINT

WHILENOT ENDE%

    WAITINPUT

    If %KEY=2

        ENDE%= 1

    ELSEIF %KEY=4

    ELSEIF GETFOCUS(BUTTON1&) BUTTON

        ende%=1

    ELSEIF GETFOCUS(BUTTON2&) BUTTON

        settext edit4&,""
        settext edit5&,""
        settext edit6&,""
        settext edit1&,"ermittele"
        settext edit2&,"wartend"
        settext edit3&,"wartend"
        Ping "127.0.0.1","PINGTEST.TXT","PING.BAT"

        if ping%=1

            settext edit4&,"erreicht"

        else

            settext edit4&,"fehler"

        endif

        settext edit1&,"fertig"
        settext edit2&,"ermittele"
        settext edit3&,"wartend"
        Ping "192.168.0.1","PINGTEST.TXT","PING.BAT"

        if ping%=1

            settext edit5&,"erreicht"

        else

            settext edit5&,"fehler"

        endif

        settext edit1&,"fertig"
        settext edit2&,"fertig"
        settext edit3&,"ermittele"
        Ping "https://www.google.de","PINGTEST.TXT","PING.BAT"

        if ping%=1

            settext edit6&,"erreicht"

        else

            settext edit6&,"fehler"

        endif

        settext edit3&,"fertig"

    ENDIF

ENDWHILE

 
20.07.2008  
 




Penguin
Tux
Da kannich ja auch gleich den Code nehmen, aber da ich es selber auf die Beine stellen will. Über ne Gui kann ich mir alle mal Gedanken machen.

Ich werd dann jetzt mal das probieren, was ich die ganze Zeit schon porbieren will.
 


OS: Win XP/Debian
XProfan 10
20.07.2008  
 




Rolf
Koch

Da kannich ja auch gleich den Code nehmen, aber da ich es selber auf die Beine stellen will. Über ne Gui kann ich mir alle mal Gedanken machen.

Ich werd dann jetzt mal das probieren, was ich die ganze Zeit schon porbieren will.


Vollkommen richtige Einstellung! Aber da hier Fragen von wegen createtext und Co auftauchen, hättet Ihr ne kleine Referenz
 
20.07.2008  
 




Penguin
Tux

KompilierenMarkierenSeparieren
Macht gar nichts, außer mir 2 Error-Meldungen geben. Es ist, denke ich, auch nicht was ich suche, es soll spezifisch für den fehlgeschlagenen Schritt angezeigt werden. Ich habe mit gerade überlegt, dass man nach dem fehlgeschlagenen Schritt eine Art Link zu einer Hilfedatei setzen könnte.

Ich such mal in der Hilfe nach ner Möglichkeit Links su setzen, aber ich hätte auch nichts dagegen, wenn hier schonmal jemand etwas dazu schreiben könnte.
 


OS: Win XP/Debian
XProfan 10
20.07.2008  
 



Syntaxfehler, Strinkonstanten sind mit " zu umschliessen.

print "Hallo Welt", nicht print hallo welt.
 
20.07.2008  
 




Rolf
Koch
Du hast schon wieder die Anführungszeichen vergessen.
KompilierenMarkierenSeparieren
print "Der Infotext"
print "Alles OK"
 
20.07.2008  
 




Stefan
Landsberg
@tony
sorry ich hab gar nicht gesehen dass du für nicht erreichbar schon rot als farbe gewählt hast.

@rolf
ich kann deinen quelltext (zum glück) nicht verwenden, weil ich profan 6.6 hab. ich wills auch lieber selbst zusammenbasteln. und wenn ich nen monat dafür brauche

die erste fehlermaeldung die mit beim ausführen angezeigt wird ist, dass der befehl SET nicht bekannt ist. soweit ich weiß heißt es bei profan 6.6 auch noch createtext und nicht einfach create. trotzdem danke für deine mühe.
 
20.07.2008  
 




Rolf
Koch
@Stefan
Sagte ich bereits, dass dies eine super Einstellung ist?
Wie gesagt nur zur Referenz.
Naja zum Glück aber nur auf den Bezug von Selbstmachen, oder? Denn was ist 6.6 denn schon gegen die aktuelle Version *lol*
 
20.07.2008  
 




Stefan
Landsberg
ja ich weiß das profan 6.6 gegenüber xprofan 11 viel weniger zu bieten hat. aber am anfang reichts noch locker aus. wenn ich dann erst ein bisschen besser programmieren kann hole ich mir vielleicht die neuste version.

noch ne kleine frage: hast du vielleicht von dem object creator noch ne alte version die mit profan 6.6 funktioniert oder muss ich halt ohne auskommen?
 
20.07.2008  
 




Dietmar
Horn
ROC funktioniert auch mit Profan² 6.6
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
20.07.2008  
 




Penguin
Tux
Gut das ihm der Fehler unterlaufen ist, da kann mir das nciht mehr passieren

Wie sieht das nun mit den Links aus? Ist das überhaupt möglich?
 


OS: Win XP/Debian
XProfan 10
20.07.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

24.048 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