Mach doch das was auf der Webseite steht einfach als Autoit-GUI dann hast das Problem nicht.
Beiträge von chip
-
-
-
Falsche Forenbereich bitte verschieben nach: https://www.autoit.de/index.php?page=Board&boardID=51
-
Ich warte eg. nur darauf, bis ich mit meinem Tablet AutoIt-Skripte schreiben kann. Bin z.Z. viel unterwegs und ein Notebook ist im Zug oder Bus einfach zu sperrig, da wirds einem bei 2 h Fahrzeit mal schnell langweilig.Schreiben kannst in jedem Texteditor, nur ausführen/compilieren halt nicht.
-
Alles gute zum Geburtstag Schachmietze.
[Blockierte Grafik: http://2.bp.blogspot.com/_UvvfSuRm1vA/Swk8PqfUhlI/AAAAAAAAAYQ/sS_YZvtMjxw/s1600/hp.jpg]
Alles gute zum Geburtstag Xenobiologist.
[Blockierte Grafik: http://rlv.zcache.com/happy_birthday_space_alien_card-p137699080599434249tdtq_400.jpg]
-
(Musste bereits 140 PCs mit Windows 8 bestücken und ausliefern)Mein Beileid.
-
Und zum Thema: AutoIt funktioniert wie auf Windows 7 auch auf Windows 8 zu 100%Stimmt nicht, im offiziellen Forum gibt es einige Thread in denen Sachen unter Win 8 ebene NICHT mehr gehen.
-
Seit der aktuellen Verison 3.3.8.1 wird Win 8 zumindestens größtenteils unterstützt. Aber wer hat schon freiwillig Win 8 :D.
-
Schreib doch einfach online in eine Ini-Datei die Version die Online ist. Im Forum gibts dazu schon einige Themen und fertige Scripte.
-
Rechtsklick auf au3 -> Compile with Options ->Ressource Update -> FileVersion
Dateiversion als solche kannst nicht so einfach ändern da hier die Version der Autoitinterpreters genommen wird.
-
Weil @DesktopHight und @DesktopWidht die komplette Desktopgröße ist.
-
Der Nutzer ist noch voll aktiv, und hat einen Avatar und ein Profil, welches eindeutig auf diesen Thread hinweist. Er ist sich dessen also bewusst. Das Projekt muss überhaupt nicht tot sein.Und geau deshalb verweißt sein Link im Profil auf den eben nichtmehr existierenden Startpost ;).
-
Thread von Januar, letzte post von Juli. Das ist inaktiv. Des weiteren wurde der Startpost vom Threadersteller gelöscht was wohl eindeutig auf ein nichtmehr existieren des Projektes hindeutet ;).
Ich würde sagen sinnloser einen alten Thread ausgraben geht fast garnichtmehr.
-
Wundervolles Beispiel grade wieder für einen alten Thread der komplett sinnlos wieder nach oben geholt wurde: https://autoit.de/index.php?page=Thread&threadID=30399
-
Cool danke das wars.
-
Hi,
ich möchte eine TCP-Verbindung zwischen zwischen einen Javaclient und einem Autoitserver herstellen. Man muss dazu sagen das ich noch ziemlicher anfänger in Sachen Java bin. Hier mal die Javaclass für den Java-Client:Spoiler anzeigen
Java
Alles anzeigenpackage com.example.tcpclienttest; import android.util.Log; import java.io.*; import java.net.InetAddress; import java.net.Socket; public class TCPClient { private String serverMessage; public static final String SERVERIP = "192.168.0.102"; //your computer IP address public static final int SERVERPORT = 4444; private OnMessageReceived mMessageListener = null; private boolean mRun = false; PrintWriter out; BufferedReader in; /** * Constructor of the class. OnMessagedReceived listens for the messages received from server */ public TCPClient(OnMessageReceived listener) { mMessageListener = listener; } /** * Sends the message entered by client to the server * @param message text entered by client */ public void sendMessage(String message){ if (out != null && !out.checkError()) { out.println(message); out.flush(); } } public void stopClient(){ mRun = false; } public void run() { mRun = true; try { //here you must put your computer's IP address. InetAddress serverAddr = InetAddress.getByName(SERVERIP); Log.e("TCP Client", "C: Connecting..."); //create a socket to make the connection with the server Socket socket = new Socket(serverAddr, SERVERPORT); Log.e("TCP Client", "C: Socket"); try { //send the message to the server out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); Log.e("TCP Client", "C: Sent."); Log.e("TCP Client", "C: Done."); //receive the message which the server sends back in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //in this while the client listens for the messages sent by the server while (mRun) { serverMessage = in.readLine(); if (serverMessage != null && mMessageListener != null) { //call the method messageReceived from MyActivity class mMessageListener.messageReceived(serverMessage); } serverMessage = null; } Log.e("RESPONSE FROM SERVER", "S: Received Message: '" + serverMessage + "'"); } catch (Exception e) { Log.e("TCP", "S: Error", e); } finally { //the socket must be closed. It is not possible to reconnect to this socket // after it is closed, which means a new socket instance has to be created. socket.close(); } } catch (Exception e) { Log.e("TCP", "C: Error", e); } } //Declare the interface. The method messageReceived(String message) will must be implemented in the MyActivity //class at on asynckTask doInBackground public interface OnMessageReceived { public void messageReceived(String message); }Und hier mal noch die Javaclass für einen Java-Server:
Spoiler anzeigen
Java
Alles anzeigenimport javax.swing.*; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * The class extends the Thread class so we can receive and send messages at the same time */ public class TCPServer extends Thread { public static final int SERVERPORT = 4444; private boolean running = false; private PrintWriter mOut; private OnMessageReceived messageListener; public static void main(String[] args) { //opens the window where the messages will be received and sent ServerBoard frame = new ServerBoard(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } /** * Constructor of the class * @param messageListener listens for the messages */ public TCPServer(OnMessageReceived messageListener) { this.messageListener = messageListener; } /** * Method to send the messages from server to client * @param message the message sent by the server */ public void sendMessage(String message){ if (mOut != null && !mOut.checkError()) { mOut.println(message); mOut.flush(); } } @Override public void run() { super.run(); running = true; try { System.out.println("S: Connecting..."); //create a server socket. A server socket waits for requests to come in over the network. ServerSocket serverSocket = new ServerSocket(SERVERPORT); //create client socket... the method accept() listens for a connection to be made to this socket and accepts it. Socket client = serverSocket.accept(); System.out.println("S: Receiving..."); try { //sends the message to the client mOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())), true); //read the message received from client BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); //in this while we wait to receive messages from client (it's an infinite loop) //this while it's like a listener for messages while (running) { String message = in.readLine(); if (message != null && messageListener != null) { //call the method messageReceived from ServerBoard class messageListener.messageReceived(message); } } } catch (Exception e) { System.out.println("S: Error"); e.printStackTrace(); } finally { client.close(); System.out.println("S: Done."); } } catch (Exception e) { System.out.println("S: Error"); e.printStackTrace(); } } //Declare the interface. The method messageReceived(String message) will must be implemented in the ServerBoard //class at on startServer button click public interface OnMessageReceived { public void messageReceived(String message); } }Wenn beide gestartet sind Verbindet sich der Client mit dem Server, kann an diesen Daten senden und empfängt auch Daten von dem Server.
So nun habe ich die Serverseite in Autoit gemacht:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 4444
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recvTCPStartup()
[/autoit] [autoit][/autoit] [autoit]$MainSocket = TCPListen($szIPADDRESS, $nPORT)
[/autoit] [autoit][/autoit] [autoit]If $MainSocket = -1 Then Exit
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$GOOEY = GUICreate("Mein", 301, 201, 192, 125)
$edit = GUICtrlCreateEdit("", 10, 10, 280, 124)
GUICtrlSetData(-1, "")
$Button1 = GUICtrlCreateButton("Button1", 16, 152, 75, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###$ConnectedSocket = -1
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
ConsoleWrite("verbunden" & @CRLF)$szIP_Accepted = SocketToIP($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button1
TCPSend($ConnectedSocket, "antwort")
EndSwitch$recv = TCPRecv($ConnectedSocket, 2048)
[/autoit] [autoit][/autoit] [autoit]If @error Then ExitLoop
[/autoit] [autoit][/autoit] [autoit]If $recv <> "" Then
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($edit, $szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
EndIf
WEndIf $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
[/autoit] [autoit][/autoit] [autoit]TCPShutdown()
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>ExampleFunc SocketToIP($SHOCKET)
[/autoit] [autoit][/autoit] [autoit]
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][/autoit] [autoit][/autoit]
EndFunc ;==>SocketToIPDie JavaClient baut nun auch brav eine Verbindung zum Autoitserver auf und der Autoitserver empfängt auch alles vom Client gesendeten Daten. Allerdings wenn ich nun den Button drücke um via TCPSend etwas an den Javaclient zu senden kommt bei diesem einfach nichts an.
Jemand eine Idee zur Lösung?
-
Ich weiß nicht, wie hier überhaupt Multithreading eingesetzt werden kann?!Garnicht. Autoit ist nicht dafür ausgelegt. Ich zitiere da einfach mal progandy:
ZitatDiese Möglichkeit des Multithreadings ist aus gutem Grund in der Versenkung verschwunden. Der AutoIt-Interpreter ist nicht threadsicher. Das bedeutet, dass er nicht mehrere Codeblöcke gleichzeitig ausführen kann, da interene Variablen und Speicherbereiche nicht für gleichzeitige Zugriffe ausgelegt sind. Dadurch gibt es unvorhersehbare Interferenzen der Threads, die meist aufgrund von Speicherfehlern oder öhnlichem zum Absurz führen. Weiterhin beendet der AutoIt-Compiler das Programm sobald der erste Thread beendet wird.
Siehe dazu auch die AutoitNotOnToDoList: http://www.autoitscript.com/trac/autoit/wi…ItNotOnToDoList
Das was du willst lässt sich nur lösen in dem das Prüfen des Pfades in ein externes Script auslagerst.
-
Autoit != schnell
-
Glaub mir ich kann erkennen ob ein Thema gelöst ist und da ich > 95% der H&U Themen lese dürfte die Quote auch stimmen.Ich merke dir schein nicht klar zu sein um was es sich um diesen Thread dreht und zwar nicht um DICH. So und damit bin ich hier raus.
-
werden max. 1/3 der gelösten Themen auch auf gelöst gestelltSolche Themen sind dann meist schlicht ohne Antwort des Threaderstellers und damit ist es nicht sicher ob das überhaupt gelöst ist
sind es meist gelöste Themen an die sich Frischlinge anhängenLies was ich geschrieben habe