Hi,
man finde ja sehr viele schöne Iconpacks im Netz. Leider sind dies sehr oft mit der Beschränkung, dass man sie nicht kommerziell nutzen darf. Kennt jemand ein gute gefülltes Iconpack welches auch für kommerzielle Nutzung freigegeben ist?
Hi,
man finde ja sehr viele schöne Iconpacks im Netz. Leider sind dies sehr oft mit der Beschränkung, dass man sie nicht kommerziell nutzen darf. Kennt jemand ein gute gefülltes Iconpack welches auch für kommerzielle Nutzung freigegeben ist?
Ja so hatte ich das oben gemeint gehabt. Hat das bisschen verwirrt geschrieben gehabt. Danke für die Hilfe :).
Ja gut das klar, aber ich muss ja dann dem Client irgendwie mitteilen das die Daten nicht angekommen sind sonst sendet er diese ja nicht noch einmal.
Meinst du also das ich so machen soll, das Client auf eine Bestätigung wartet das die Daten richtig beim Server angekommen sind und wenn diese nicht in einer Zeit von x kommt er die Daten nochmals sendet?
Wollte ich ja zuerst, hab aber immernoch Problem, damit das manchmal einfach nichts übermittelt wird:
Das wäre Client - Server aktuell:
CLient:
Func _GetMACFromIP($sIP=@IPAddress1, $mode = 1)
Local $MAC, $MACSize
Local $i, $s, $r, $iIP
$MAC = DllStructCreate("byte[6]")
$MACSize = DllStructCreate("int")
DllStructSetData($MACSize, 1, 6)
$r = DllCall("Ws2_32.dll", "int", "inet_addr", _
"str", $sIP)
$iIP = $r[0]
$r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
$s = ""
If $mode = 0 Then
For $i = 0 To 5
$s &= Hex(DllStructGetData($MAC, 1, $i + 1), 2)
Next
ElseIf $mode = 1 Then
For $i = 0 To 5
If $i Then $s = $s & ":"
$s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
Next
ElseIf $mode = 2 Then
For $i = 0 To 5
If $i Then $s = $s & "-"
$s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
Next
EndIf
Return $s
EndFunc
Do
Local $macadresse = ""
$macadresse = _GetMACFromIP()
Until $macadresse <> ""
$text = @IPAddress1 & "#" & $macadresse & "#" & @ComputerName
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Empfaenger_IP = "193.196.72.5"
$Port = 33891
TCPStartUp()
[/autoit] [autoit][/autoit] [autoit]$ConnectedSocket = TCPConnect($Empfaenger_IP, $Port)
TCPSend($ConnectedSocket, $text)
Sleep(3000)
TCPShutdown ()
#include <SQLite.au3>
#include <SQLite.dll.au3>
Local $sSQliteDll
$sSQliteDll = _SQLite_Startup ()
If @error > 0 Then
MsgBox(16, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
Exit - 1
EndIf
ConsoleWrite("_SQLite_LibVersion=" &_SQLite_LibVersion() & @CR)
_SQLite_Open(@ScriptDir & '\datenbank.db')
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$strCREATE = _
"CREATE TABLE [Programme] (" & _
"[id] INTEGER PRIMARY KEY NOT NULL," & _
"[name] VARCHAR[50] NULL," & _
"[pfad] VARCHAR[100] NULL," & _
"[kategorie] VARCHAR[30] NULL)"
If _SQLite_Exec ( -1, $strCREATE ) <> $SQLITE_OK Then
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$strCREATE = _
"CREATE TABLE [Rechner] (" & _
"[id] INTEGER PRIMARY KEY NOT NULL," & _
"[ip] VARCHAR[15] NULL," & _
"[mac] VARCHAR[17] NULL," & _
"[name] VARCHAR[6] NULL," & _
"[pool] VARCHAR[10] NULL)"
If _SQLite_Exec ( -1, $strCREATE ) <> $SQLITE_OK Then
EndIf
[/autoit] [autoit][/autoit] [autoit]$strCREATE = _
"CREATE TABLE [Zuweisen] (" & _
"[id] INTEGER PRIMARY KEY NOT NULL," & _
"[programmid] INTEGER NULL," & _
"[rechnerid] INTEGER NULL)"
If _SQLite_Exec ( -1, $strCREATE ) <> $SQLITE_OK Then
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
TCPStartup()
$MainSocket = TCPListen(@IPAddress1, 33891, 100 )
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
If $ConnectedSocket <> -1 Then
$recv = TCPRecv($ConnectedSocket, 100)
MsgBox(0,"",$recv)
Sleep(1000)
$empfang = StringSplit($recv,"#")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Local $hQuery, $hZeile = ""
_SQLite_Query(-1,"SELECT ip,name FROM Rechner WHERE ip = '" & $empfang[1] & "'" ,$hQuery)
_SQLite_FetchData($hQuery, $hZeile)
_SQLite_QueryFinalize ($hQuery)
$anzahl = Ubound($hZeile)
MsgBox(0,"",$anzahl)
If $anzahl < 2 Then
MsgBox(0,"","nicht vorhanden")
_SQLite_Exec(-1,"INSERT INTO Rechner (id, ip, mac, name, pool) VALUES (NULL, '"& $empfang[1] & "', '" & $empfang[2] & "', '" & $empfang[3] & "', NULL)")
Else
MsgBox(0,"","vorhanden")
EndIf
EndIF
TCPShutdown()
WEnd
_SQLite_Close()
_SQLite_Shutdown ()
Manchmal gehts drei oder viermal, dann plötzlich einmal nicht dann gehts wieder villeicht fünf mal und einmal dann wieder nicht. Komm einfach nicht dahinter wo das Problem ist. Hab auch mal zum Testen alle @error Meldungen ausgegeben und auch überall mal sleep rein gepackt aber auch ohne großen Erfolg.
Gleiche Problem ist auch wenn in SQLite raus lasse und z.b. MsgBox oder Listfeld rein mache.
Hi,
ich habe einen Client und eine Server in Autoit realisiert. Gibt es eine Möglichkeit die IP des Anfragenen Clients abzurufen und in eine Variable zu speichern?
Kann man auch die MAC Adresse des Client am Server herraus bekommen?
Hi,
danke für die Infos. Ist echt super Community hier. Werde das mal austesten.
Tritt den nicht dann, wenn Sub und Main gleichzeitig auf die ini zugfreifen wollen, eine Fehlermeldung auf?
Hi,
ich hab eine Main-Autoit-exe die eine variable Anzahl anderen Autoit-exe Dateien aufruft. Die Main-Autoit-exe erzeugt eine Gui im Vollbild und zeigt an wieviele Autoit-exe noch aufgerufen werden. Z.b. Die Main-Autoit-exe soll 8 andere aufrufen dann steht da "Installation 3/8" wenn gerade das dritte Script ausgeführt wird.
Da aber einige Installationen etwas länger dauern würd ich jetzt gerne noch "Statusmeldungen" zum aktuellen Installationspunkt ausgeben also z.b. "Installation 3/8 - Seriennummer wird eingegeben" anzeigen lassen.
Da wie gesagt es eine Variable anzahl an Autoit-exe Dateien sind und auch die Setups die diese automatisieren recht unterschiedlich sind kann ich das nicht fest in dei Main-Autoit-exe packen.
Das einzige was mir nun eingefallen ist wäre das ganze über TCP zu machen also Client/Server was allerdings sehr unschön wäre.
Gibt es eine einfachere Möglichkeit werte von einer AutoIt-exe an eine andere zu übergeben?
Ja das es mit Controlclicks geht weiß ich, kann man aber leidet nicht so einfach wie mit dem Scriptaufzeichnungstool machen. Naja muss ich dann halt durch und er per Hand schreiben.
Hallo,
ich hab eine Autoi-exe gemacht um Adobe Acrobat 9 automatisch zu instellieren. Allerdings arbeite ich nicht mit den IDs sondern mit den "Hotkeys" des Programmes also z.b. "w" für weiter ect. Grund dafür ist der, das ich noch viele Programme automatisieren möchte und es halt einfach mit den Scriptaufzeichnungsprogramm geht das bei AutoIt dabei ist. Funktioniert auch einwandfrei und wird auch alles schön installiet wie es sein soll.
Jetz möchte ich aber gerne eine GUI im Vollbild anzeigen lassen mit einem Text das gerade etwas installiert wird und im Hintergrund dieser Vollbild GUI dann Abobe Arcorbat 9 mit dem Script installieren lassen. Probelm ist nun, dass ich ja für das oben beschrieben vorgehen der Installation, des Setupfenster den Fokus geben muss und damit dieses vor das GUI Vollbild kommt.
Gibt es einen Möglichkeit der GUI im Vollbild zu sagen das sie immer im Vordergrund sein soll und man trotzdem den Fokus auf das Setup im Hintergrund setzen kann?
Ping einen Rechner/Server an der nur innerhalb des Uni-Netzwerkes erreichbar ist. War der Ping erfolgreich weißt, dass die Verbindung steht.
Auszug aus der Hilfe:
$var = Ping("www.AutoIt.de",250)
If $var Then; Es geht auch If @error = 0 Then ...
Msgbox(0,"Status","Online, Antwortzeit war:" & $var)
Else
Msgbox(0,"Status","Es ist ein Fehler mit der Nummer " & @error & " aufgetreten.")
EndIf
Arg, manchmal übersieht man die einfachsten Sachen. Vielen Dank.
Auch nach dieser Nachfrage und anschließender Eingabe eines weiter Benutzers samt Kennwort, kommt eigentlich die selbe Fehlermeldung !
Nein kommt sie nicht, da hier keine Mapping gemacht wird sondern einfach ein direkter Zugriff erfolgt.
Versuch mal beim Mappen die IP-Adresse statt des Servernamens zu verwenden!
Das geht. Danke :).
Hallo,
habe ein Problem mit TCPRecv auf einem W2k3 Server. Habe ein Client und ein Server Script:
Server:
While 1
TCPStartup()
$MainSocket = TCPListen(@IPAddress2, 33891, 100 )
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
If $ConnectedSocket <> -1 Then
$recv = TCPRecv($ConnectedSocket, 100)
MsgBox(0,"Empfangen",$recv)
EndIf
TCPShutdown()
WEnd
[/autoit]Client:
$Empfaenger_IP = "193.196.108.5"
$Port = 33891
$Text = InputBox("Text senden","Text eingeben, der gesendet werden soll","")
If @error = 1 Then Exit
TCPStartUp()
[/autoit] [autoit][/autoit] [autoit]$ConnectedSocket = TCPConnect($Empfaenger_IP, $Port)
TCPSend($ConnectedSocket, $Text)
TCPShutdown ()
[/autoit]Zum testen möchte ich vom Client Script aus an das Server Script einen Text schicken der dann am Serverscritp in einer MsgBox erscheint. Das funktioniert auch so lange wie es zwischen normalen XP Client ist. Wenn ich nun allerdings das Server Script auf einem W2K3-Server lege und versuche einen Text zu schicken, geht am Serverscript zwar eine MsgBox auf, diese ist allerdings vollkommen leer. Auch wenn ich sowohl Client als auch Serverscript auf den W2K3-Server lege und sozusagen lokal die Nachricht verschicke bleibt die MsgBox leer. Weiß jemand woran das liegen könnte?
mfg
Mh sehr schade. Da man ja wenn man auf eine Freigabe zugreifen will für die man keine Recht hat eine Abfrage nach alternativem User kommt das man das auch direkt mit autoit dann übergeben kann. Bleibt also nur der Weg dann die Freigabe zu öffnen und mit Autoit die alternativen Benutzerdaten dann in das erscheinene Abfragefenster einzugeben.
Zitiere mich mal kurz selber:
Wichtig ist auch, dass ich die Freigabe nicht mappen kann, da bereits eine Mapping auf eine andere Freigabe dieses Rechners besteht. Dieses mapping muss auch bestehen bleiben und kann auch nicht zeitweise aufgehoben werden.
Hi,
ich möchte gerne auf eine Freigabe eines anderen Rechner mit AutoIt zugreifen um dort ein andere AutoItscript-exe zu starten. Problem ist allerdings das der Rechenr von dem aus ich auf die Freigabe zugreifen möchte die die Rechte dazu hat und ich also unter anderem Benutzer zugreifen muss. Wichtig ist auch, dass ich die Freigabe nicht mappen kann, da bereits eine Mapping auf eine andere Freigabe dieses Rechners besteht. Dieses mapping muss auch bestehen bleiben und kann auch nicht zeitweise aufgehoben werden. Die genau Frage lautet also.
Wie kann ich unter verwendung anderer Benutzerdaten auf eine Freigabe zugreifen?
Der OnEventModus ist genau das was ich gesucht habt. Danke.
Ich würde über GUI einfach eine eigene Messagebox bauen,mit GUICtrlCreateLabel den Text und mit GUICtrlCreatePic die Grafik.