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 8 - |
| | Stefan Landsberg | %hwnd necesidad du imho no deklarieren. en me va jedenfalls auch sin lo vorher a deklarieren. (a spät. rolf war más rápido)
Yo habe en mi programm otra vez bastante de vorn angefangen y habe jetz unos pocos fragen. vorweg primero el aktuelle zustand meines programms: KompilierenMarcaSeparaciónDeclare-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
en el EditBox se el User una liste de IPs o deren Aliase por absätze (a not auch kommata oder semikola) getrennt eingeben.
mein ziel es para jede dieser IPs una ping abfrage a hacer.
como mache Yo el al besten?
mi idee: el inhalt el editbox con @GETLINE$ en un Bereichsvariable einlesen, y luego irgendwie jede ip en un cadena variable escribir. wo una neue ip anfäng erkennt uno sí a el absätzen (aber como sage Yo el el programm).
danach simplemente con cada variable folgende abfrage hacer:
ping variable$
si la idee bien y umsetzbar es wäre lo nett si alguien me en umsetzung helfen sería. si la idee no tan bueno es, wäre una neu idee muy hilfreich |
| | | | |
| | Penguin Tux | Gracias Rolf, el Grundprinziep Yo langsam gerafft - klar a Yo wirklich kann dauert lo ni Weile.
Yo kümmere mich gerade por lo tanto el miene Hilfefenster auch una Hilfetext bekommen, vorerst sólo "Print", esta bin I el problema gestoßen, dass él me zwar el Texto ausgibt, aber dafür el Button no. |
| | | | |
| | Rolf Koch | Como debería wir wissen wo no klappt? Immer una kurzes Ejemplo anhängen. |
| | | | |
| | Penguin Tux | Oh sí, Yo vergaß KompilierenMarcaSeparaciónDeclare 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 du willst en dlg& printen? Nee el es no posible, nimm más bien entonces otra vez drawtext, porque como kannste: KompilierenMarcaSeparación Und lies Por favor, en el Profanhilfe entonces bajo startpaint /endpaint después de, porque el problema para createdialog oder createwindow es, dass Usted hay siempre el gedrawte neuzeichnen musst. Siehe dafür %wmpaint en el HIlfe. Yo plediere dafür lass el imprimir y drawtext weg y lerne create("text".... einzusetzen. Como kannste De todos modos schön por settext variable&,"neuer text" una aktualisierung des Inhalts hacer. |
| | | | |
| | Penguin Tux | So, danke a todos el me geholfen haben - el "Alpha-Version" meines Tools es fertig. Bis en el Fehlenden Hilfetexte y el Meldung des Erfolges, welche no mehr el problema ser dürfte, fehlt no mehr viel. Tal vez erweitere Yo todos todavía una GUI en beliebige IP´s a a pingen, aber como warte Yo primero en Stefans Tool .
Hier el (fast) fertige Code, el natürlich immernoch el Test-IP´s enthält: 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"
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 Beenden drücken Sie Por favor, una beliebige Taste"
waitinput
Falls lo Verbesserungsvorschläge son - siempre her así. Und si sonst todavía Fragen oder ähnliches son - fragt.
Also nocheinmal una Dankeschön a todos que a diesem Hilo beteiligt haben. |
| | | | |
| | Rolf Koch | Yo voluntad sí no , dass Usted otra vez umbaust, como uno alles algo verkürzen podría porque vieles identisch es como más Bucle con Sinestar encargado dlgende% - el puede ser como Procedimiento umbauen (siehe unten)
Si usted lo así umständlich como ahora dejar willst, entonces mach wenigstens hinter cada dlgende%=1 una destroywindow(dlg&)
Aber más bien así: 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 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 una beliebige Taste"
waitinput
|
| | | | |
| | Penguin Tux | Mhmm.. Yo lasse lo más bien ya que es, porque Yo como einigermaßen verstehe Yo gemacht habe.
Gleich ni Cuestión hinterher.
Se puede doch con XProfan sicherlich auch nen COM-Port ansprechen - oder? |
| | | | |
| | | Das hängt bajo anderem de el Hilfedatei de el uno esta primero konsultiert...
Schau después de OpenCom. |
| | | | |
| | Penguin Tux | Yo veces COM eingegeben y bekomme nichts qué me en diesem Problema helfen podría. |
| | | | |
| | Rolf Koch | Yo sag Usted: Tomar el Ejemplo de me y bau darauf más en. Denn prozedural es mejor. Stell Usted antes Usted willst 30 Adressen anpingen y schreibst siempre otra vez dasselbe. Hier rufst Usted siempre sólo el Procedimiento el Usted en el wesentlichen sí kennst, porque es sí el qué Usted sauoft unten siempre otra vez posición hast en el más Anweisung, en y lernst correcto esta programa. Glaub me. Es en el Endeffekt Su Code sólo Tiempo, Nerven, Codesparend. |
| | | | |
| | Penguin Tux | Wenn Si es usted el sagst^^
Yo werd me veces alles angucken y mioch informe, si yo el neuen Code habe.
Yo el código ahora simplemente primero Kopiert y gespeichert. Yo gehe seit drei Tagen en 3 en el Bett y bin hundemüde. Yo zwar ya einiges de deinem Code verstanden, aber en el ahora Línea para Línea durchzugucken fehlt el Lust. |
| | | | |
|
RespuestaTema opciones | 23.736 Views |
ThemeninformationenDieses Thema ha 9 subscriber: |