Könntest du auch evtl eine Portable Version machen?
Beiträge von DeepRed92
-
-
So läuft es etwas besser:
Spoiler anzeigen
[autoit]$Source = FileRead(@ScriptDir&"\Plug-In.au3")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]_RunPlugIn($Source)
[/autoit] [autoit][/autoit] [autoit]; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _RunPlugIn
; Description ...: Führt einen Plug-In aus
; Syntax.........: _RunPlugIn($Source)
; Parameters ....: $Source - Source in AutoIt
; Author ........: Burak Keskin <[email='Burak.keskin@arcor.de'][/email]>
; ===============================================================================================================================
Func _RunPlugIn($Source)
Local $Timer, $Loop, $Real_Timer
$Split = StringSplit($Source, @CRLF)
For $NextLoop1 = 1 To $Split[0]
If Not $Split[$NextLoop1] = "" Then
$Split2 = StringSplit($Split[$NextLoop1], "=")
$Split3 = StringSplit($Split[$NextLoop1], " ")
$Split4 = StringSplit($Source, @CRLF)
If $Split3[1] <> "For" Then
If $Split2[0] > 1 Then
Assign(StringTrimLeft(StringTrimRight($Split2[1], 1), 1), Execute(StringTrimLeft($Split2[2], 1)))
ElseIf $Split2[0] = 1 Then
Execute($Split[$NextLoop1])
EndIf
ElseIf $Split3[1] = "For" Then
;~ $Lines = _GetLines($Split4)
$AllLines = $Split[0]
$VarName = $Split3[2]For $NextLoop2 = 1 To $AllLines
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If Not $Split[$NextLoop2] = "" Then
$Timer += 1
If StringInStr($Split[$NextLoop2], "For") Then
$StartLoop_Line = $Timer
$Real_StartLoop_Line = $NextLoop2
EndIf
If StringInStr($Split[$NextLoop2], "Next") Then
$EndLoop_Line = $Timer
$Real_EndLoop_Line = $NextLoop2
ExitLoop
EndIf
EndIf
Next
$StartLoop_Line += 1
$EndLoop_Line -= 1
Assign(StringTrimLeft($VarName, 1), $Split3[4])
For $Loop = $Split3[4] To $Split3[6]
For $NextLoop3 = $StartLoop_Line To $EndLoop_Line
Execute(_ReadLine($Split, $NextLoop3))
;~ MsgBox(0,"",$Split3[0])
Next
Next
;~ For $Loop = $Split3[4] To $Split3[6]
;~ For $NextLoop3 = $StartLoop_Line To $EndLoop_Line
;~ Execute(_ReadLine($Split4, $NextLoop3))
;~ Next
;~ Next
;~ MsgBox(0,"",$Split3[4])
EndIf
EndIf
Next
EndFunc ;==>_RunPlugInFunc _GetLines($Value)
[/autoit] [autoit][/autoit] [autoit]
Local $Lines
For $NextLoop = 1 To $Value[0]
If Not $Value[$NextLoop] = "" Then
$Lines += 1
EndIf
Next
Return $Lines
EndFunc ;==>_GetLinesFunc _ReadLine($Value, $Line)
[/autoit]
Local $Lines = ""
For $NextLoop = 1 To $Value[0]
If Not $Value[$NextLoop] = "" Then
$Lines += 1
If $Lines = $Line Then
Return $Value[$NextLoop]
ExitLoop
EndIf
EndIf
Next
EndFunc ;==>_ReadLineEdit: Es führt nur die ersten 2 Schleifen korrekt aus und bei der 3. wird nur eine 5 eingetragen.
-
Hallo,
ich hab einen Programm geschrieben, mit den nun die Besitzer von USB Sticks endlich die Ordnericons beliebig verändern können.
Man kann es vom Kontextmenü des Explorers starten. Source & Exe sind im Anhang.Info:
Beim start des Scriptes wird folgendes in die Registry geschrieben:
HKEY_CLASSES_ROOT\Folder\shell\Ordnericon ändern\command\
Das wird aber nach dem start der Datei Uninstall.bat wieder gelöscht. -
Weiß denn keiner wie man es nur mit den For & Next - Schleifen machen könnte?

-
Damit gehts 100%-ig:
[autoit]Func _PickIconDlg($sFileName, $nIconIndex = 0, $hWnd = 0)
[/autoit][autoit][/autoit][autoit]
Local $nRet, $aRetArr[2]$nRet = DllCall("shell32.dll", "int", "PickIconDlg", _
[/autoit][autoit][/autoit][autoit]
"hwnd", $hWnd, _
"wstr", $sFileName, "int", 1000, "int*", $nIconIndex)If Not $nRet[0] Then Return SetError(1, 0, -1)
[/autoit][autoit][/autoit][autoit]$aRetArr[0] = $nRet[2]
[/autoit][autoit][/autoit][autoit]
$aRetArr[1] = $nRet[4]Return $aRetArr
[/autoit]
EndFunc ;==>_PickIconDlg -
Zitat von Schnuffel
wie kommst Du an diesen Dialog
(ist das Vista?)Wenn man mit der rechten Maustaste auf einem Ordner klickt, befindet sich unter Eigenschaften das Tab "Anpassen" und dann auf "anderes Symbol" klicken (Nein das ist WinXp).
Zitat von FischIch glaube das könnte dir helfen:
Icon Auswählen-Dialog
Das kenn ich schon. Habs damit schon versucht, aber ab der 3. Seite stimmen die ausgewälten Icons nicht. Wähle ich z.b. Icon -71 aus (Textdatei), bekomme ich das Icon "unbekanntes Dateiformat" zurück. -
Ja schon aber man kann dort keinen Icon auswählen.
-
Hallo,
wie kann man mit AutoIt diesen Dialog aufrufen?
[Blockierte Grafik: http://download.lima-city.de/deepred/Bilder/133746578738606574.jpg]
-
Danke für die Hilfe.
ZitatAber ich warne schonmal vor... wenn du vorhast, das in ein Script von dir zu schreiben und das online postest, musst du vorher groß und sichtbar davor >warnen<, dass Änderungen an der registry vorgenommen werden.. im englischen Forum gabs deswegen schon Aufstände

Ok. Merk ich mir
. -
Zitat
Achso also Soundplac ins i-net
Ja. Aber halt nur mit dem wmp.
Sithlord95: Ich kann den Sender rpr1leider nicht einbauen, weil der Link einen Hashcode enthält. Dadurch kann man den Link nur ca. 3x benutzen. So sehen die Links aus:
http://lsd.newmedia.tiscali-business.com/bb/redirect.ls…media=ms&token= ef4a22049b7159ceb646b548236bd587
-
Hallo,
wenn man auf einem Ordner mit der rechten Maustaste klickt wird ja ein Menü angezeigt. Wie kann ich dort einen eigenen Eintrag mit Autoit machen?
-
Schau dir mal Stringsplit und die Forschleifen an. Damit sollte es gehen.
-
Ich würde sagen das Programm selbst ist legal aber die nutzung wohl eher weniger
. -
Hallo,
ich habe mal einen Ini zu AutoIt Konverter geschrieben.
Funktion:
Es liest eine Ini-Datei aus und generiert damit einen Au3 Code. Es kann z.b. dazu dienen die Standardeinstellungen in einem
Programm wiederherzustellen. Es sind folgende Einstellungsmöglichkeiten enthalten:
Die Variablenamen lassen sich verändern und der Speicherort.Source und Kompliertes Script ist in der Zip-Datei enthalten.
Ich hoffe es funktioniert reibungslos.

-
Ja stimmt. Man kann die While- Schleifen auch Parallel abarbeiten lassen.
Also ich hab jetzt mal versucht es mit den Next-Schleifen irgendwie zu schaffen. Sieht zwar nicht so Professionell aus aber darum kann man sich später kümmern:
Spoiler anzeigen
[autoit]$Source = 'For $Loop = 1 To 10' & @CRLF _
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
& 'MsgBox(0,"",$Loop)' & @CRLF _
& 'Next'_RunPlugIn($Source)
[/autoit] [autoit][/autoit] [autoit]; #FUNCTION# ====================================================================================================================
[/autoit]
; Name...........: _RunPlugIn
; Description ...: Führt einen Plug-In aus
; Syntax.........: _RunPlugIn($Source)
; Parameters ....: $Source - Source in AutoIt
; Author ........: Burak Keskin <[email='Burak.keskin@arcor.de'][/email]>
; ===============================================================================================================================
Func _RunPlugIn($Source)
$Split = StringSplit($Source, @CRLF)
For $NextLoop = 1 To $Split[0]
If Not $Split[$NextLoop] = "" Then
$Split2 = StringSplit($Split[$NextLoop], "=")
$Split3 = StringSplit($Split[$NextLoop], " ")
If $Split2[0] > 1 Then
Assign(StringTrimLeft(StringTrimRight($Split2[1], 1), 1), Execute(StringTrimLeft($Split2[2], 1)))
EndIf
If $Split2[0] = 1 Then
Execute($Split[$NextLoop])
EndIf
If $Split3[1] = "For" Then ;For/Next - Schleife
$Loop2 = ""
$VarName = $Split3[2]
$VarName2 = "Loop2"
$NextLoop = True
$VarName = StringTrimLeft($VarName, 1)
$Loop1 = Assign($VarName, $Split3[3])
Assign($VarName2, $Split3[6])
$Zeilen = ""
For $Split[$NextLoop] = 1 To $Split[0]
If Not $Split[$Split[$NextLoop]] = "" Then
$Zeilen = $Zeilen + 1
EndIf
If $Split[$Split[$NextLoop]] = "Next" Then
ExitLoop
EndIf
Next
$Zeilenstart = $Zeilen - $Zeilen + 2
$Zeilenend = $Zeilen - 1
For $NextLoop2 = $Loop1 To $Loop2
For $NextLoop3 = $Zeilenstart To $Zeilenend + 1
If Not $Split[$NextLoop3 + 1] = "" Then
Assign($VarName, $NextLoop2)
Execute($Split[$NextLoop3 + 1])
Else
EndIf
Next
Next
EndIf
EndIf
Next
EndFunc ;==>_RunPlugInAber irgendwie stimmt da etwas nicht so richtig und ich weiß nicht woran das liegen könnte :pinch: .
Die Msgboxen werden 1x zu oft angezeigt. -
Ich hab hier noch eine Primzahl UDF:
[autoit]Func IsPrime2($iValue)
[/autoit]
Switch IsNumber($iValue)
Case False
$iValue = Number($iValue)
EndSwitch
Switch True
Case $iValue = 2
Return True
Case $iValue < 2 Or Mod($iValue,2) = 0 Or IsFloat($iValue)
Return False
EndSwitch
$maxTest = Floor(Sqrt($iValue))
For $i = 3 To $maxTest Step 2
If Mod($iValue, $i) = 0 Then Return False
Next
Return True
EndFunc ;==>IsPrime2 -
Ja das funktioniert gut. Aber so gehts auch:
[autoit]$Source = '$Form1 = GUICreate("Form1", 377, 160, 192, 124)' & @CRLF _
[/autoit][autoit][/autoit][autoit]
& '$Button1 = GUICtrlCreateButton("Button1", 0, 0, 75, 25, 0)' & @CRLF _
& '$Button2 = GUICtrlCreateButton("Button2", 0, 32, 75, 25, 0)' & @CRLF _
& '$Button3 = GUICtrlCreateButton("Button3", 0, 64, 75, 25, 0)' & @CRLF _
& '$Button4 = GUICtrlCreateButton("Button4", 0, 96, 75, 25, 0)' & @CRLF _
& '$Button5 = GUICtrlCreateButton("Button5", 0, 128, 75, 25, 0)' & @CRLF _
& '$Edit1 = GUICtrlCreateEdit("", 80, 0, 289, 153)' & @CRLF _
& 'GUISetState(@SW_SHOW, $Form1)' & @CRLF _
& '$x = InputBox("Hallo", "Irgendwas")' & @CRLF _
& 'GUICtrlSetData($Edit1, $x)' & @CRLF _
& 'Sleep(3000)' & @CRLF _
& '$Form2 = GUICreate("Form2", 700, 700)' & @CRLF _
& 'GUISetState(@SW_SHOW, $Form2)' & @CRLF _
& 'WinSetOnTop($Form2, "", 1)' & @CRLF _
& 'GUIDelete($Form1)' & @CRLF _
& 'WinSetOnTop($Form2, "", 0)' & @CRLF _
& 'Sleep(1000)' & @CRLF _
& 'GUIDelete($Form2)' & @CRLF _
& 'MsgBox(0, "", "Ende")' & @CRLF __RunPlugIn($Source)
[/autoit][autoit][/autoit][autoit]; #FUNCTION# ====================================================================================================================
[/autoit]
; Name...........: _RunPlugIn
; Description ...: Führt einen Plug-In aus
; Syntax.........: _RunPlugIn($Source)
; Parameters ....: $Source - Source in AutoIt
; Author ........: Burak Keskin <[email='Burak.keskin@arcor.de'][/email]>
; ===============================================================================================================================
Func _RunPlugIn($Source)
$Split = StringSplit($Source, @CRLF)
For $NextLoop = 1 To $Split[0]
If Not $Split[$NextLoop] = "" Then
$Split2 = StringSplit($Split[$NextLoop], "=")
If $Split2[0] > 1 Then
Assign(StringTrimLeft(StringTrimRight($Split2[1], 1), 1), Execute(StringTrimLeft($Split2[2], 1)))
ElseIf $Split2[0] = 1 Then
Execute($Split[$NextLoop])
EndIf
EndIf
Next
EndFunc ;==>_RunPlugInWie mache ich da nun For -Next Schleifen rein?
-
-
Ja so gehts auch, aber wie macht man es ohne die AutoIt3.exe?
-
Weil es eine Schleife auslesen soll. Z.b: Ich habe eine Textdatei, wo drinne steht:
While 1
WendWie kann ich dies ausführen? Mit Execute müsste es ja irgendwie gehen oder kann man das auch anders machen?