ne, denn der AutoIt3Wrapper ruft auch nur die Datei: Au2exe.exe auf, oder wie die heißt (befindet sich im AutoIt3 Verzeichnis)
Beiträge von oetzn
-
-
Ich post hier mal meine Version, hab ich jetzt kurz geschrieben

Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]Global $aButtons[9]
[/autoit] [autoit][/autoit] [autoit]
Global $bX = TrueOpt("GuiOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$hMain = GUICreate("TicTacToe", 189, 193, 241, 133)
[/autoit] [autoit][/autoit] [autoit]
$aButtons[0] = GUICtrlCreateButton("", 16, 8, 43, 41, $WS_GROUP)
$aButtons[1] = GUICtrlCreateButton("", 72, 8, 43, 41, $WS_GROUP)
$aButtons[2] = GUICtrlCreateButton("", 128, 8, 43, 41, $WS_GROUP)$aButtons[3] = GUICtrlCreateButton("", 16, 56, 43, 41, $WS_GROUP)
[/autoit] [autoit][/autoit] [autoit]
$aButtons[4] = GUICtrlCreateButton("", 72, 56, 43, 41, $WS_GROUP)
$aButtons[5] = GUICtrlCreateButton("", 128, 56, 43, 41, $WS_GROUP)$aButtons[6] = GUICtrlCreateButton("", 16, 104, 43, 41, $WS_GROUP)
[/autoit] [autoit][/autoit] [autoit]
$aButtons[7] = GUICtrlCreateButton("", 72, 104, 43, 41, $WS_GROUP)
$aButtons[8] = GUICtrlCreateButton("", 128, 104, 43, 41, $WS_GROUP)$ButtonRestart = GUICtrlCreateButton("Neu starten", 48, 160, 91, 25, $WS_GROUP)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent(-1, "_Restart")
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hMain)Global $aPoss[8][3] = [[$aButtons[0], $aButtons[1], $aButtons[2]], _ ; Erste Reihe waagrecht
[/autoit] [autoit][/autoit] [autoit]
[$aButtons[3], $aButtons[4], $aButtons[5]], _ ; Zweite Reihe waagrecht
[$aButtons[6], $aButtons[7], $aButtons[8]], _ ; Dritte Reihe waagrecht
[$aButtons[0], $aButtons[3], $aButtons[6]], _ ; Erste Reihe senkrecht
[$aButtons[1], $aButtons[4], $aButtons[7]], _ ; Zweite Reihe senkrecht
[$aButtons[2], $aButtons[5], $aButtons[8]], _ ; Dritte Reihe senkrecht
[$aButtons[0], $aButtons[4], $aButtons[8]], _ ; Diagonale links-oben -> rechts-unten
[$aButtons[2], $aButtons[4], $aButtons[6]]] ; Diagonale rechts-oben -> links-untenFor $i = 0 To UBound($aButtons, 1) - 1
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont($aButtons[$i], 14, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($aButtons[$i], "_Pressed")
NextWhile 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _Pressed()
[/autoit] [autoit][/autoit] [autoit]
Switch $bX
Case True
GUICtrlSetData(@GUI_CtrlId, "X")
$bX = False
Case False
GUICtrlSetData(@GUI_CtrlId, "O")
$bX = True
EndSwitch
_CheckWin()
EndFunc ;==>_PressedFunc _CheckWin()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aPoss, 1) - 1
Local $j = 2
If GUICtrlRead($aPoss[$i][$j - 2]) == GUICtrlRead($aPoss[$i][$j - 1]) And GUICtrlRead($aPoss[$i][$j - 1]) == GUICtrlRead($aPoss[$i][$j]) And GUICtrlRead($aPoss[$i][$j]) <> '' Then
For $k = 0 To 2
GUICtrlSetBkColor($aPoss[$i][$k],0x00ff00)
NextMsgBox(0, "SPIELENDE", "Der Spieler '" & GUICtrlRead($aPoss[$i][$j - 2]) & "' hat gewonnen!")
[/autoit] [autoit][/autoit] [autoit]
_Restart()
Return
EndIf
Next
EndFunc ;==>_CheckWinFunc _Restart()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aButtons, 1) - 1
GUICtrlSetData($aButtons[$i], "")
GUICtrlSetBkColor($aButtons[$i],0xffffff)
Next
EndFunc ;==>_RestartFunc _Exit()
[/autoit]
Exit
EndFunc ;==>_Exit -
warum verwendest du bilder ?!
Nimm doch einfach einen Button wo du entweder ein großes X oder ein O mit
[autoit]GuiCtrlSetData
[/autoit]hineinschreibst^^
-
[autoit]
Opt("TrayOnEventMode",1)
[/autoit]
So mach ich das immer
Lies dir einfach die Hilfe dazu durch, On-Event-Mode ist meiner Meinung nach viel besser zum Programmieren, da man einzelne Funktionen hat und KEINE Endlosschleife (bis auf eine in der Sleep(100) drinnensteht damit sich das Skript nicht beendet + Prozessor geschont wird)
Tipp:
[autoit]Opt("GuiOnEventMode",1)
[/autoit]gibts auch noch

-
Ich würde das so betrachten:
der Entwickler schreibt ein Programm, das kann 2 Gründe haben:- weil er es selbst braucht (dann wird er gleichzeitig zum User)
- weil ihm jemand den Auftrag gegeben hat.
AD 1:
In diesem Fall vereint er beide Personen in sich, und man kann somit nicht sagen wer 'wichtiger' ist.AD 2:
Der User ist wichtiger, da wenn dem User das Programm nicht gefällt, er den Entwickler nicht dafür entlohnen wird und der Entwickler nur Zeit vergeudet hat. Klar könnte ohne dem Entwickler der User niemandem einen Auftrag geben, aber er gibt den Auftrag ja auch nur, weil er selbst (noch) nicht dazu in der Lage ist, das Problem selbst zu lösen. -> Zeitfaktorergo:
Wenn es eine Wichigkeitsverteilung gibt, dann liegt der größere Teil auf jedem Fall beim User, da der User das Programm verwendet und falls es keine Entwickler geben würde, dann würde eben der User zum Entwickler werden, was dann wieder auf 1. hinausläuft.Wenn es allerdings keine Wichtigkeitsaufteilung gibt, das ist die Variante zu der ich mehr tendiere, dann sieht das so aus, dass beide Personen vom jeweils anderen abhängig sind und ohne den anderen nicht exisitieren können.
Da du einen Text schreiben musst (Erörterung?), würde ich an deiner Stelle den Weg einschlagen, dass man nicht sagen kann wer wichtiger ist, da keiner ohne den anderen exisitieren kann, wie bei sovielem auf unsrer Erde / in unserem Universum.MfG
-
Das macht Truecrypt zb so, es lässt den User wirrkürlich oder wie dort steht möglichst zufällig glaube ich einen String/Zahl/Code was auch immer generieren, mit dem dann die Festplatte/Datei verschlüsselt wird.
-
jup zufallszahlen sind echt ein interessantes thema.
eben deshalb weil man sie nicht einfach erzeugen kann.zu pseudozufallszahlen denke ich wurde alles gesagt. wollte hier nur noch ne recht interessante news von heise posten.
http://www.heise.de/newsticker/mel…men-995035.htmlda versuchen sie auch die ersten "echten" zufallszahlen zu generieren.
durchlesen dann kann man sich vllt etwas besser vorstellen wie schwer es ist
Dazu fallen mir nur die Videos auf Youtube zu Quantenphysik ein

Seeeehr interessantes Thema, fast so interessant wie die Relativitätstheorie
-
wo liegt das Problem?
[autoit]$sTemp = TCPRecv($Socket, 8192)
[/autoit]
Switch $sTemp
Case ...
Run(...)
Case ...
Shutdown(...)
Endswitch -
drücke einfach Windowstaste und l (<-- kleines L), dann sperrt sich der PC und du musst das PW deines Benutzerkontos neu eingeben. Fertig, da brauchst du keinen Keylogger.
-
siehe forenregeln!
-
xampp schon probiert? Ich glaube da ist ein Fileserver auch dabei, bin mir aber nicht sicher.
-
Suchst du einen Hoster mit Webspace und FTP-Zugang oder ein Programm mit dem du einen FTP-Server erstellen kannst?
-
ich benutze zurzeit die KIS 9.0.0459 und muss sagen, bin derzeit damit sehr zufrieden (Testversion)
Zum entfernen würde ich dir empfehlen mal Malewarebytes Anti-Maleware zu probieren. Diese Software ist ziemlich gut und zuverlässig was das Entfernen angeht.
-
WinHttp, falls du dich damit auskennst.
-
Hab mir vorher grad kurz dieses Skript geschrieben, da ich zuhause öfters zwischen Headset und Lautsprecher umschalte.
Einfach statt den Strings 'Output Sound device 1' bzw 2 und 'Input Sound device 1' bzw 2 die jeweiligen Ein-Ausgabegeräte einsetzen.
!!Achtung CASE SENSTIVE!!
War nicht viel Arbeit, aber vielleicht braucht es ja mal jemand..
Hier ist der Code:Spoiler anzeigen
[autoit]Global $aValues[2][2] = [["Output Sound device 1","Output Sound device 2"],["Input Sound device 1","Input Sound device 2"]]
[/autoit] [autoit][/autoit] [autoit]Global $sPlayback = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Playback")
[/autoit] [autoit][/autoit] [autoit]
If @error Then Exit
Global $sRecord = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Record")
If @error Then ExitSwitch $sPlayback
[/autoit] [autoit][/autoit] [autoit]
Case $aValues[0][0]
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Playback","REG_SZ",$aValues[0][1])
Case $aValues[0][1]
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Playback","REG_SZ",$aValues[0][0])
EndSwitchSwitch $sRecord
[/autoit] [autoit][/autoit] [autoit][/autoit]
Case $aValues[1][0]
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Record","REG_SZ",$aValues[1][1])
Case $aValues[1][1]
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Record","REG_SZ",$aValues[1][0])
EndSwitch -
Du könntest das entweder in die Jobbörse stellen, denn das ist mit AutoIt sicher möglich. Oder du lernst AutoIt falls du es nicht kannst und schreibst dir das Tool selbst. Ein fertiges Tool für genau den Zweck wirst du wahrscheinlich nicht finden.
-
na so wird das nicht funktionieren leute..
die Endlosschleife ist ja dazu da, dass STÄNDIG auf etwas reagiert werden kann (TRAY, GUI, etc)
was ist so schlimm daran, dass es endlos läuft?! Muss es ja auch..ich denk was du brauchst, ist ein Weg um aus der Schleife auszusteigen, da kannst du entweder mit
[autoit]Exit
[/autoit]das ganze Skript beenden oder nur mit
[autoit]ExitLoop
[/autoit]aus der Schleife aussteige, was in deinem Fall auch das ganze Skript beendet, weil nach der Endlosschleife nichts mehr folgt!
EDIT: Ließ dir mal die Hilfe zu TrayGetMsg und GuiGetMsg durch, dann wirst du verstehen wieso du eine Endlosschleife benötigst.
-
Neue Version.
Siehe Post #1! -
und was is wenn ich lange Texte schreibe und dabei die Maus nicht bewege?^^
Das erkennt deine UDF dann nicht.Und noch was, ich sehe bei der Funktion __AFK_Get() keine return values, es stehen aber welche in der Funktionsbeschreibung.
Habs generell nur kurz überflogen, sieht ganz nett aus, aber nicht getestet.
-
Mach doch einfach
[autoit]Fileopen
[/autoit]
Filereadund speicher dir einen Teil dieser Datei irgendwo ab, später kannst du dann mit
[autoit]Fileopen
[/autoit]
Fileread
StringInStr
überprüfen, ob es die selbe Datei ist.
nicht vergessen BINÄR einlesen.