Forum | | | | - 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 |
| | | | |
| | | | - page 8 - |
| | Stefan Landsberg | %hwnd brauchst du imho pas déclarer. chez mir allez jedenfalls aussi sans es auparavant trop déclarer. (trop spät. rolf était plus rapide)
j'ai chez meinem programm nochmal entier de vorn angefangen et habe jetz un paire fragen. vorweg erstmal qui aktuelle zustand meines programms: KompilierenMarqueSéparationDeclare-Teil:
declare ping%, btn%
Proc-Teil:
Proc Ping
declare pingdatei1$, pingdatei2$, pingstring$, ping$
Parameters ip$
let pingdatei1$="PINGTEST.TXT"
let pingdatei2$="PING.BAT"
let pingstring$="PING.EXE",ip$,">",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
Def-Teil:
DEF GetSysColor(1) !"User32","GetSysColor"
Fenster erstellen:
WindowStyle 63
WindowTitle "IP Checker"
Window @SUB(@DIV(%maxX,2),300),@SUB(@DIV(%maxY,2),250) - 600,500
SetTrueColor 1
CLS GetSysColor(15)
@CreateMultiEdit(%HWnd,"",10,50,570,-200)
btn%=@CreateButton(%HWnd,"Überprüfen",250,260,100,30)
WaitInput
dans qui EditBox soll qui User une liste de IPs bzw en Aliase par absätze (zur not aussi kommata ou bien semikola) getrennt eingeben.
mon but ist es pour chacun cette IPs une ping abfrage trop faire.
comment fais je cela am besten?
mon concept: den le contenu qui editbox avec @GETLINE$ dans un Bereichsvariable einlesen, et ensuite irgendwie chacun ip dans un string variable écrivons. wohin une neue ip anfäng erkennt on oui à den absätzen (mais comment sage je cela dem programm).
après simple avec chacun variable folgende abfrage faire:
ping variable$
si le concept bien et umsetzbar ist wäre es gentil si quelqu'un mir chez qui umsetzung aider serait. si le concept pas si bien ist, wäre une récente concept très hilfreich |
| | | | |
| | Penguin Tux | merci Rolf, cela Grundprinziep habe je lente gerafft - bien sûr jusqu'à je es wirklich peux dauert es encore une Weile.
je kümmere mich justement tout autor cela miene Hilfefenster aussi une Hilfetext bekommen, vorerst seulement avec "Print", dabei suis je sur cela Problem gestoßen, dass il mir zwar den Text ausgibt, mais pour den Button pas. |
| | | | |
| | Rolf Koch | comment devoir nous savons wohin es pas klappt? toujours un kurzes Beispiel anhängen. |
| | | | |
| | Penguin Tux | eh oui, je vergaß KompilierenMarqueSéparationDeclare btndlg&,dlgende%,dlg&
dlg&=Create("Window",%hwnd,"Hilfe",10,10,500,250)
btnDlg& = CreateButton(dlg&,"OK",175,150,120,30)
Print "Lorem ipsum dolor sit amet"
WhileNot dlgende%
WaitInput
If GetFocus(btnDlg&)
dlgende% = 1
EndIf
OS: Win XP/Debian XProfan 10 | 22.07.2008 ▲ | |
| |
| | Rolf Koch | Achso tu veux sur dlg& printen? Nee c'est pas possible, prends lieber ensuite wieder drawtext, car là kannste: KompilierenMarqueSéparation et lies s'il te plaît dans qui Profanhilfe ensuite sous startpaint /endpaint pour, car cela Problem pour createdialog ou bien createwindow ist, dass Du là toujours cela gedrawte neuzeichnen musst. Siehe pour %wmpaint dans qui HIlfe. je plediere pour lass qui imprimer et drawtext weg et lerne create("text".... einzusetzen. là kannste De toute façon joli per settext variable&,"neuer text" une aktualisierung des Inhalts faire. |
| | | | |
| | Penguin Tux | So, merci à alle qui mir geholfen avons - qui "Alpha-Version" meines Tools ist fertig. jusqu'à sur qui Fehlenden Hilfetexte et qui annonce des Erfolges, quelle pas plus cela Problem son pourrait, fehlt pas plus viel. peut-être erweitere je cela ganze encore um une GUI um beliebige IP´s à trop pingen, mais là attends je erstmal sur Stefans Tool .
ici qui (presque) fertige Code, qui naturellement immernoch qui Test-IP´s contient: KompilierenMarqueSéparationdeclare 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"
Declare btndlg&,dlgende%,dlg&
dlg&=Create("Window",%hwnd,"Hilfe",10,10,500,250)
Startpaint dlg&
UseFont "CANDARA",25,20,1,0,0
TextColor RGB(0,0,0),RGB(255,255,255)
Drawtext 1,1,"Lorem ipsum dolor sit amet"
Endpaint
btnDlg& = CreateButton(dlg&,"OK",175,150,120,30)
WhileNot dlgende%
WaitInput
If GetFocus(btnDlg&)
dlgende% = 1
EndIf
Endwhile
endif
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"
Declare btndlg&,dlgende%,dlg&
dlg&=Create("Window",%hwnd,"Hilfe",10,10,500,250)
Startpaint dlg&
UseFont "CANDARA",25,20,1,0,0
TextColor RGB(0,0,0),RGB(255,255,255)
Drawtext 1,1,"Lorem ipsum dolor sit amet"
Endpaint
btnDlg& = CreateButton(dlg&,"OK",175,150,120,30)
WhileNot dlgende%
WaitInput
If GetFocus(btnDlg&)
dlgende% = 1
EndIf
Endwhile
endif
Ping "www.google.dev","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"
Declare btndlg&,dlgende%,dlg&
dlg&=Create("Window",%hwnd,"Hilfe",10,10,500,250)
Startpaint dlg&
UseFont "CANDARA",25,20,1,0,0
TextColor RGB(0,0,0),RGB(255,255,255)
Drawtext 1,1,"Lorem ipsum dolor sit amet"
Endpaint
btnDlg& = CreateButton(dlg&,"OK",175,150,120,30)
WhileNot dlgende%
WaitInput
If GetFocus(btnDlg&)
dlgende% = 1
EndIf
Endwhile
endif
Hier Code für Meldung des Erfolgs
TextColor RGB(0,0,0),-1
UseFont "CANDARA",15,10,1,0,0
DRAWTEXT 25,120,&qu finissons drücken vous s'il te plaît une beliebige Taste"
waitinput
si es Verbesserungsvorschläge gibt - toujours her avec cela. et si es sonst encore Fragen ou bien ähnliches gibt - fragt.
alors nocheinmal un Dankeschön à alle qui sich à diesem Fil beteiligt avons. |
| | | | |
| | Rolf Koch | je veux oui pas , dass Du wieder umbaust, là on alles quelque chose verkürzen pourrait weil vieles identique ist comment d'autre Boucle avec Whilenot dlgende% - qui peux on comme Procédure umbauen (siehe unten)
si Du es so compliqué comment maintenant laisser veux, ensuite mach wenigstens derrière chaque dlgende%=1 un destroywindow(dlg&)
mais lieber so: KompilierenMarqueSéparationdeclare 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
Proc Errorhelp
Parameter 1: Der Text für Hauptfenster,Parameter 2: Text für Hilfenster
Parameters typtext$,helptext$
TextColor RGB(255,255,255),RGB(255,255,255) vorher löschen
DRAWTEXT 25,40," "
TextColor RGB(255,0,0),-1
DRAWTEXT 25,40,typtext$
Declare btndlg&,dlgende%,dlg&
dlg&=Create("Window",%hwnd,"Hilfe",10,10,500,250)
Startpaint dlg&
UseFont "CANDARA",25,20,1,0,0
TextColor RGB(0,0,0),RGB(255,255,255)
Drawtext 1,1,helptext$
Endpaint
btnDlg& = CreateButton(dlg&,"OK",175,150,120,30)
WhileNot dlgende%
WaitInput
If GetFocus(btnDlg&)
dlgende% = 1
EndIf
Endwhile
destroywindow(dlg&)
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
UseFont "CANDARA",25,20,1,0,0
Ping "127.0.0.1","PINGTEST.TXT","PING.BAT"
if ping%=1
TextColor RGB(255,255,255),RGB(255,255,255) vorher löschen
DRAWTEXT 25,40," "
TextColor RGB(0,255,0),-1
DRAWTEXT 25,10,"Server Erreichbar"
else
Errorhelp "Server nicht erreichbar!","Hilfetext Nummer 1"
endif
Ping "192.168.0.1","PINGTEST.TXT","PING.BAT"
if ping%=1
TextColor RGB(255,255,255),RGB(255,255,255) vorher löschen
DRAWTEXT 25,40," "
TextColor RGB(0,255,0),-1
DRAWTEXT 25,40,"Client Erreichbar"
else
Errorhelp "Client nicht erreichbar!","Hilfetext Nummer 2"
endif
Ping "www.google.dev","PINGTEST.TXT","PING.BAT"
if ping%=1
TextColor RGB(255,255,255),RGB(255,255,255) vorher löschen
DRAWTEXT 25,40," "
TextColor RGB(0,255,0),-1
DRAWTEXT 25,70,"Extern Erreichbar"
else
Errorhelp "Extern nicht erreichbar!","Hilfetext Nummer 3"
endif
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 une beliebige Taste"
waitinput
|
| | | | |
| | Penguin Tux | Mhmm.. je lasse es lieber so comme ist, weil je là einigermaßen verstehe quoi je gemacht habe.
juste encore une Frage hinterher.
il peut doch avec XProfan sicherlich aussi nen COM-Port ansprechen - ou bien? |
| | | | |
| | | cela hängt sous anderem de qui Hilfedatei ab qui on hierfür zunächst konsultiert...
exposition pour OpenCom. |
| | | | |
| | Penguin Tux | je hab la fois COM eingegeben et bekomme rien quoi mir chez diesem Problem aider pourrait. |
| | | | |
| | Rolf Koch | je sag Dir: prends cela Beispiel de mir et bau puis plus sur. car prozedural ist besser. Stell Dir avant tu veux 30 Adressen anpingen et écris toujours wieder même chose. ici appelles Du toujours seulement qui Procédure qui Du im wesentlichen oui kennst, car c'est oui cela quoi Du sauoft unten toujours wieder stehen la hâte dans qui d'autre Anweisung, sur et lernst richtig dabei programmieren. Glaub mir. c'est im Endeffekt Dein Code seulement Zeit, Nerven, Codesparend. |
| | | | |
| | Penguin Tux | si du cela sagst^^
je werd mir cela la fois alles angucken et mioch annoncer, si Je l' neuen Code habe.
je hab den Code maintenant simple erstmal Kopiert et gespeichert. je vais depuis trois Tagen um 3 ins Bett et suis hundemüde. je hab zwar déjà einiges aus deinem Code verstanden, mais um den maintenant la ligne pour la ligne durchzugucken fehlt qui Lust. |
| | | | |
|
répondreOptions du sujet | 24.230 Views |
Themeninformationencet Thema hat 9 participant: |