Ich weiß jetzt nicht, ob das in deinem Script auch so ist, aber Assign("Beispiel" & $i) kann nicht klappen --> falsche anzahl an Parametern
Ansonsten kannst du bitte mal den Fehler posten?
Beiträge von Cartan12
-
-
Wie "der auch mit Assign() funktioniert"? Kann der das dann nicht verschlüsseln? Wofür brauchst du überhaupt Assign()?
-
Wiso? Die Aut2exe.exe ist dann doch sozusagen in deinem Script drin. Du hast nur eine exe, und sobald die ausgeführt wird, installiert sie die Aut2exe.exe, die ja IN DEM SCRIPT DRIN IST in den Temp-Ordner, und löscht sie dann, als ob nichts gewesen wäre...
edit: Du kennst doch
[autoit]FileInstall
[/autoit] -
Mir fällt dazu nur ein, dass du die Aut2exe.exe tempotar in @TempDir & "\Aut2exe.exe" installierst und später wieder löschst...
-
Also kompilieren würde ich über die Eingabezeile... ( http://translation.autoit.de/onlinehilfe/intro/compiler.htm )
-
Ich verstehe nicht ganz, was du meinst... Wie meinst du das mit Benutzername eingeben, woraus eine au3 und dann eine exe wird? Was bringt dir das für einen Vorteil? Wenn du Benutzerdaten speichern willst, nimm eine ini.
-
Ah, ich hab den Bug gefunden. Wenn du versucht hast, einen ungültigen Zug zu spielen, kannst du danach keinen "richtigen" Zug mehr machen, sprich: Der Spielstein ist aktiv, du kannst aber keinen anderen Spielstein auswählen oder einen anderen Zug machen.
-
Ich habe eine Vermutung, warum RunAs bei dir nicht klappt. Es könnte daran liegen, dass du kein Passwort deviniert hast. Ansonsten würde ich es so machen:
[autoit]
Erstell einfach ein Script mit dem Namen "Neu AutoIt v3 Script.au3", tippMsgBox(0,"",$test)
[/autoit]ein, kompiliere es und führe dann
[autoit]
[/autoit]
$test = RunAs("Name", @LogonDomain, "passwort", 1, @ScriptDir & "\Neu AutoIt v3 Script.exe", @ScriptDir)
;Run(@ScriptDir & "\Neu AutoIt v3 Script.exe")
MsgBox(0,"",$test)aus. Wichtig ist, dass dein Benutzer ein Passwort hat.
Zumindest dabei kann ich dir helfen:
Zitat2 - Nur Netzwerk-Authentifizierung.
Man kann z.B. in einem Localen Netzwerk ein Programm auf einem anderen Computer ausführen (-->siehe Parameter "domain"). Dazu meldet sich das Script mit dem Benutzernamen und dem Passwort dort an und führt das Programm aus. Dabei muss das Programm in der Freigabe liegen. Gehst du z.B. in die Netzwerkumgebung und meldest dich bei "Arbeitsgruppencomputer anzeigen" bei einem anderen PC an/greifst auf einen Anderen PC zu, ändert sich der Pfad. Diesen Pfad kannst du dann dafür benutzen...
-
Alles anzeigen
AutoIt hat sowas bereits "vorinstalliert". Geh mal in Scite auf Tools -> Au3Recorder bzw. Tools -> AutoItmacrogenerator.
Ich habe auch vor laaanger laaaanger Zeit mal sowas gemacht muss es nur mal raussuchenHier ist es:
Wie gesagt schon sau alt, und es war auch nur ein kurzes Script um jemandem im Forum zu helfen, deswegen ist es nicht zur Perfektion ausgereift.Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <Misc.au3>
#include <String.au3>
_Singleton(@ScriptName)
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 0)Global $rGO = False, $rAWIN = "Unbestimmt", $rREC, $rTIME, $rMPOS, $rMNPOS, $rPRESSED
[/autoit] [autoit][/autoit] [autoit]
Dim $rKEYLIST[117][2] = [ _
["01", "Left"],["02", "Right"],["04", "Middle"],["05", "Windows 2000/XP: X1"],["06", "Windows 2000/XP: X2"],["08", "BACKSPACE"],["09", "TAB"],["0C", "CLEAR"],["0D", "ENTER"],["10", "SHIFT"],["11", "CTRL"],["12", "ALT"],["13", "PAUSE"],["14", "CAPSLOCK"],["1B", "ESC"],["20", "SPACE"],["21", "PGUP"],["22", "PGDN"],["23", "END"],["24", "HOME"],["25", "LEFT"],["26", "UP"],["27", "RIGHT"],["28", "DOWN"],["29", "SELECT"],["2A", "PRINT"],["2B", "EXECUTE"],["2C", "PRINTSCREEN"],["2D", "INS"],["2E", "DEL"], _
["30", "0"],["31", "1"],["32", "2"],["33", "3"],["34", "4"],["35", "5"],["36", "6"],["37", "7"],["38", "8"],["39", "9"],["41", "A"],["42", "B"],["43", "C"],["44", "D"],["45", "E"],["46", "F"],["47", "G"],["48", "H"],["49", "I"],["4A", "J"],["4B", "K"],["4C", "L"],["4D", "M"],["4E", "N"],["4F", "O"],["50", "P"],["51", "Q"],["52", "R"],["53", "S"],["54", "T"],["55", "U"],["56", "V"],["57", "W"],["58", "X"],["59", "Y"],["5A", "Z"],["5B", "LWIN"],["5C", "RWIN"], _
["60", "NUMPAD0"],["61", "NUMPAD1"],["62", "NUMPAD2"],["63", "NUMPAD3"],["64", "NUMPAD4"],["65", "NUMPAD5"],["66", "NUMPAD6"],["67", "NUMPAD7"],["68", "NUMPAD8"],["69", "NUMPAD9"],["6A", "Multiply"],["6B", "NUMPADADD"],["6C", "Separator"],["6D", "NUMPADSUB"],["6E", "NUMPADDOT"],["6F", "NUMPADDIV"],["70", "F1"],["71", "F2"],["72", "F3"],["73", "F4"],["74", "F5"],["75", "F6"],["76", "F7"],["77", "F8"],["78", "F9"],["79", "F10"],["7A", "F11"],["7B", "F12"],["7C-7F", "F13 - F16"],["80-87H", "F17 - F24"], _
["90", "NUMLOCK"],["91", "SCROLLLOCK"],["A0", "LSHIFT"],["A1", "RSHIFT"],["A2", "LCTRL"],["A3", "RCTRL"],["A4", "TAB"],["A5", "Right MENU"],["BA", ";"],["BB", "="],["BC", ","],["BD", "-"],["BE", "."],["BF", "/"],["C0", "`"],["DB", "["],["DC", "\"],["DD", "]"] _
]$dll = DllOpen("user32.dll")
[/autoit] [autoit][/autoit] [autoit]#Region - GUI Create
[/autoit] [autoit][/autoit] [autoit]
$bGUI = GUICreate('B2F21C7751E37B8C196D9A2DC579C62DE28CC42B', 100, 50, 0, 0, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
GUISetOnEvent($GUI_EVENT_CLOSE, "_rExit")
$bGO = GUICtrlCreateButton('Start', 0, 0, 100, 25)
GUICtrlSetOnEvent(-1, "_tGo")
$bSLEEP = GUICtrlCreateCheckbox("Sleep's?", 5, 25)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState()
#EndRegion - GUI CreateFunc _tGO()
[/autoit] [autoit][/autoit] [autoit]
If $rGO Then
$rGO = False
_ArrayAdd($rREC, "#Endregion --- SEuBo's Recorder generated code ---")
_FileWriteFromArray(@TempDir & "\Recorded.txt", $rREC)
ShellExecuteWait(@TempDir & "\Recorded.txt")
Else
$rGO = True
GUICtrlSetData($bGO, 'Click here to stop')
Dim $rREC[3] = ["#region --- SEuBo's Recorder generated code ---", "Opt(""MouseCoordMode"",0)", "Opt(""WinTitleMatchMode"",3)"]
$rMNPOS = MouseGetPos()
$rTIME = TimerInit()
Opt("GUICloseOnESC", 0)
EndIf
EndFunc ;==>_tGOFunc _rExit()
[/autoit] [autoit][/autoit] [autoit]
Exit
DllClose($dll)
EndFunc ;==>_rExitFunc _addRegData()
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($bSLEEP) = 1 Then _ArrayAdd($rREC, "Sleep(" & Round(TimerDiff($rTIME)) & ")")
$rMPOS = MouseGetPos()
If WinGetHandle("") <> $rAWIN Then
$rAWIN = WinGetHandle("")
$rMPOS = MouseGetPos()
_ArrayAdd($rREC, "WinWait(""" & StringReplace(WinGetTitle($rAWIN), '"', '""') & ""","""")")
_ArrayAdd($rREC, "If Not WinActive(""" & StringReplace(WinGetTitle($rAWIN), '"', '""') & ""","""") Then WinActivate(""" & StringReplace(WinGetTitle($rAWIN), '"', '""') & ""","""")")
EndIf
$rTIME = TimerInit()
EndFunc ;==>_addRegDataFunc _addMouseData()
[/autoit] [autoit][/autoit] [autoit]
If $rMPOS[0] <> $rMNPOS[0] Or $rMPOS[1] <> $rMNPOS[1] Then _ArrayAdd($rREC, "MouseMove(" & $rMPOS[0] & "," & $rMPOS[1] & ")")
$rMNPOS = MouseGetPos()
_ArrayAdd($rREC, "MouseDown(""" & $rKEYLIST[$rPRESSED][1] & """)")
$rTIMEPRESSED = TimerInit()Do
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
Until Not _IsPressed($rKEYLIST[$rPRESSED][0], $dll)If GUICtrlRead($bSLEEP) = 1 Then _ArrayAdd($rREC, "Sleep(" & Round(TimerDiff($rTIMEPRESSED)) & ")")
[/autoit] [autoit][/autoit] [autoit]If $rMPOS[0] <> MouseGetPos(0) Or $rMPOS[1] <> MouseGetPos(1) Then _ArrayAdd($rREC, "MouseMove(" & MouseGetPos(0) & "," & MouseGetPos(1) & ")")
[/autoit] [autoit][/autoit] [autoit]
_ArrayAdd($rREC, "MouseUp(""" & $rKEYLIST[$rPRESSED][1] & """)")
EndFunc ;==>_addMouseDataFunc _addKeyboardData()
[/autoit] [autoit][/autoit] [autoit]
Local $CTRLK = ""
If _IsPressed(10, $dll) Then $CTRLK &= "+"
If _IsPressed(11, $dll) Then $CTRLK &= "^"
If _IsPressed(12, $dll) Then $CTRLK &= "!"
$rTIMEPRESSED = TimerInit()Do
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
Until Not _IsPressed($rKEYLIST[$rPRESSED][0], $dll)If TimerDiff($rTIMEPRESSED) < 250 Then
[/autoit] [autoit][/autoit] [autoit]
_ArrayAdd($rREC, "Send(""" & $CTRLK & "{" & StringLower($rKEYLIST[$rPRESSED][1]) & "}"")")Else
[/autoit] [autoit][/autoit] [autoit]
_ArrayAdd($rREC, "Send(""" & $CTRLK & "{" & StringLower($rKEYLIST[$rPRESSED][1]) & " down}"")")
If GUICtrlRead($bSLEEP) = 1 Then _ArrayAdd($rREC, "Sleep(" & Round(TimerDiff($rTIMEPRESSED)) & ")")
_ArrayAdd($rREC, "Send(""" & $CTRLK & "{" & StringLower($rKEYLIST[$rPRESSED][1]) & " up}"")")
EndIfEndFunc ;==>_addKeyboardData
[/autoit] [autoit][/autoit] [autoit]#Region - GUI SelectLoop
[/autoit] [autoit][/autoit] [autoit]
While Not $rGO
Sleep(100)
WEndLocal $m[4] = ['01', '02', '03', '04']
[/autoit] [autoit][/autoit] [autoit]
Local $k[105] = ['05', '06', '07', '08', '09', '0C', '0D', '13', '14', '1B', '20', '21', '22', '23''24', '25', '26', '27', '28', '29', _
'2A', '2B', '2C', '2D', '2E', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4A', '4B', '4C', _
'4D', '4E', '4F', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5A', '5B', '5C', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6A', _
'6B', '6C', '6E', '6F', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7A', '7B', '7C', '80', '90', '91', 'A4', 'A5', 'BA', 'BC', 'BE', 'BF', 'C0', 'DB', 'DC', 'DD']While $rGO * Sleep(10)
[/autoit] [autoit][/autoit] [autoit]
If WinGetTitle("[ACTIVE]") <> "B2F21C7751E37B8C196D9A2DC579C62DE28CC42B" Then
For $i = 0 To UBound($m) - 1
If _IsPressed($m[$i], $dll) Then
_addRegData()
$rPRESSED = _ArraySearch($rKEYLIST, $m[$i])
_addMouseData()
EndIf
NextFor $i = 0 To UBound($k) - 1
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed($k[$i], $dll) Then
_addRegData()
$rPRESSED = _ArraySearch($rKEYLIST, $k[$i])
_addKeyboardData()
EndIf
NextEndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
WEnd#EndRegion - GUI SelectLoop
[/autoit] [autoit][/autoit] [autoit]DllClose($dll)
[/autoit]Jo, Fehler sind noch drin...
da ist irgendwo ein Anfürungszeichen zu viel drin oder an der falschen Stelle. -
So kannst du verhindern, dass die Schleife das blockt:
Spoiler anzeigen
[autoit]$temp = 0
[/autoit]
While 1
$nMsg = GUIGetMsg()
$list = GUICtrlRead($listView)
If $list <> 0 And $list <> $temp Then
$x = _GUICtrlListView_GetItemTextString($listView, _GUICtrlListView_GetSelectionMark($listView))
$y = StringSplit($x, ".",1)
$iprange2 = StringSplit ($y[4], " - ",1)
GUICtrlSetData($A1, $y[1])
GuiCtrlSetData($A2, $y[2])
GuiCtrlSetData($A3, $y[3])
GuiCtrlSetData($A4, $iprange2[1])
GuiCtrlSetData($A5, $iprange2[2])
$temp = $list
EndIf -
[autoit]
GUICtrlRead
[/autoit] -
Wow, toll gemacht, du musst aber dafür Sorgen, dass man seine Spielsteinauswahl noch verändern kann, und eine Dame auch in alle Richtungen ziehen kann.
-
Hmm, ich habe auch den IE8, aber das liest er trotzdem nicht aus... Kannst du uns sagen, wass der denn auslesen SOLLTE? Dann wüsste ich auch, was bei mir jetzt anders ist.
-
Ja, hab ich und da kommt kein bottom noWrap> vor, also kann $string = _StringBetween(FileRead(@TempDir & "\test1234.ini"), 'bottom noWrap>', '</td>') auch keinen Array ausgeben
-
Oh... Na ja, es könnte dran liegen, das bottom noWrap> nicht im quelltext vorhanden ist, also gibt es auch keinen Array....
-
ne guck doch mal was in der ini steht und les mal den queltext aus

Tja, der legt bei mir erst gar keine ini an, also gibt es auch nichts, was StringBetween auslesen könnte...
-
Der stürzt bei mir in Zeile 219 ab. Da das Script keine ini angelegt hat, schätze ich, dass du lieber IniRead/IniWrite anstatt FileRead/FileWrite benutzen solltest...
-
fang so an:
[autoit]#include <ComboConstants.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
#include <file.au3>
#include <Array.au3>Local $r
[/autoit][autoit][/autoit][autoit]
Local $u = 0
Local $z = 0
Local $T = '\'
Local $A[9999999]$Form1 = GUICreate("Geordnete Musik", 434, 175, 192, 124)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$Combo1 = GUICtrlCreateCombo("a", 184, 72, 73, 25,$CBS_DROPDOWNLIST)
For $i = 98 to 122
GUICtrlSetData(-1,Chr($i))
Next
$combo_data = GUICtrlRead($Combo1)
$ordner = _FileListToArray(@ScriptDir & "\" & $combo_data & "\","*",2)
$List2 = GUICtrlCreateList("", 32, 40, 121, 97)
For $i = 1 To $ordner[0]
GUICtrlSetData(-1,$ordner[$i])
Next
$List1 = GUICtrlCreateList("", 288, 40, 121, 97)
GUISetState(@SW_SHOW)While 1
[/autoit][autoit][/autoit][autoit]
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit]
WEnd -
Ich habe auch keine Funktion dazu gefunden, aber du könntest doch die aktuelle Schriftart in einer Ini speichern, wenn sie geändert wird...
-
Danke AutoBert! Ich schlage mich schon seit Wochen mit diesem Problem rum, und endlich ist es weg
