Français
Forum

Ping-Tool sur CMD

 
- page 1 -



Penguin
Tux
Salut,

je voudrais mich ersteinmal présenter. mon nom ist Tony, je suis 15 Jahre vieux et besuche une Realschule dans Chemnitz. là je maintenant Sommerferien habe et je rien plus trop 1faire habe, habe je mir vorgenommen un kleines Netzwerkanalysetool trop écrivons. sur qui cherche pour einer einfachen Programmiersprache suis je sur XProfan gestoßen.

j'ai alles nötige gedownloaded et installiert, anschließen habe je pour einem Pingcode gesucht et habe cette:
declare pingstring$,ping$,ping%
********************************************************************

Proc Ping

    Paramètres nic$,pingdatei1$,pingdatei2$
    let pingstring$="PING.EXE",nic$,">",pingdatei1$
    Assign #6,pingdatei2$
    Rewrite #6
    Imprimer #6,pingstring$
    Fermer #6
    WinExecwait(pingdatei2$,0)
    Assign #5,pingdatei2$
    Effacer #5
    ASSIGN #3,pingdatei1$
    RESET #3
    Ping%=0

    WHILENOT EOF(#3)

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

    WEND

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

ENDPROC

********************************************************************
Beschreibung:
Es gibt zwar déjà une schnelle et belle Onlineabfrage über API,
mais malheureusement gibt qui Funktion seulement 1 pour Online zurück, si
on über un Standart DFÜ eingewählt est.
cet Procédure ist arrêt seulement quelque chose langsamer mais on peux sogar DSL
(alors - aucun DFÜ-liaison) ou bien cela vieille T-Online u.s.w abfragen!!
alles avec einem Stern umrandete ist important pour qui Abfrage
Rolf Koch - Rokosoftware - Koblenz 2002
BEISPIEL
WINDOWSTYLE 31
Fenêtre 200,200-300,80
Windowtitle "Onlinstatus-Prüfung sans Api"
Couleur du texte RGB(0,0,255),-1
UseFont "TIMES NEW ROMAN",20,10,0,0,0
DRAWTEXT 40,10,"..moment ermittele!"
ICI JETZT DER AUFRUF DER PROZEDUR:********************
PING ADRESSE,ERGEBNISDATEI,BATCHDATEI
paramètre
1.) Webadresse - une toujours vorhandene comment www.nic.de
2.) Dateiname, dans quelle Pingergebnis geschrieben wird - wird wieder gelöscht!
3.) Dateiname, um Ping korrekt aufzurufen. - wird wieder gelöscht!
********************************************************
Couleur du texte RGB(255,255,255),RGB(255,255,255)
DRAWTEXT 40,10,"                                "
UseFont "TIMES NEW ROMAN",25,20,1,0,0
Couleur du texte RGB(0,0,255),-1
Ping "192.168.0.7","PINGTEST.TXT","PING.BAT"

si equ(ping%,1)

    DRAWTEXT 25,10,"Erreichbar"

d'autre

    DRAWTEXT 25,10,"Nicht erreichbar"

endif

waitinput

Diesen Code habe je mir pour meinen Bedürfnissen zurechtgeschnitten et il voit comment folgt aus. en supplément devrait je qui de mir ausgedachte Funktionsweise expliquer.

c'est geplant, dass je un Tool schreibe, welches possible simple une erste Aider pour Schüler et l'instituteur bietet. Bemerkt un User cela il keinen Internetzugang hat, führt il Tool aus, welches qui Reihe pour seulement den Server anpingt, ensuite une anderen Client im Netzwerk et ensuite encore une calculateur de außerhalb (z.B. Google). si es chez einer qui Schritte aucun Rückmeldung gibt, soll une annonce avec Tips zur Behebung sur dem Bildschrim erscheinen.

eh bien zum Code:
declare pingstring$,ping$,ping%

Proc Ping

    Paramètres nic$,pingdatei1$,pingdatei2$
    let pingstring$="PING.EXE",nic$,">",pingdatei1$
    Assign #6,pingdatei2$
    Rewrite #6
    Imprimer #6,pingstring$
    Fermer #6
    WinExecwait(pingdatei2$,0)
    Assign #5,pingdatei2$
    Effacer #5
    ASSIGN #3,pingdatei1$
    RESET #3
    Ping%=0

    WHILENOT EOF(#3)

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

    WEND

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

ENDPROC

WINDOWSTYLE 31
Fenêtre 200,200-500,80
Windowtitle "Onlinstatus-Prüfung sans Api"
Couleur du texte RGB(0,0,255),-1
UseFont "TIMES NEW ROMAN",20,10,0,0,0
DRAWTEXT 40,10,"..moment ermittele!"
Couleur du texte 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"

si equ(ping%,1)

    Couleur du texte RGB(0,255,0),-1
    DRAWTEXT 25,10,"Server Erreichbar"

d'autre

    Couleur du texte RGB(255,0,0),-1
    DRAWTEXT 25,10,"Server pas erreichbar"

endif

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

si equ(ping%,1)

    Couleur du texte RGB(0,255,0),-1
    DRAWTEXT 25,10,"Client Erreichbar"

d'autre

    Couleur du texte RGB(255,0,0),-1
    DRAWTEXT 25,10,"Client pas erreichbar"

endif

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

si equ(ping%,1)

    Couleur du texte RGB(0,255,0),-1
    DRAWTEXT 25,10,"Google Erreichbar"

d'autre

    Couleur du texte RGB(255,0,0),-1
    DRAWTEXT 25,10,"Google pas erreichbar"

endif

waitinput

un Problem, welches sich zur Zeit auftut, ist qui Tatsache cela qui Fensterinhalt pas gelöcht wird. cela est cela "Server Erreichbar", "Client Erreichbar" et "Google Erreichbar" übereinander geschrieben volonté, alors brauche je une Possibilité den le contenu des Fensters pour chaque Schritt trop effacer. Dabei suis sur

gestoßen. Nutze je cet Possibilité avant bzw. pour "Server Erreichbar" wird "Server Erreichbar" gar pas angezeigt.

Pour une kleine Hilfestellung wäre je très reconnaissant.

merci
Tony
 


OS: Win XP/Debian
XProfan 10
20.07.2008  
 



 
- page 6 -



Penguin
Tux

KompilierenMarqueSéparation
Benutze je oui pas plus, mais si müsst es doch
KompilierenMarqueSéparation
appeler?
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 




Rolf
Koch
Tony? quoi oui c'est ca veux Du anéantir?
oui c'est ca den Dialog!
si Du sagst:
DLG&=Create("Dialogue".... , ensuite speichert Windows cela Handle dans DLG&
ca ist une eindeutige numéro comment 127222 ou bien so, quelle de Windows vergeben wird.
quoi soll alors chez Dir détruit volonté? 1 ou bien 0?
non! Es soll qui Dialog détruit volonté. Bedeutet:
comment je dessus déjà geschrieben habe: DESTROYWINDOW(DLG&)
Genauso verhält es sich avec SHOWWINDOW
SHOWWINDOW(BUTTON1&,0) versteckt un objet
SHOWWINDOW(BUTTON1&,1) bringt es wieder zum Vorschein.
mais si Du DLG& per Destroywindow wieder détruit la hâte, ensuite peux Du es naturellement pas plus avec SHOWWINDOW Montrer, là es cela Handle pas plus gibt. bon alors wieder récente erstellen et daran penser dans Deinem le cas wieder
DIALOGENDE%=0 trop mettons, avec cela qui Boucle pas wieder direct finissez wird.
tu peux mais anstatt DESTROYWINDOW wirklich
SHOWWINDOW(DLG&,0) pour dem Dialogerstellen mettons um es trop verstecken et si Klick sur Hilfebutton cela Hilfefenster per SHOWWINDOW(DLG&,1) wieder Montrer. Pour Klick sur HILFE SCHLIESSEN simple wieder SHOWWINDOW(DLG&,0) et déjà wird es wieder versteckt.

P.S.: iF hat droite, lese Dir s'il te plaît oui c'est ca jeden phrase dans qui Aider par, car Du besoin ne...aucune DEF....
Ausschnitt Aider trop SHOWWINDOW:


N1 : LongInt - la fenêtre-Handle

N2 : Integer - Abbildungsmodus (1 .. 9)

cela la fenêtre avec dem Handle N1 wird im Modus N2 angezeigt. cela Ergebnis ist 1 si cela la fenêtre auparavant sichtbar était ou bien 0, si es auparavant versteckt (unsichtbar) était.


au-dessous stehender Text ist seulement zur Erklärung qui passenden API, quelle Du dans Deiner Profanversion pas besoin.
 
21.07.2008  
 




Penguin
Tux
je viens justement vraie pas hinterher

alors, mon Code pour cela Programme selbst sieht maintenant so aus:
KompilierenMarqueSéparation
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,180
Windowtitle "PiRePro by penguin"
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

Hier Code für Fehlermeldung/Tipbox
Ping "192.168.0.1","PINGTEST.TXT","PING.BAT"

if equ(ping%,1)

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

else

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

endif

Hier Code für Fehlermeldung/Tipbox
Ping "www.google.y","PINGTEST.TXT","PING.BAT"

if equ(ping%,1)

    TextColor RGB(0,255,0),-1
    DRAWTEXT 25,70,"Extern Erreichbar"

else

    TextColor RGB(255,0,0),-1
    DRAWTEXT 25,70,"Extern Nicht erreichbar"

endif

Hier Code für Fehlermeldung/Tipbox
Hier Code für Meldung des Erfolgs
TextColor RGB(0,0,0),-1
UseFont "CANDARA",15,10,1,0,0
DRAWTEXT 25,120,"Zum Beenden drücken Sie bitte eine beliebige Taste&quo
à> waitinput

...et qui pour cela la fenêtre:
KompilierenMarqueSéparation
>>>>> AB ICI KOPIEREN UND IN EIGENEN CODE EINBINDEN <<<<<<<<<<<<
DEF GETSYSCOLOR(1) !"User32","GetSysColor"
SET("TRUECOLOR",1)
 $I C:DOKUMENTE UND EINSTELLUNGENTONYDESKTOPROCLIBUSER.INC (Pour WIN32 OBJEKTE)

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

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

    PROC BUTTON1_ONCLICK

        GETMESSAGE
        DIALOGENDE%=1

    ENDPROC

    DLG&=CREATE("Dialogue",%HWND,"Neues Fenster",236,32,640,500)
    USEFONT "MS Sans Serif",13,0,0,0,0
    SETDIALOGFONT 1
    TEXT1& =@CREATE("TEXT",DLG&,"...Hilfetext...",0204,0101,0070,0020)

    PROC DLG_REFRESH

        SET("AUTOPAINT",1)
        STARTPAINT DLG&
        DRAWFRAME 0130,0080,0200,0120,2,15
        ENDPAINT

    ENDPROC

    BUTTON1& =@CREATE("BUTTON",DLG&,"OK",0200,0133,0070,0030)
    SETFOCUS(DLG&)
    DLG_REFRESH
    DIALOGENDE%=0

    WHILENOT DIALOGENDE%

        WAITINPUT

        Si %KEY=2

            DIALOGENDE%= 1

        ELSEIF %WMPAINT

            DLG_REFRESH

        ELSEIF GETFOCUS(BUTTON1&) BUTTON

            BUTTON1_ONCLICK

        ENDIF

    ENDWHILE

    DESTROYWINDOW(DLG&)
    ENDPROC --------------------------------------------------------------------------------> Dialogende
    SET("AUTOPAINT",2)
    >>>>> ICI KOPIERENDE D' EIGENEN CODEEINBAU <<<<<<<<<<<<<<<<<<<<

alors muss je weder 1 encore 0 anéantir.
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 



Du musst zumindest avant dem Programmende alle Controls anéantir, quelle Du aussi erstellt la hâte. cela verlangt pas z.B. Windows XP, mais cela gute Programme!

erstellst du alors une

a%=createText(...

musst Du es avant dem Programmende aussi wieder

destroyWindow(a%)

anéantir.

j'ai maintenant pas nachgesehen si Du Controls verwendest!

seulement cela %hWnd musst/devrait Du pas anéantir, cela hat ici et là ne Sonderbehandlung.

Nachtrag: Du erstellst mindestens un text un dlg et un button, au plus tard avant Programmende devrait cet erzeugten Controls aussi wieder sur son Handle per destroyWindow entfernt volonté.
 
21.07.2008  
 




Jörg
Sellmeyer

erstellst du alors une

a%=createText(...

musst Du es avant dem Programmende aussi wieder


cela halte je mais pour un Gerücht! si cela Elternfenster détruit wird reicht cela völlig. seulement si on un Contrôle avec qui gleichen Varablenbezeichnung récente erstellen veux doit on es auparavant anéantir, là sonst qui Zugriff puis pas plus possible ist. quoique selbst ensuite beim Programmende qui décomposition de Windows übernommen wird.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.07.2008  
 




Penguin
Tux
Sry gens, mais könntet son la fois wieder Klartext, je komm là entier simple encore nciht so vite avec. Mir serait es recihen si je sais, comment je cela la fenêtre erscheinen lasse et par cela klicken de ok wieder verschwinden lasse.
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 




Jörg
Sellmeyer
allô Pingu,
peut-être hilft Dir que voici oui erstmal plus:
KompilierenMarqueSéparation
Declare btn1&,dlg&,ende%

Proc Dialog

    Declare btnDlg&,dlgende%
    dlg& = CreateDialog(%hwnd,"Fenster",40,40,300,400)
    btnDlg& = CreateButton(dlg&,"verschwinden",10,10,120,30)

    WhileNot dlgende%

        WaitInput

        If GetFocus(btnDlg&)

            dlgende% = 1
            DestroyWindow(dlg&)

        EndIf

    Wend

EndProc

WindowTitle "Buttontest"
Window 10,10,500,400
btn1& = CreateButton(%hwnd,"zeigen",10,10,60,30)

WhileNot ende%

    WaitInput

    If GetFocus(btn1&)

        Dialog

    EndIf

Wend

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.07.2008  
 




Penguin
Tux

KompilierenMarqueSéparation
Declare btn1&,dlg&,ende%
WindowTitle "Hilfe"
Window 10,10,500,400
btnDlg& = CreateButton(dlg&,"OK",10,10,120,30)

WhileNot dlgende%

    WaitInput

    If GetFocus(btnDlg&)

        dlgende% = 1
        DestroyWindow(dlg&)

    EndIf

Wend


qui speckert maintenant chez la ligne 5 rum. j'ai mir den geposteten COde simple la fois angeguckt et suis seulement so large gekommen.

Éditer: j'ai maintenant un "Proc Dialog" à den Anfang gesetzt et un "EndProc" à l' Ende, qui Fehlermeldung ist maintenant zwar weg, cela la fenêtre pour aussi.
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 




Rolf
Koch
tu as ende% declariert, mais utilise unten dlgende% tout autor meckert il. alors
declare dlgende% anstatt ende% - ah et encore viel plus Variablen quelle garnicht
benutzt volonté et so plus. exposition et vergleiche:
KompilierenMarqueSéparation
Declare btndlg&,dlgende%
WindowTitle "Hilfe"
Window 10,10,500,400
btnDlg& = CreateButton(%hwnd,"OK",10,10,120,30) Hier HWND wo ist denn DLG&

WhileNot dlgende%

    WaitInput

    If GetFocus(btnDlg&)

        dlgende% = 1
        DestroyWindow(dlg&) wo ist denn ein Hanlde mit DLG&?

    EndIf

Wend

 
21.07.2008  
 




Penguin
Tux
Ok, j'ai maintenant aus "ende%" "dlgende%" femacht, mais qui faute dans qui la ligne ist toujours pas behoben.

il sagt "Variable pas declariert: BTNDLG&"

intéressant... fais je aus
KompilierenMarqueSéparation
Declare btn1&,dlg&,dlgende%
>

KompilierenMarqueSéparation
Declare btndlg&,dlg&,dlgende%
>

äffnet sich mon la fenêtre, mais sans Button.
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 




Rolf
Koch
Hab mon obiges Posting erweitert là siehste es. vois Du irgendwo DECLARE BTNDLG& dans Deinem Code? Deswegen wird gemeckert.
 
21.07.2008  
 




Penguin
Tux
merci, maintenant Funktioniert es. je hatte oui garnicht so viel faux, si on bedenkt le moi cela seulement depuis gestern faire. Logisches penser hilft plan doch.

wohin wir justement dabei sommes. comment schlage je mich eigentlich? je frage zwar viel, mais en supplément depuis son oui là
 


OS: Win XP/Debian
XProfan 10
21.07.2008  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

24.069 Views

Untitledvor 0 min.
Georg Teles01.08.2023
Thomas Freier06.10.2022
Langer30.01.2021
Walter29.01.2019
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie