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 6 - |
| | Penguin Tux | | | | | |
| | 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. |
| | | | |
| | Penguin Tux | je viens justement vraie pas hinterher
alors, mon Code pour cela Programme selbst sieht maintenant so aus: 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"
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. |
| | | | |
| | | 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é. |
| | | | |
| | 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. |
| | | | |
| | Jörg Sellmeyer | allô Pingu, peut-être hilft Dir que voici oui erstmal plus: KompilierenMarqueSéparationDeclare 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éparationDeclare 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. |
| | | | |
| | 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 |
| | | | |
| | 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 KompilierenMarqueSéparation äffnet sich mon la fenêtre, mais sans Button. |
| | | | |
| | Rolf Koch | Hab mon obiges Posting erweitert là siehste es. vois Du irgendwo DECLARE BTNDLG& dans Deinem Code? Deswegen wird gemeckert. |
| | | | |
| | 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à |
| | | | |
|
répondreOptions du sujet | 24.069 Views |
Themeninformationencet Thema hat 9 participant: |