Foro | | | | - Página 1 - |
| Penguin Tux | ¡Hola,
Yo möchte mich ersteinmal vorstellen. Mein Name es Tony, Yo bin 15 Jahre alt y besuche una Realschule en Chemnitz. Desde que ahora Sommerferien habe y yo nichts más a tun habe, Yo me vorgenommen una kleines Netzwerkanalysetool a escribir. Auf el búsqueda después de uno einfachen Lenguaje de programación bin I XProfan gestoßen.
Yo habe alles nötige gedownloaded y installiert, anschließen Yo una Pingcode gesucht y habe esta:
declarar pingstring$,ping$,ping%
********************************************************************
Proc Ping
Parámetros nic$,pingdatei1$,pingdatei2$
let pingstring$="PING.EXE",nic$,">",pingdatei1$
Asignar #6,pingdatei2$
Rewrite #6
Imprimir #6,pingstring$
Cerrar #6
WinExecwait(pingdatei2$,0)
Asignar #5,pingdatei2$
Borrar #5
ASSIGN #3,pingdatei1$
RESET #3
Ping%=0
WHILENOT EOF(#3)
input #3,ping$
ping$=mid$(ping$,1,11)
caso equ$(ping$,"Antwort von"):Ping%=1
WEND
CLOSE #3
Asignar #1,pingdatei1$
Borrar #1
ENDPROC
********************************************************************
Descripción:
Lo son zwar ya una schnelle y schöne Onlineabfrage über API,
aber desafortunadamente son el Función sólo 1 para Online zurück, si
uno über una Standart DFÜ eingewählt es.
Diese Procedimiento es sólo sólo algo langsamer aber uno kann incluso DSL
(also - no DFÜ-Verbindung) oder el alte T-Online u.s.w abfragen!!
alles con una Stern umrandete es wichtig para el Abfrage
Rolf Koch - Rokosoftware - Koblenz 2002
BEISPIEL
WINDOWSTYLE 31
Ventana 200,200-300,80
Windowtitle "Onlinstatus-Prüfung sin Api"
Color del texto 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
Parámetro
1.) Webadresse - una siempre vorhandene como www.nic.de
2.) Dateiname, en welche Pingergebnis geschrieben se - se otra vez gelöscht!
3.) Dateiname, en Ping korrekt aufzurufen. - se otra vez gelöscht!
********************************************************
Color del texto RGB(255,255,255),RGB(255,255,255)
DRAWTEXT 40,10," "
UseFont "TIMES NEW ROMAN",25,20,1,0,0
Color del texto RGB(0,0,255),-1
Ping "192.168.0.7","PINGTEST.TXT","PING.BAT"
if equ(ping%,1)
DRAWTEXT 25,10,"Erreichbar"
más
DRAWTEXT 25,10,"Nicht erreichbar"
endif
waitinput
Diesen Code Yo me después de media Bedürfnissen zurechtgeschnitten y él sieht como folgt de. Dazu debería Yo el de me ausgedachte Funktionsweise erklären.
Es geplant, dass Yo una Tool escribir, welches möglichst simplemente una erste Ayuda para Schüler y Lehrer bietet. Bemerkt una User el él no Internetzugang ha, führt él el Tool de, welches el Reihe después de sólo el Server anpingt, entonces una otro Client en el Netzwerk y luego todavía una Rechner de außerhalb (z.B. Google). Wenn lo en uno el Schritte no Rückmeldung son, se una Meldung con Tips a Behebung en el Bildschrim erscheinen.
Nun para Code:
declarar pingstring$,ping$,ping%
Proc Ping
Parámetros nic$,pingdatei1$,pingdatei2$
let pingstring$="PING.EXE",nic$,">",pingdatei1$
Asignar #6,pingdatei2$
Rewrite #6
Imprimir #6,pingstring$
Cerrar #6
WinExecwait(pingdatei2$,0)
Asignar #5,pingdatei2$
Borrar #5
ASSIGN #3,pingdatei1$
RESET #3
Ping%=0
WHILENOT EOF(#3)
input #3,ping$
ping$=mid$(ping$,1,11)
caso equ$(ping$,"Antwort von"):Ping%=1
WEND
CLOSE #3
Asignar #1,pingdatei1$
Borrar #1
ENDPROC
WINDOWSTYLE 31
Ventana 200,200-500,80
Windowtitle "Onlinstatus-Prüfung sin Api"
Color del texto RGB(0,0,255),-1
UseFont "TIMES NEW ROMAN",20,10,0,0,0
DRAWTEXT 40,10,"..moment ermittele!"
Color del texto 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)
Color del texto RGB(0,255,0),-1
DRAWTEXT 25,10,"Server Erreichbar"
más
Color del texto RGB(255,0,0),-1
DRAWTEXT 25,10,"Server No erreichbar"
endif
Ping "192.168.0.1","PINGTEST.TXT","PING.BAT"
if equ(ping%,1)
Color del texto RGB(0,255,0),-1
DRAWTEXT 25,10,"Client Erreichbar"
más
Color del texto RGB(255,0,0),-1
DRAWTEXT 25,10,"Client No erreichbar"
endif
Ping "www.google.de","PINGTEST.TXT","PING.BAT"
if equ(ping%,1)
Color del texto RGB(0,255,0),-1
DRAWTEXT 25,10,"Google Erreichbar"
más
Color del texto RGB(255,0,0),-1
DRAWTEXT 25,10,"Google No erreichbar"
endif
waitinput
Ein Problema, welches se a Tiempo auftut, Es el Tatsache el el Fensterinhalt no gelöcht se. Das heißt el "Server Erreichbar", "Client Erreichbar" y "Google Erreichbar" übereinander geschrieben voluntad, also brauche Yo una Möglichkeit el Inhalt la ventana después de cada Schritt a löschen. Dabei bin en
gestoßen. Nutze Yo esta Möglichkeit antes o. después de "Server Erreichbar" se "Server Erreichbar" nada adecuado.
Für una kleine Hilfestellung wäre Yo muy dankbar.
Gracias Tony |
| | | | |
| | | | - Página 6 - |
| | Penguin Tux | | | | | |
| | Rolf Koch | Tony? Was genau willst Usted zerstören? Exactamente el Diálogo! Si usted sagst: DLG&=Create("DIÁLOGO".... , entonces speichert Windows el Handle en DLG& Dies es una eindeutige Nummer como 127222 más o menos, welche de Windows vergeben se. Was se also con usted zerstört voluntad? 1 oder 0? Nein! Lo se el Diálogo zerstört voluntad. Bedeutet: Como Yo oben ya geschrieben habe: DESTROYWINDOW(DLG&) Genauso verhält lo con SHOWWINDOW SHOWWINDOW(BUTTON1&,0) versteckt una Objeto SHOWWINDOW(BUTTON1&,1) bringt lo otra vez para Vorschein. Aber si DLG& por Destroywindow destruido hast, entonces kannst Usted lo natürlich no mehr con SHOWWINDOW Mostrar, como lo el Handle no mehr son. Also entonces otra vez neu redactar y daran denken en Deinem Fall otra vez DIALOGENDE%=0 a conjunto, así el Bucle no otra vez direkt termina. Usted puede aber anstatt DESTROYWINDOW wirklich SHOWWINDOW(DLG&,0) después de el Dialogerstellen conjunto en lo a verstecken y si Clic en Hilfebutton el Hilfefenster por SHOWWINDOW(DLG&,1) otra vez Mostrar. Nach Clic en HILFE SCHLIESSEN simplemente otra vez SHOWWINDOW(DLG&,0) y ya se lo otra vez versteckt.
P.S.: IF ha Recht, lese Usted Por favor, genau cada Satz en el Ayuda por, porque Usted necesidad kein DEF.... Ausschnitt Ayuda a SHOWWINDOW:
N1 : LongInt - Ventana-Handle
N2 : Integer - Abbildungsmodus (1 .. 9)
Das Ventana con el Handle N1 se en el Modus N2 adecuado. Das Ergebnis es 1 si el Ventana vorher sichtbar war oder 0, si vorher versteckt (unsichtbar) war.
Darunter stehender Texto es sólo a Erklärung el passenden API, welche Usted en Deiner Profanversion no necesidad. |
| | | | |
| | Penguin Tux | Yo komme gerade echt no hinterher
Also, mein Code para el Programa incluso sieht ahora así de: KompilierenMarcaSeparacióndeclare 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 a>
waitinput
...y para el Ventana: KompilierenMarcaSeparación>>>>> AB HIER KOPIEREN UND IN EIGENEN CODE EINBINDEN <<<<<<<<<<<<
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
SET("TRUECOLOR",1)
$I C:DOKUMENTE UND EINSTELLUNGENTONYDESKTOPROCLIBUSER.INC (Für WIN32 OBJEKTE)
PROC DIALOG ---------------------------------------------------------------------------> Dialoganfang
DECLARE DLG&, DIALOGENDE%
DECLARE TEXT1&
DECLARE BUTTON1&
PROC BUTTON1_ONCLICK
GETMESSAGE
DIALOGENDE%=1
ENDPROC
DLG&=CREATE("DIÁLOGO",%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
If %KEY=2
DIALOGENDE%= 1
ELSEIF %WMPAINT
DLG_REFRESH
ELSEIF GETFOCUS(BUTTON1&) BUTTON
BUTTON1_ONCLICK
ENDIF
ENDWHILE
DESTROYWINDOW(DLG&)
ENDPROC --------------------------------------------------------------------------------> Dialogende
SET("AUTOPAINT",2)
>>>>> HIER KOPIERENDE FÜR EIGENEN CODEEINBAU <<<<<<<<<<<<<<<<<<<<
Also muss Yo weder 1 todavía 0 zerstören. |
| | | | |
| | | Usted musst zumindest antes el Programmende todos Controls zerstören, welche Usted auch erstellt hast. Das verlangt no z.B. Windows XP, aber el gute Programa!
erstellst du also eins
a%=createText(...
musst Usted lo antes el Programmende auch otra vez
destroyWindow(a%)
zerstören.
Yo habe ahora no nachgesehen si Usted Controls verwendest!
Nur el %hWnd musst/solltest No zerstören, el ha hier y como ne Sonderbehandlung.
Apéndice: Usted erstellst mindestens una texto una dlg y una button, spätestens antes Programmende debería esta erzeugten Controls auch otra vez encima Ihr Handle por destroyWindow lejos voluntad. |
| | | | |
| | Jörg Sellmeyer |
erstellst du also eins
a%=createText(...
musst Usted lo antes el Programmende auch otra vez
Das halte Yo aber para una Gerücht! Si el Elternfenster destruido reicht el völlig. Nur si uno una Control con el gleichen Varablenbezeichnung neu redactar voluntad muß uno lo vorher zerstören, como sonst el Zugriff darauf no mehr posible es. Obwohl incluso entonces beim Programmende el Zerlegung de Windows übernommen se. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.07.2008 ▲ |
| |
| | Penguin Tux | Sry Personas, aber könntet ihr veces otra vez Klartext, Yo komm como bastante simplemente todavía nciht así rápidamente con. Mir sería lo recihen si yo weiß, como yo fenster erscheinen lasse y por el clic de ok otra vez verschwinden lasse. |
| | | | |
| | Jörg Sellmeyer | ¡Hola Pingu, Tal vez hilft Usted que aquí sí primero más: KompilierenMarcaSeparaciónDeclare 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 | KompilierenMarcaSeparaciónDeclare 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
Der speckert ahora en Línea 5 rum. Yo habe me el geposteten COde simplemente veces angeguckt y bin sólo así weit gekommen.
Editar: Yo habe ahora una "Proc Dialog" a el Anfang gesetzt y una "EndProc" ans Ende, el Fehlermeldung es ahora zwar weg, el Ventana dafür auch. |
| | | | |
| | Rolf Koch | Usted hast ende% declariert, aber nutzt unten dlgende% por lo tanto meckert él. Also declarar dlgende% anstatt ende% - ach y todavía viel mehr Variables welche garnicht benutzt y ser así más. Schau y Comparar: KompilierenMarcaSeparación |
| | | | |
| | Penguin Tux | | | | | |
| | Rolf Koch | Hab mein obiges Posting erweitert como siehste lo. Siehst Usted irgendwo DECLARE BTNDLG& en Deinem Code? Deswegen se gemeckert. |
| | | | |
| | Penguin Tux | Gracias, ahora Funktioniert lo. Tuve sí garnicht así viel falso, si uno bedenkt el Yo el sólo seit gestern hacer. Logisches denken hilft eben doch.
Wo wir gerade esta son. Como schlage Yo mich eigentlich? Yo frage zwar viel, aber dazu seit ihr sí como |
| | | | |
|
RespuestaTema opciones | 23.759 Views |
ThemeninformationenDieses Thema ha 9 subscriber: |