Italia
Foro

Ping-Tool circa CMD

 
- Page 1 -



Penguin
Tux
Ciao,

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 per 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 per 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 possibile einfach eine erste Aiuto per 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 è 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  
 



 
- Page 5 -


Penguin Tux
Das ENDPROC fehlt in einer File, 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 File:

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 naturalmente 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
                SETDIALOGFONTan class=s2>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 per die Katz.
 
21.07.2008  
 




Rolf
Koch
Also ich hab jetzt mit Roc sogar circa 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


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 File 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 Aiuto einmal richtig lesen! DestroyWindow(0) kann nicht funktionieren - schau richtig nach!
 
21.07.2008  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

24.346 Views

Untitledvor 0 min.
Georg Teles01.08.2023
Thomas Freier06.10.2022
Langer30.01.2021
Walter29.01.2019
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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