Beiträge von NightmarePhoenix
-
-
Hallo,
ich hab mal was gelesen, dass man wenn man per GUICtrlCreatePic ein Bild als Button verwendet und dieses teilweise transparent ist, man es so einstellen kann, das nur der sichtbare teil als button genutzt wird. Ich glaube das habe ich sogar hier im Forum gesehen, jetzt bin ich aber zu blöd das wieder zu finden... Kann mir jemand sagen wie das geht?
Gruß und Danke,
Nightmare -
naja, ich würd mal sagen, das kann passieren
ansonsten noch, zu der "_self"-funktion hab ich nichts gefunden, kann mir da jemand weiterhelfen? Oder gibts vllt noch eine andere möglichkeit?
Grüße, Nightmare
-
@Homelike: Dann würde aber das Programm auch nicht mehr funktionieren oder?
@Sgt: Ok, danke, das werd ich dann mal probieren!
-
Hi miteinander.
Kann man ein Programm vor dem Programmstart irgendwie blockieren? In meinem Fall hätte ich gerne den Internet Explorer blockiert.
Geht das irgendwie? Weil ich habe ein Skript gefunden von BugFix, bei dem eine Seite vom IE aufgerufen wird und in der GUI eingebettet wird.
Jetzt werden aber Links auf die man klickt teilweise in einem neuen Fenster geöffnet, wodurch der IE aufgeht.
Ich wollte das "Programm" mit einem Freund von mir teilen, aber bei dem hängt anscheinend der IE auf dem PC (er hat gemeint das Script von BugFix würde normal laufen).
Zurzeit hab ich es so gelöst, das der Prozess direkt beendet wird, so das der IE keine Chance hat viel zu laden. Allerdings hätte ich lieber das er sich gar nicht erst öffnet, egal wie kurz... Ist das irgendwie möglich?
Ich hab auch gelesen das man den entsprechenden "Dienst" beenden kann, damit sich ein Programm nicht mehr öffnet, jedoch habe ich weder einen passenden Dienst gefunden, noch weiß ich ob sich dadurch vielleicht auch das Script nicht mehr öffnen lässt?Schonmal ein fettes DANKE und Gruß,
Nightmare -
Caipi wird gemischt mit:
Spoiler anzeigen
-Braunem Rohrzucker
-Cachaca
-Limetten
-Crushed IceZubereitung:
Spoiler anzeigen
-Den braunen Rohrzucker in das Glas geben (ruhig
großzügig, mindestens den Boden bedecken, ich tue normal so ca.
0,5cm-0,7cm auffüllen)
-danach die Limetten vierteln oder achteln
(meistens werden sie geviertelt). beim schneiden darauf achten ein
möglichst scharfes messer zu benutzen (ich nehme immer ei geriffeltes,
ähnlich wie Brotschneidemesser, damit der saft nicht rausgepresst wird
und man bei normalen klingen eher druck aufbaut damit es schneidet)
-Nun
die limetten in das glas geben und je nach geschmack entweder
zerdrücken (damit man mehr säure hat) oder einfach so lassen(damit der
saft von allein raus geht), wobei sie meistens aber zerdrückt werden.
Danach
den Cachaca drüber kippen (Ich persönliche tue noch etwas weiße limo
für den geschmack rein, insgesamt etwa das glas zu dreiviertel voll,
davon ca. 50/50 gemischt)
-Jetzt das Crushed Ice drüber und fertig!Alternativ
kann man, wenn man zeit hat die limetten ins glas geben (nicht
zerdrücken) und den Rohrzucker auf die geteilten limetten kippen,
(dadurch löst er sich schon etwas vor und zieht den saft etwas aus den
limetten). Danach wie oben vorgehen (zerdrücken, alkohol drüber und mit
Crushed Ice auffüllen)Gruß,
NightmarePhoenix -
hab grade schon einen edit angehängt bevor ich deinen post gesehen hatte, hab es hinbekommen blöd wenn man dann doch eine kleine änderung vorgenommen hat und es dann selbst vergisst zu erwähnen naja, das läuft jetzt soweit, aber was genau sollen die beiden zeilen im script eigentlich genau bringen?
-
naja, aber der pfad ist doch angegeben, oder vertue ich mich da?
Edit: hab es jetzt hin bekommen. Ich hatt den Dateinamen als "*.txt" gelassen... Was mich aber zu der frage führt, was genau die zwei zeilen eigentlich machen? weil für mich sieht es so aus als würde es einfach die Datei in Excel öffnen und dann wieder schließen?
-
ok, danke, guter vorschlag, aber mir zum beispiel soll die .txt eh nicht verändert werden
und im notfall kann man die fehlerhafte .csv vorher löschen. Und wenn ich mich nicht ganz vertue sollen die letzten beiden zeilen
die .csv-dateien öffnen und als normale excel-dateien speichern (weiß ich nicht sicher, da genau hier ja mein problem liegt :P).ja, sie können ganz normal per doppelklick geöffnet werden.
-
naja, da ich ihn 1 zu 1 kopiert habe von ojo habe ich ihn nicht nochmal gepostet.
Aber hier trotzdem nochmal:
Spoiler anzeigen
[autoit]#include <excel.au3>
[/autoit]
Filecopy ("c:\mytext.txt", "c:\mytext.csv")
$oExcel = _ExcelBookOpen ("c:\mytext.csv")
_ExcelBookClose ($oExcel, 0, 1) -
hm, also auch auf die gefahr das ich mich jetzt selbst als ganz blöd hinstelle ( ), so ganz versteh ich nicht was du meinst mit den kompletten pfad angeben. meinst du jetzt in dem Script oder in der alten Excel UDF? Weil im script ist ja der komplette pfad angegeben oder?
ich steig da grade nicht so ganz durch, sorry :\Gruß, Nightmare
-
Hi, ich wollte auch .txt-Dateien nach excel exportieren. Das mit in *.csv umbennen funktioniert klasse! jetzt habe ich bloß das Problem das bei mir folgende Fehlermeldung kommt:
Spoiler anzeigen
Line 191 (File "C: \Programm Files (x86)\AutoIt3\Inlcude\excel.au3"):If$sPassword = "" And $sWritePassword = "" Then
.WorkBooks.Open($sFilePath,Default,$IfReadOnly)
If$sPassword = "" And $sWritePassword = "" Then
.WorkBooks.Open($sFilePath,Default,$IfReadOnly)^ ERRORError: The requested action with this Object has failed.
Das Script habe ich 1 zu 1 kopiert, als *.au3-Datei gespeichert und gestartet. Die Dateien werden in "*.csv" umbenannt. Was genau soll danach in den letzten beiden Zeilen passieren?
Gruß, NightmarePhoenix
-
genau, um festzustellen wer alles auf den server joined.
ok, die sockettoip hab ich schon, aber auch erstmal nur kopiert :\
naja, das mit dll-aufrufen versteh ich eh noch nicht so, insofern... muss ich wohl mal die tage was damit machendanke für die hilfe, dachte das wäre irgendwie schwerer wenn man das über tcp sendet hab ich wohl falsch gedacht
-
hi leute
hab mich jetzt mal dran gemacht wie schnitzel gesagt hat und einen messenger komplett selbst geschrieben.
Der client funktioniert ausgezeichnet, den server hab ich wohl etwas zu umständlich gemacht... aber er funktioniert, wenn auch erst für einen client
habe jetzt einen anderen server fürs erste genommen, mit dem ich auch mehrere clients verbinden kann.Jetzt würde ich mich nur fragen, kann ich die Clients die auf den Server connecten irgendwie abspeichern? Also seperat in einer Txt-Datei die IP mit Uhrzeit?
Den Code habe ich leider gerade nicht da, weil mein Pc im moment weg ist und da der source-code drauf war falls der zwingend benötigt wir um meine frage zu beantworten würde ich ihn so bald wie möglich posten. allerdings würde mir auch vollkommen eine allgemeine antwort langen, damit ich es mir selbst erarbeiten kann^^Gruß, Nightmare
-
hi^^
ok, das mit dem port war der fehler
gestartet haben wir es bekommen, nur halt eben nicht connected
server nur einmal starten ist klar, da wir ja auf den gleichen server müssen
127.0.0.1 weiß ich, da das ja der eigene pc ist^^
ok, danke für den tipp^^Gruß, Nightmare
-
Ahhhh, ok, danke
Versteh ich schon nicht falsch, wenn man mit kritik nicht umgehen kann ist man in so einem Forum meiner meinung nach falsch
Und ich hab ja gesagt das ich es mir kopiert habe und jetzt versuche es zu verstehen^^ Wobei ich mich da ja anscheinend etwas doof anstelle Das TCPStartup () habe ich zweimal drinnen, weil ich den Text ja zusammenkopiert habe und habe es nicht rausgelöscht, weil ich mir gedacht habe an sich stört es ja nicht (oder?) und wenn ich es raus lösche und später irgendwann brauche weil ich das irgendwie anders schreiben will wäre ja doof oder?Andere Frage nebenbei, ich habe den Chat von Protex neulich mal ausprobiert ( Auto IT TCP Chat ), und mit nem kumpel getestet, hat aber nicht so ganz funktioniert... muss man da extra einen Server haben damit wir beide zum gleichen chat connecten können? Oder müsste das nicht rein theoretisch auch gehen wenn wir beide die IP von uns angeben? Und wenn wir einen Server brauchen, wieso genau wäre as so? Danke schonmal für die Antworten^^
-
Hi Schnitzel,
danke. Naja, ich dachte eigentlich das ich die Basics soweit verstehen würde... Ich hatte mir schon einen "Launcher" programmiert und einen Lockscreen. Der Launcher besteht eigentlich bloß aus ein paar knöpfen die verschiedene Funktionen ausführen. Was allerdings etwas schwerer war, war es so hin zu bekommen das der launcher versteckt ist und sobald ich in die rechte obere Ecke fahre er "ausklappt". Der Lockscreen war ein bisschen einfacher, das ist ja quasi nur ein GUI über den ganzen Bildschirm, das sich nur entsperren lässt wenn das richtige passwort eingegeben ist... Bei dem Launcher bin ich aber nach dem gleichen Prinzip vorgegangen wie jetzt. Ich denke halt das wenn ich Fehler mache das ich daraus dann lerne und mir das nicht nochmal passiert. Das mir den einzeiligen IF's hätte mir genau so gut passieren können bei einem einfacherern Script, oder? Bzw., da ich nicht wusste das es geht, einzeilige IF's zu schreiben, hätte ich immer mit EndIf geschrieben, und hätte nie oder erst sehr spät herausgefunden das es einzeilige IF's gibt. Und das mit dem vergessenen Funktionsaufruf war ein leichsinns-Fehler ;P
Wie meinst du das mit Variablen zu überschreiben?
-
Ok, danke. Dachte das würde auch ohne endif gehen, da es oben ja anscheinend auch nicht zwingend gebraucht wird oder? Also Zeile 90 bis ca. Zeile 110.
So, immerhin kein Fehler mehr allerdings funktioniert das mit dem senden immer noch nicht, bzw. das empfangen... hab das script jetzt auch noch ein bisschen verändert, aber immer noch nichts. habe es versucht normal von dem alten client zu senden, da kommt aber auch nichts an, insofern denke ich das das TCPRecv nicht funktioniert, ich verstehe nur nicht wieso.Ob das senden funktioniert weiß ich nicht, da ich nur einen Server laufen lassen kann und da die nachrichten nicht in dem eigentlichen ankommen, kann ich nicht schauen ob das senden funktioniert...Spoiler anzeigen
[autoit]#include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit];==============================================
[/autoit] [autoit][/autoit] [autoit]
;==============================================
;SERVER!! Start Me First !!!!!!!!!!!!!!!
;==============================================
;==============================================Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit]
; Set Some reusable info
; Set your Public IP address (@IPAddress1) here.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv; Start The TCP Services
[/autoit] [autoit][/autoit] [autoit]
;==============================================
TCPStartup(); Create a Listening "SOCKET".
[/autoit] [autoit][/autoit] [autoit]
; Using your IP Address and Port 33891.
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT); If the Socket creation fails, exit.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $MainSocket = -1 Then Exit; Create a GUI for messages
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$GOOEY = GUICreate("My Server (IP: " & $szIPADDRESS & ")", 750, 400,0,0)
$edit = GUICtrlCreateEdit("", 210, 10, 530, 280)
Local $Input = GUICtrlCreateInput("", 210, 300, 480, 80)
Local $Friendlost = GUICtrlCreateList ("Friends", 10, 10, 190, 380)
Local $Click = GuiCtrlCreateButton ( "Send", 700, 327.5, 40, 25, $BS_DEFPUSHBUTTON)
GUISetState(); Initialize a variable to represent a connection
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1;Wait for and Accept a connection
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1; Get IP of client connecting
[/autoit] [autoit][/autoit] [autoit]
$szIP_Accepted = SocketToIP($ConnectedSocket)
; Start The TCP Services
;==============================================
TCPStartup(); Initialize a variable to represent a connection
[/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1;Attempt to connect to SERVER at its IP and PORT 33891
[/autoit] [autoit][/autoit] [autoit]
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT); If there is an error... show it
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
; If there is no error loop an inputbox for data
; to send to the SERVER.
Else
;Loop forever asking for data to send to the SERVER; GUI Message Loop
[/autoit] [autoit][/autoit] [autoit]
;==============================================
While 1
$msg = GUIGetMsg()
If $nMsg = $Click Then
; InputBox for data to transmit
$szData = _NowTime () & ": " & GUICtrlRead ($Input)
; We should have data in $szData... lets attempt to send it through our connected socket.
TCPSend($ConnectedSocket, $szData)
EndIf
; GUI Closed
;--------------------
;~ If $msg = $GUI_EVENT_CLOSE Then Exit; Try to receive (up to) 2048 bytes
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 2048); If the receive failed with @error then the socket has disconnected
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If @error Then ExitLoop; Update the edit control with what we have received
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Call ( "Example2")If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]
EndIf
TCPShutdown()
EndFunc ;==>Example; Function to return IP Address from a connected socket.
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
[/autoit] [autoit][/autoit] [autoit]
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf$sockaddr = 0
[/autoit] [autoit][/autoit] [autoit]Return $aRet
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>SocketToIP
;~ Func _Example2 ()
;~
;~ While 1
;~ $nMsg = GuiGetMsg ()
;~
;~ If $nMsg = $Click Then
;~ ; InputBox for data to transmit
;~ $szData = _NowTime () & ": " & GUICtrlRead ($Input)
;~ ; We should have data in $szData... lets attempt to send it through our connected socket.
;~ TCPSend($ConnectedSocket, $szData)
;~ EndIf
;~ WEnd
;~ GUIDelete ($Input)
;~ $Input = GUICtrlCreateInput("", 10, 300, 480, 80); If the send failed with @error then the socket has disconnected
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
;~ EndSwitch;~ EndFunc ;==>Example
[/autoit] -
Hm, hab mir jetzt erstmal vorgenommen das in ein Fenster zu packen, jetzt hab ich aber das Problem das ich bei Zeile 154 einen Fehler bekomme. Angeblich habe ich hier ein "WEnd"-Statement ohne passenden "While"-Befehl...
Hier der besagte Bereicht:
Spoiler anzeigen
[autoit]
[/autoit]
While 1
$nMsg = GuiGetMsg ()
If $nMsg = $Click Then
; InputBox for data to transmit
$szData = _NowTime () & ": " & GUICtrlRead ($Input)
; We should have data in $szData... lets attempt to send it through our connected socket.
TCPSend($ConnectedSocket, $szData)
WEndHier das komplette Script:
Spoiler anzeigen
[autoit]#include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit];==============================================
[/autoit] [autoit][/autoit] [autoit]
;==============================================
;SERVER!! Start Me First !!!!!!!!!!!!!!!
;==============================================
;==============================================Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit]
; Set Some reusable info
; Set your Public IP address (@IPAddress1) here.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv; Start The TCP Services
[/autoit] [autoit][/autoit] [autoit]
;==============================================
TCPStartup(); Create a Listening "SOCKET".
[/autoit] [autoit][/autoit] [autoit]
; Using your IP Address and Port 33891.
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT); If the Socket creation fails, exit.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $MainSocket = -1 Then Exit; Create a GUI for messages
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$GOOEY = GUICreate("My Server (IP: " & $szIPADDRESS & ")", 750, 400,0,0)
$edit = GUICtrlCreateEdit("", 210, 10, 530, 280)
Local $Input = GUICtrlCreateInput("", 210, 300, 480, 80)
Local $Friendlost = GUICtrlCreateList ("Friends", 10, 10, 190, 380)
Local $Click = GuiCtrlCreateButton ( "Send", 700, 327.5, 40, 25, $BS_DEFPUSHBUTTON)
GUISetState(); Initialize a variable to represent a connection
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1;Wait for and Accept a connection
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1; Get IP of client connecting
[/autoit] [autoit][/autoit] [autoit]
$szIP_Accepted = SocketToIP($ConnectedSocket)
; Start The TCP Services
;==============================================
TCPStartup(); Initialize a variable to represent a connection
[/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1;Attempt to connect to SERVER at its IP and PORT 33891
[/autoit] [autoit][/autoit] [autoit]
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT); If there is an error... show it
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
; If there is no error loop an inputbox for data
; to send to the SERVER.
Else
;Loop forever asking for data to send to the SERVER; GUI Message Loop
[/autoit] [autoit][/autoit] [autoit]
;==============================================
While 1
$msg = GUIGetMsg()
; GUI Closed
;--------------------
If $msg = $GUI_EVENT_CLOSE Then Exit; Try to receive (up to) 2048 bytes
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 2048); If the receive failed with @error then the socket has disconnected
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If @error Then ExitLoop; Update the edit control with what we have received
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Call ( "Example2")If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]
EndIf
TCPShutdown()
EndFunc ;==>Example; Function to return IP Address from a connected socket.
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
[/autoit] [autoit][/autoit] [autoit]
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf$sockaddr = 0
[/autoit] [autoit][/autoit] [autoit]Return $aRet
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>SocketToIP
Func _Example2 ()
While 1
$nMsg = GuiGetMsg ()
If $nMsg = $Click Then
; InputBox for data to transmit
$szData = _NowTime () & ": " & GUICtrlRead ($Input)
; We should have data in $szData... lets attempt to send it through our connected socket.
TCPSend($ConnectedSocket, $szData)
WEnd
;~ GUIDelete ($Input)
;~ $Input = GUICtrlCreateInput("", 10, 300, 480, 80); If the send failed with @error then the socket has disconnected
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
;~ EndSwitchEndIf
[/autoit]
EndFunc ;==>Example -
Hi euch beide
Oscar : das script hab ich hier mit angehängt.
bis jetzt nur zum testen auf meinem pc und sobald ich das verstanden habe wie das genau funktioniert versuche ich es auf andere IP's zu senden bzw client und server in ein script zu fassen damit ich senden und empfangen in einem fenster machen kann, bis jetzt sende ich es nur an den server und der zeigt es dann in einer editbox an.
ok, wie müsste das dann aussehen? ich dachte das Case @error wäre dafür gedacht...
hab jetzt das Case @error rausgenommen, jetzt funktioniert es soweit das ich auf den Server sende.SgtIgram: ok, werde mir das mal anschauen und wenn ich das soweit beherrsche das ich den kleinen komplett selbst programmieren könnte komme ich nochmal auf dein angebot zurück
Edit:
Danke für den Tipp OscarSpoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit];==============================================
[/autoit] [autoit][/autoit] [autoit]
;==============================================
;SERVER!! Start Me First !!!!!!!!!!!!!!!
;==============================================
;==============================================Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit]
; Set Some reusable info
; Set your Public IP address (@IPAddress1) here.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv; Start The TCP Services
[/autoit] [autoit][/autoit] [autoit]
;==============================================
TCPStartup(); Create a Listening "SOCKET".
[/autoit] [autoit][/autoit] [autoit]
; Using your IP Address and Port 33891.
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT); If the Socket creation fails, exit.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $MainSocket = -1 Then Exit; Create a GUI for messages
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$GOOEY = GUICreate("My Server (IP: " & $szIPADDRESS & ")", 700, 400,0,0)
$edit = GUICtrlCreateEdit("", 210, 10, 480, 280)
Local $Input = GUICtrlCreateInput("", 210, 300, 480, 80)
Local $Friendlost = GUICtrlCreateList ("Friends", 10, 10, 190, 380)
GUISetState(); Initialize a variable to represent a connection
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
$ConnectedSocket = -1;Wait for and Accept a connection
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1; Get IP of client connecting
[/autoit] [autoit][/autoit] [autoit]
$szIP_Accepted = SocketToIP($ConnectedSocket); GUI Message Loop
[/autoit] [autoit][/autoit] [autoit]
;==============================================
While 1
$msg = GUIGetMsg(); GUI Closed
[/autoit] [autoit][/autoit] [autoit]
;--------------------
If $msg = $GUI_EVENT_CLOSE Then ExitLoop; Try to receive (up to) 2048 bytes
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
$recv = TCPRecv($ConnectedSocket, 2048); If the receive failed with @error then the socket has disconnected
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If @error Then ExitLoop; Update the edit control with what we have received
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------
If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Call ( "Example2")If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>Example; Function to return IP Address from a connected socket.
[/autoit] [autoit][/autoit] [autoit]
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
[/autoit] [autoit][/autoit] [autoit]
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf$sockaddr = 0
[/autoit] [autoit][/autoit] [autoit]Return $aRet
[/autoit]
EndFunc ;==>SocketToIP