Imhotheb
6 years ago
5 changed files with 556 additions and 2 deletions
@ -0,0 +1,74 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<project xmlns="http://www.purebasic.com/namespace" version="1.0" creator="PureBasic 5.62 (Windows - x86)"> |
||||
|
<section name="config"> |
||||
|
<options closefiles="1" openmode="2" name="ConnectionTest"/> |
||||
|
</section> |
||||
|
<section name="data"> |
||||
|
<explorer view="" pattern="0"/> |
||||
|
<log show="1"/> |
||||
|
<lastopen date="2018-11-18 18:10" user="Andy" host="MINAS"/> |
||||
|
</section> |
||||
|
<section name="files"> |
||||
|
<file name="Main.pb"> |
||||
|
<config load="1" scan="1" panel="1" warn="1" lastopen="1" panelstate="+"/> |
||||
|
<fingerprint md5="06a219f523b6bff8eeb67c4ed729c9a7"/> |
||||
|
</file> |
||||
|
<file name="Wnd.pbf"> |
||||
|
<config load="1" scan="1" panel="1" warn="1" lastopen="1" panelstate="+"/> |
||||
|
<fingerprint md5="5faa0a245f63229d47e81d1568979e4b"/> |
||||
|
</file> |
||||
|
</section> |
||||
|
<section name="targets"> |
||||
|
<target name="32-Bit Executable" enabled="1" default="1"> |
||||
|
<inputfile value="Main.pb"/> |
||||
|
<outputfile value="..\ConnTest.exe"/> |
||||
|
<options thread="1" xpskin="1" debug="1"/> |
||||
|
<temporaryexe value="source"/> |
||||
|
<compilecount enable="1" value="60"/> |
||||
|
<buildcount enable="1" value="15"/> |
||||
|
<execonstant enable="1"/> |
||||
|
<versioninfo enable="1"> |
||||
|
<field0 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field1 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field2 value="Imhotheb"/> |
||||
|
<field3 value="Connection Test"/> |
||||
|
<field4 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field5 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field6 value="Connection Test"/> |
||||
|
<field7 value="iConnTest"/> |
||||
|
<field8 value="%EXECUTABLE"/> |
||||
|
<field9 value="© Imhotheb"/> |
||||
|
<field13 value="Info@Imhotheb.de"/> |
||||
|
<field14 value="https://imhotheb.de"/> |
||||
|
<field15 value="VOS_NT"/> |
||||
|
<field16 value="VFT_APP"/> |
||||
|
</versioninfo> |
||||
|
</target> |
||||
|
<target name="64-Bit Executable" enabled="1" default="0"> |
||||
|
<inputfile value="Main.pb"/> |
||||
|
<outputfile value="..\ConnTest_x64.exe"/> |
||||
|
<options thread="1" xpskin="1" debug="1"/> |
||||
|
<temporaryexe value="source"/> |
||||
|
<compilecount enable="1" value="54"/> |
||||
|
<buildcount enable="1" value="15"/> |
||||
|
<execonstant enable="1"/> |
||||
|
<versioninfo enable="1"> |
||||
|
<field0 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field1 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field2 value="Imhotheb"/> |
||||
|
<field3 value="Connection Test"/> |
||||
|
<field4 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field5 value="1.%yy%mm.%dd%BUILDCOUNT.%COMPILECOUNT"/> |
||||
|
<field6 value="Connection Test"/> |
||||
|
<field7 value="iConnTest"/> |
||||
|
<field8 value="%EXECUTABLE"/> |
||||
|
<field9 value="© Imhotheb"/> |
||||
|
<field13 value="Info@Imhotheb.de"/> |
||||
|
<field14 value="https://imhotheb.de"/> |
||||
|
<field15 value="VOS_NT"/> |
||||
|
<field16 value="VFT_APP"/> |
||||
|
</versioninfo> |
||||
|
</target> |
||||
|
</section> |
||||
|
</project> |
@ -0,0 +1,408 @@ |
|||||
|
EnableExplicit |
||||
|
XIncludeFile "Wnd.pbf" |
||||
|
|
||||
|
If Not InitNetwork() |
||||
|
MessageRequester("Fehler", "Netzwerkfehler") |
||||
|
End |
||||
|
EndIf |
||||
|
|
||||
|
Macro Version() |
||||
|
"V" + Str(1) + "." + FormatDate("%yy%mm.%dd", Date()) + Str(#PB_Editor_BuildCount) + "." + Str(#PB_editor_CompileCount) |
||||
|
EndMacro |
||||
|
|
||||
|
Enumeration Events #PB_Event_FirstCustomValue |
||||
|
#EVENT_ThreadFinished |
||||
|
EndEnumeration |
||||
|
|
||||
|
Enumeration Menu |
||||
|
#MENU_PopUp |
||||
|
EndEnumeration |
||||
|
|
||||
|
Enumeration MenuItem |
||||
|
#MENUITEM_Copy |
||||
|
#MENUITEM_Cut |
||||
|
#MENUITEM_Paste |
||||
|
#MENUITEM_SelectAll |
||||
|
#MENUITEM_Undo |
||||
|
EndEnumeration |
||||
|
|
||||
|
|
||||
|
Structure ThreadData |
||||
|
ID.i |
||||
|
Exit.i |
||||
|
Url.s |
||||
|
Query.s |
||||
|
Format.i |
||||
|
Modus.i |
||||
|
GetRaw.i |
||||
|
Timeout.i |
||||
|
Interval.i |
||||
|
EndStructure |
||||
|
|
||||
|
Global ThreadData.ThreadData |
||||
|
Global PopupMenuGadget |
||||
|
|
||||
|
Procedure WriteLog(String.s, TimeStamp = #True) |
||||
|
|
||||
|
If TimeStamp |
||||
|
AddGadgetItem(#EDIT_Log, -1, FormatDate("%yy-%mm-%dd %hh:%ii:%ss -> ", Date()) + String) |
||||
|
Else |
||||
|
AddGadgetItem(#EDIT_Log, -1, String) |
||||
|
EndIf |
||||
|
|
||||
|
CompilerIf #PB_Compiler_OS = #PB_OS_Windows |
||||
|
; NICHT in der DEMO-Version |
||||
|
SendMessage_(GadgetID(#EDIT_Log), #EM_SETSEL, -1, -1) ; Automatisch weiter scrollen |
||||
|
CompilerEndIf |
||||
|
|
||||
|
|
||||
|
; While WindowEvent() : Wend ; Quick'n Dirty |
||||
|
EndProcedure |
||||
|
Procedure.s CheckUrl(Url.s) |
||||
|
|
||||
|
If FindString(Url, "://", 1, #PB_String_NoCase) < 1 |
||||
|
Url = "none://" + Url |
||||
|
EndIf |
||||
|
|
||||
|
ProcedureReturn Url |
||||
|
EndProcedure |
||||
|
Procedure.s GetQuery() |
||||
|
Protected Ret.s |
||||
|
|
||||
|
Ret = GetGadgetText(#EDIT_Own) |
||||
|
Ret = RemoveString(Ret, #CR$) |
||||
|
Ret = RemoveString(Ret, #LF$) |
||||
|
Ret = UnescapeString(Ret) |
||||
|
|
||||
|
ProcedureReturn Ret |
||||
|
EndProcedure |
||||
|
|
||||
|
Procedure.s ReceiveHTTP(Url.s, Format = #PB_UTF8) |
||||
|
Protected Ret.s, *RecData, Size |
||||
|
|
||||
|
WriteLog("Anfrage " + Url + " senden ...") |
||||
|
*RecData = ReceiveHTTPMemory(Url) |
||||
|
|
||||
|
If *RecData |
||||
|
Size = MemorySize(*RecData) |
||||
|
Ret = PeekS(*RecData, Size, Format) |
||||
|
WriteLog(Str(Size) + " Bytes empfangen") |
||||
|
Else |
||||
|
WriteLog("Verbindungsfehler") |
||||
|
EndIf |
||||
|
|
||||
|
ProcedureReturn Ret |
||||
|
EndProcedure |
||||
|
Procedure.s ReceiveRaw(Url.s, Query.s, Format = #PB_UTF8, Modus = #PB_Network_TCP|#PB_Network_IPv4, TimeOut = 5000) |
||||
|
Protected Server.s, Port, *Query, QueryBytes |
||||
|
Protected NetID, Bytes, *Buff, StartTime, Ret.s |
||||
|
|
||||
|
Url=CheckUrl(Url) |
||||
|
|
||||
|
Server.s = GetURLPart(Url, #PB_URL_Site) |
||||
|
Port = Val(GetURLPart(Url, #PB_URL_Port)) |
||||
|
If Port = 0 |
||||
|
Port = 80 |
||||
|
EndIf |
||||
|
|
||||
|
QueryBytes = StringByteLength(Query, Format) |
||||
|
*Query = AllocateMemory(QueryBytes + 2) |
||||
|
If *Query |
||||
|
PokeS(*Query, Query, -1, Format) |
||||
|
*Buff = AllocateMemory(100000) ; 100 KB Puffer |
||||
|
If *Buff |
||||
|
WriteLog("Verbinde mit " + Server + ":" + Str(Port) + " ...") |
||||
|
NetID = OpenNetworkConnection(Server, Port, Modus, TimeOut) |
||||
|
If NetID |
||||
|
WriteLog("Verbindung erfolgreich") |
||||
|
WriteLog("Sende Anfrage ...") |
||||
|
Bytes = SendNetworkData(NetID, *Query, QueryBytes) |
||||
|
WriteLog(Str(Bytes) + " Bytes gesendet") |
||||
|
WriteLog("Warte " + Str(TimeOut) + " ms auf Antwort ...") |
||||
|
Bytes = 0 |
||||
|
StartTime = ElapsedMilliseconds() |
||||
|
Repeat |
||||
|
Select NetworkClientEvent(NetID) |
||||
|
Case #PB_NetworkEvent_Data |
||||
|
WriteLog("Empfange Daten ...") |
||||
|
Bytes = ReceiveNetworkData(NetID, *Buff, MemorySize(*Buff)) |
||||
|
If Bytes |
||||
|
WriteLog(Str(Bytes) + " Bytes empfangen") |
||||
|
Ret = PeekS(*Buff, Bytes, Format|#PB_ByteLength) |
||||
|
Break |
||||
|
EndIf |
||||
|
Case #PB_NetworkEvent_Disconnect |
||||
|
WriteLog("Verbindung wurde getrennt") |
||||
|
Break |
||||
|
Default |
||||
|
If (ElapsedMilliseconds() - StartTime) > TimeOut |
||||
|
WriteLog("Timeout erreicht") |
||||
|
Break |
||||
|
Else |
||||
|
Delay(5) |
||||
|
EndIf |
||||
|
EndSelect |
||||
|
ForEver |
||||
|
CloseNetworkConnection(NetID) |
||||
|
Else |
||||
|
WriteLog("Verbindung fehlgeschlagen") |
||||
|
EndIf |
||||
|
|
||||
|
FreeMemory(*Buff) |
||||
|
Else |
||||
|
WriteLog("Nicht genug freier Speicher") |
||||
|
Debug "ReceiveRaw: Nicht genug freier Speicher" |
||||
|
EndIf |
||||
|
|
||||
|
FreeMemory(*Query) |
||||
|
Else |
||||
|
WriteLog("Nicht genug freier Speicher") |
||||
|
Debug "ReceiveRaw: Nicht genug freier Speicher" |
||||
|
EndIf |
||||
|
|
||||
|
ProcedureReturn Ret |
||||
|
EndProcedure |
||||
|
|
||||
|
Procedure THREAD_Receive(*TData.ThreadData) |
||||
|
Protected Ret.s, StartTime = ElapsedMilliseconds(), Run = #True, Loop |
||||
|
With *TData |
||||
|
Repeat |
||||
|
|
||||
|
; Abrufen |
||||
|
If Run |
||||
|
WriteLog(RSet(#Empty$, 20, "=") + " AbfrageNr.: " + Str(Loop) + " " + RSet(#Empty$, 20, "="), #False) |
||||
|
If \GetRaw |
||||
|
Ret = ReceiveRaw(\Url, \Query, \Format, \Modus, \Timeout) |
||||
|
Else |
||||
|
Ret = ReceiveHTTP(\Url, \Format) |
||||
|
EndIf |
||||
|
|
||||
|
If Ret <> #Empty$ |
||||
|
WriteLog("Antwort vom Server: ") |
||||
|
WriteLog(RSet(#Empty$, 25, "-"), #False) |
||||
|
WriteLog(Ret, #False) |
||||
|
WriteLog(RSet(#Empty$, 25, "-"), #False) |
||||
|
EndIf |
||||
|
Run = #False |
||||
|
EndIf |
||||
|
|
||||
|
; Intervallrechnung |
||||
|
If \Interval > 0 |
||||
|
If (ElapsedMilliseconds() - StartTime) > \Interval |
||||
|
Loop + 1 |
||||
|
Run = #True |
||||
|
StartTime = ElapsedMilliseconds() |
||||
|
EndIf |
||||
|
Else ; kein Interval, keine Wiederholung |
||||
|
Break |
||||
|
EndIf |
||||
|
|
||||
|
; Beenden-Anforderung, Resourcen freigeben |
||||
|
If \Exit |
||||
|
Break |
||||
|
Else |
||||
|
Delay(10) |
||||
|
EndIf |
||||
|
|
||||
|
ForEver |
||||
|
EndWith |
||||
|
PostEvent(#EVENT_ThreadFinished, #WND, #Null) |
||||
|
EndProcedure |
||||
|
Procedure ThreadCleanUp() |
||||
|
DisableGadget(#BTN_Start, #True) |
||||
|
If ThreadData\ID |
||||
|
ThreadData\Exit = #True |
||||
|
If IsThread(ThreadData\ID) |
||||
|
WriteLog("Warte auf Thread ...") |
||||
|
If WaitThread(ThreadData\ID, ThreadData\Timeout) = 0 |
||||
|
WriteLog("Kill Thread ...") |
||||
|
KillThread(ThreadData\ID) |
||||
|
EndIf |
||||
|
EndIf |
||||
|
WriteLog(">>>>>>>>>> Thread beendet <<<<<<<<<<") |
||||
|
EndIf |
||||
|
ResetStructure(@ThreadData, ThreadData) |
||||
|
DisableGadget(#BTN_Start, #False) |
||||
|
EndProcedure |
||||
|
|
||||
|
Procedure CALLBACK_Gadgets() |
||||
|
Protected EventType = EventType() |
||||
|
Protected EventGadget = EventGadget() |
||||
|
|
||||
|
Select EventGadget |
||||
|
Case #BTN_Start |
||||
|
If GetGadgetState(#BTN_Start) |
||||
|
If GetGadgetState(#CHK_Repeat) |
||||
|
ThreadData\Interval = GetGadgetState(#SPIN_ms) |
||||
|
SetGadgetText(#BTN_Start, "STOP") |
||||
|
Else |
||||
|
ThreadData\Interval = 0 |
||||
|
SetGadgetState(#BTN_Start, #False) |
||||
|
EndIf |
||||
|
ThreadData\Exit = #False |
||||
|
ThreadData\Url = GetGadgetText(#STR_Url) |
||||
|
ThreadData\Format = #PB_UTF8 |
||||
|
ThreadData\GetRaw = GetGadgetState(#OPT_Own) |
||||
|
ThreadData\Modus = #PB_Network_TCP|#PB_Network_IPv4 |
||||
|
ThreadData\Query = GetQuery() |
||||
|
ThreadData\Timeout = 10000 |
||||
|
ThreadData\ID = CreateThread(@THREAD_Receive(), @ThreadData) |
||||
|
WriteLog(">>>>>>>>>> Starte Thread ... <<<<<<<<<<") |
||||
|
Else |
||||
|
ThreadData\Exit = #True ;ThreadCleanUp() |
||||
|
SetGadgetText(#BTN_Start, "START") |
||||
|
EndIf |
||||
|
|
||||
|
|
||||
|
Case #BTN_DelLog |
||||
|
SetGadgetText(#EDIT_Log, #Empty$) |
||||
|
|
||||
|
Case #EDIT_Info |
||||
|
If EventType = #PB_EventType_RightClick |
||||
|
PopupMenuGadget = EventGadget |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Cut, #True) |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Paste, #True) |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Undo, #True) |
||||
|
DisplayPopupMenu(#MENU_PopUp, WindowID(#WND)) |
||||
|
EndIf |
||||
|
|
||||
|
Case #EDIT_Log |
||||
|
If EventType = #PB_EventType_RightClick |
||||
|
PopupMenuGadget = EventGadget |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Cut, #True) |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Paste, #True) |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Undo, #True) |
||||
|
DisplayPopupMenu(#MENU_PopUp, WindowID(#WND)) |
||||
|
EndIf |
||||
|
|
||||
|
Case #EDIT_Own |
||||
|
If EventType = #PB_EventType_RightClick |
||||
|
PopupMenuGadget = EventGadget |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Cut, #False) |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Paste, #False) |
||||
|
DisableMenuItem(#MENU_PopUp, #MENUITEM_Undo, #False) |
||||
|
DisplayPopupMenu(#MENU_PopUp, WindowID(#WND)) |
||||
|
EndIf |
||||
|
|
||||
|
|
||||
|
Default |
||||
|
If GetGadgetState(#CHK_Repeat) |
||||
|
DisableGadget(#SPIN_ms, #False) |
||||
|
Else |
||||
|
DisableGadget(#SPIN_ms, #True) |
||||
|
EndIf |
||||
|
|
||||
|
If GetGadgetState(#OPT_Own) |
||||
|
DisableGadget(#EDIT_Own, #False) |
||||
|
Else |
||||
|
DisableGadget(#EDIT_Own, #True) |
||||
|
EndIf |
||||
|
|
||||
|
EndSelect |
||||
|
|
||||
|
EndProcedure |
||||
|
Procedure CALLBACK_Menu() |
||||
|
|
||||
|
Select EventMenu() |
||||
|
|
||||
|
Case #MENUITEM_Undo |
||||
|
SendMessage_(GadgetID(PopupMenuGadget), #WM_UNDO, 0, 0) |
||||
|
|
||||
|
Case #MENUITEM_Cut |
||||
|
SendMessage_(GadgetID(PopupMenuGadget), #WM_CUT, 0, 0) |
||||
|
|
||||
|
Case #MENUITEM_Copy |
||||
|
SendMessage_(GadgetID(PopupMenuGadget), #WM_COPY, 0, 0) |
||||
|
|
||||
|
Case #MENUITEM_Paste |
||||
|
SendMessage_(GadgetID(PopupMenuGadget), #WM_PASTE, 0, 0) |
||||
|
|
||||
|
Case #MENUITEM_SelectAll |
||||
|
;lang = Len(GetGadgetText(EventGadget)) |
||||
|
SendMessage_(GadgetID(PopupMenuGadget), #EM_SETSEL, 0, -1) |
||||
|
|
||||
|
EndSelect |
||||
|
|
||||
|
EndProcedure |
||||
|
Procedure CALLBACK_Wnd(hWnd, Msg, wParam, lParam) |
||||
|
|
||||
|
If Msg = #WM_CONTEXTMENU |
||||
|
Select wParam |
||||
|
Case GadgetID(#EDIT_Info) |
||||
|
PostEvent(#PB_Event_Gadget, #WND, #EDIT_Info, #PB_EventType_RightClick) |
||||
|
Case GadgetID(#EDIT_Own) |
||||
|
PostEvent(#PB_Event_Gadget, #WND, #EDIT_Own, #PB_EventType_RightClick) |
||||
|
Case GadgetID(#EDIT_Log) |
||||
|
PostEvent(#PB_Event_Gadget, #WND, #EDIT_Log, #PB_EventType_RightClick) |
||||
|
EndSelect |
||||
|
EndIf |
||||
|
|
||||
|
ProcedureReturn #PB_ProcessPureBasicEvents |
||||
|
EndProcedure |
||||
|
|
||||
|
Procedure Create_WND() |
||||
|
|
||||
|
; Fenster öffnen und Standartwerte setzen |
||||
|
OpenWND() |
||||
|
SetWindowTitle(#WND, "Connection Test " + Version()) |
||||
|
WindowBounds(#WND, WindowWidth(#WND), WindowHeight(#WND), #PB_Ignore, #PB_Ignore) |
||||
|
BindEvent(#PB_Event_SizeWindow, @ResizeGadgetsWND(), #WND) |
||||
|
BindEvent(#PB_Event_Gadget, @CALLBACK_Gadgets(), #WND) |
||||
|
BindEvent(#PB_Event_Menu, @CALLBACK_Menu(), #WND) |
||||
|
BindEvent(#EVENT_ThreadFinished, @ThreadCleanUp(), #WND) |
||||
|
SetWindowCallback(@CALLBACK_Wnd(), #WND) |
||||
|
CALLBACK_Gadgets() |
||||
|
SetGadgetText(#EDIT_Own,"GET /file.xxx HTTP/1.1\r\n" + #LF$ + |
||||
|
"Host: server\r\n" + #LF$ + |
||||
|
"Connection: close\r\n" + #LF$ + |
||||
|
;"User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0" + #LF$ + |
||||
|
"\r\n\r\n") |
||||
|
SetGadgetState(#OPT_Internal, #True) |
||||
|
SetGadgetState(#CHK_Repeat, #False) |
||||
|
SetGadgetState(#SPIN_ms, 5000) |
||||
|
|
||||
|
|
||||
|
|
||||
|
If CreatePopupMenu(#MENU_PopUp) |
||||
|
MenuItem(#MENUITEM_Undo, "Rückgängig") |
||||
|
MenuBar() |
||||
|
MenuItem(#MENUITEM_Copy, "Kopieren") |
||||
|
MenuItem(#MENUITEM_Cut, "Ausschneiden") |
||||
|
MenuItem(#MENUITEM_Paste, "Einfügen") |
||||
|
MenuBar() |
||||
|
MenuItem(#MENUITEM_SelectAll, "Alles Auswählen") |
||||
|
EndIf |
||||
|
|
||||
|
; Info hinzufügen |
||||
|
AddGadgetItem(#EDIT_Info, -1, "Escape-Sequenzen:") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\a\tAscii: 7\tBeep") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\b\tAscii: 8\tBackSpace") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\t\tAscii: 9\tH-Tab") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\n\tAscii: 10\tLineFeed") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\v\tAscii: 11\tV-Tab") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\f\tAscii: 12\tFormFeed") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\r\tAscii: 13\tCarriageReturn") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\\"\tAscii: 34\tDoubleQuote") |
||||
|
AddGadgetItem(#EDIT_Info, -1, ~"\\\\\tAscii: 92\tBackSlash") |
||||
|
|
||||
|
EndProcedure |
||||
|
|
||||
|
;_ INIT |
||||
|
Create_WND() |
||||
|
HideWindow(#WND, #False) |
||||
|
|
||||
|
;_ MAIN |
||||
|
Repeat |
||||
|
Until WaitWindowEvent() = #PB_Event_CloseWindow |
||||
|
|
||||
|
;Aufräumen |
||||
|
HideWindow(#WND, #True) |
||||
|
ThreadCleanUp() |
||||
|
; IDE Options = PureBasic 5.62 (Windows - x86) |
||||
|
; CursorPosition = 9 |
||||
|
; Folding = LA9 |
||||
|
; EnableXP |
||||
|
; CompileSourceDirectory |
||||
|
; EnableCompileCount = 0 |
||||
|
; EnableBuildCount = 0 |
||||
|
; EnableExeConstant |
@ -1,2 +1,3 @@ |
|||||
# ConnectionTest |
# ConnectionTest / iConnTest |
||||
|
|
||||
|
|
||||
|
@ -0,0 +1,71 @@ |
|||||
|
; Form Designer for Purebasic - 5.62 |
||||
|
; Warning: this file uses a strict syntax, if you edit it, make sure to respect the Form Designer limitation or it won't be opened again. |
||||
|
|
||||
|
; |
||||
|
; This code is automatically generated by the FormDesigner. |
||||
|
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled. |
||||
|
; Event procedures needs to be put in another source file. |
||||
|
; |
||||
|
|
||||
|
Enumeration FormWindow |
||||
|
#WND |
||||
|
EndEnumeration |
||||
|
|
||||
|
Enumeration FormGadget |
||||
|
#FRM_Url |
||||
|
#STR_Url |
||||
|
#FRM_Connect |
||||
|
#TXT_ms |
||||
|
#SPIN_ms |
||||
|
#CHK_Repeat |
||||
|
#OPT_Internal |
||||
|
#OPT_Own |
||||
|
#FRM_Log |
||||
|
#EDIT_Log |
||||
|
#BTN_Start |
||||
|
#EDIT_Own |
||||
|
#EDIT_Info |
||||
|
#Splitter_0 |
||||
|
#BTN_DelLog |
||||
|
EndEnumeration |
||||
|
|
||||
|
Declare ResizeGadgetsWND() |
||||
|
|
||||
|
|
||||
|
Procedure OpenWND(x = 0, y = 0, width = 490, height = 370) |
||||
|
OpenWindow(#WND, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_Invisible | #PB_Window_TitleBar | #PB_Window_ScreenCentered) |
||||
|
FrameGadget(#FRM_Url, 10, 0, 470, 50, "Url") |
||||
|
StringGadget(#STR_Url, 20, 20, 450, 20, "Server/IP[:Port][/file.xxx]") |
||||
|
FrameGadget(#FRM_Connect, 10, 50, 470, 180, "Abfrage") |
||||
|
TextGadget(#TXT_ms, 420, 100, 30, 20, "ms") |
||||
|
SpinGadget(#SPIN_ms, 330, 100, 80, 20, 1, 99999, #PB_Spin_Numeric) |
||||
|
CheckBoxGadget(#CHK_Repeat, 310, 70, 160, 25, "Automatisch Wiederholen") |
||||
|
OptionGadget(#OPT_Internal, 20, 70, 250, 25, "Interne/cUrl Funktionen verwenden (HTTP)") |
||||
|
OptionGadget(#OPT_Own, 20, 100, 110, 25, "Eigene Abfrage:") |
||||
|
FrameGadget(#FRM_Log, 10, 230, 380, 130, "Log") |
||||
|
EditorGadget(#EDIT_Log, 20, 250, 360, 100, #PB_Editor_ReadOnly) |
||||
|
ButtonGadget(#BTN_Start, 400, 240, 80, 40, "Start", #PB_Button_Toggle) |
||||
|
EditorGadget(#EDIT_Own, 20, 130, 250, 90) |
||||
|
EditorGadget(#EDIT_Info, 279, 130, 191, 90, #PB_Editor_ReadOnly) |
||||
|
SplitterGadget(#Splitter_0, 20, 130, 450, 90, #EDIT_Own, #EDIT_Info, #PB_Splitter_Vertical) |
||||
|
SetGadgetState(#Splitter_0, 250) |
||||
|
ButtonGadget(#BTN_DelLog, 400, 290, 80, 30, "Log löschen") |
||||
|
EndProcedure |
||||
|
|
||||
|
Procedure ResizeGadgetsWND() |
||||
|
Protected FormWindowWidth, FormWindowHeight |
||||
|
FormWindowWidth = WindowWidth(#WND) |
||||
|
FormWindowHeight = WindowHeight(#WND) |
||||
|
ResizeGadget(#FRM_Url, 10, 0, FormWindowWidth - 20, 50) |
||||
|
ResizeGadget(#STR_Url, 20, 20, FormWindowWidth - 40, 20) |
||||
|
ResizeGadget(#FRM_Connect, 10, 50, FormWindowWidth - 20, 180) |
||||
|
ResizeGadget(#TXT_ms, FormWindowWidth - 70, 100, 30, 20) |
||||
|
ResizeGadget(#SPIN_ms, FormWindowWidth - 160, 100, 80, 20) |
||||
|
ResizeGadget(#CHK_Repeat, FormWindowWidth - 180, 70, 160, 25) |
||||
|
ResizeGadget(#FRM_Log, 10, 230, FormWindowWidth - 110, FormWindowHeight - 240) |
||||
|
ResizeGadget(#EDIT_Log, 20, 250, FormWindowWidth - 130, FormWindowHeight - 270) |
||||
|
ResizeGadget(#BTN_Start, FormWindowWidth - 90, 240, 80, 40) |
||||
|
ResizeGadget(#Splitter_0, 20, 130, FormWindowWidth - 40, 90) |
||||
|
ResizeGadget(#BTN_DelLog, GadgetWidth(#Splitter_0) - 50, 290, 80, 30) |
||||
|
EndProcedure |
||||
|
|
Loading…
Reference in new issue