_ChooseColor ist eh spartanisch umgesetzt... die API unterstützt das Festlegen von benutzerdefinierten Farben (bis zu 16), doch die Funktion leider nicht. Deshalb hatte ich ja mal eine _ChooseColorEx geschrieben... die das kann.
Beiträge von Bitnugger
-
-
Hier zwei Bsp.:
AutoIt
Alles anzeigen;-- TIME_STAMP 2021-04-24 19:00:24 v 0.1 Opt('MustDeclareVars', 1) #include <GUIConstantsEx.au3> #include <GuiMenu.au3> Global $g_idMemo Example1() Example2() Func Example1() Local $hWnd, $hMain, $iCmdID, $hMenu_save ; Open Notepad Run("notepad.exe") WinWaitActive("[CLASS:Notepad]") $hWnd = WinGetHandle("[CLASS:Notepad]") $hMain = _GUICtrlMenu_GetMenu($hWnd) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMain = ' & $hMain & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console $iCmdID = _GUICtrlMenu_GetItemID ( $hMain, 4) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iCmdID = ' & $iCmdID & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console Sleep(1000) ; Remove Help menu $hMenu_save = _GUICtrlMenu_GetItemSubMenu($hMain, 4) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Remove Help menu : ' & _GUICtrlMenu_RemoveMenu($hMain, 4) & ' - $hMenu_save = ' & $hMenu_save & @CRLF) Sleep(2000) ; Restore Help menu _GUICtrlMenu_InsertMenuItem($hMain, 4, "&New Help", $iCmdID, $hMain) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Restore Help menu : ' & _GUICtrlMenu_SetItemSubMenu($hMain, 4, $hMenu_save) & @CRLF) _GUICtrlMenu_SetMenu($hWnd, $hMain) EndFunc ;==>Example1 Func Example2() Local $hGUI, $hFile, $hEdit, $hHelp, $hMain, $idRestore Local Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $e_idExit, $e_idCut, $e_idCopy, $e_idPaste, $e_idAbout ; Create GUI $hGUI = GUICreate("Menu", 400, 300) ; Create File menu $hFile = _GUICtrlMenu_CreateMenu() _GUICtrlMenu_InsertMenuItem($hFile, 0, "&New", $e_idNew) _GUICtrlMenu_InsertMenuItem($hFile, 1, "&Open", $e_idOpen) _GUICtrlMenu_InsertMenuItem($hFile, 2, "&Save", $e_idSave) _GUICtrlMenu_InsertMenuItem($hFile, 3, "", 0) _GUICtrlMenu_InsertMenuItem($hFile, 4, "E&xit", $e_idExit) ; Create Edit menu $hEdit = _GUICtrlMenu_CreateMenu() _GUICtrlMenu_InsertMenuItem($hEdit, 0, "&Cut", $e_idCut) _GUICtrlMenu_InsertMenuItem($hEdit, 1, "C&opy", $e_idCopy) _GUICtrlMenu_InsertMenuItem($hEdit, 2, "&Paste", $e_idPaste) ; Create Help menu $hHelp = _GUICtrlMenu_CreateMenu() _GUICtrlMenu_InsertMenuItem($hHelp, 0, "&About", $e_idAbout) ; Create Main menu $hMain = _GUICtrlMenu_CreateMenu() _GUICtrlMenu_InsertMenuItem($hMain, 0, "&File", 0, $hFile) _GUICtrlMenu_InsertMenuItem($hMain, 1, "&Edit", 0, $hEdit) _GUICtrlMenu_InsertMenuItem($hMain, 2, "&Help", 0, 0) ; Set window menu _GUICtrlMenu_SetMenu($hGUI, $hMain) ; Create memo control $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 249);, 0) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $idRestore = GUICtrlCreateButton('Remove Help menu', 2, 252, 396, 26) GUICtrlSetBkColor($idRestore, 0x00AAFF) GUISetState(@SW_SHOW) ; Get/Set Help menu MemoWrite("Get Help submenu handle : " & _GUICtrlMenu_GetItemSubMenu($hMain, 2)) _GUICtrlMenu_SetItemSubMenu($hMain, 2, $hHelp) MemoWrite("Get Help submenu handle : " & _GUICtrlMenu_GetItemSubMenu($hMain, 2) & @CRLF) #Region - GUI SwitchLoop While True Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $idRestore Local $sRestore = GUICtrlRead($idRestore) Switch $sRestore Case 'Remove Help menu' MemoWrite("Remove Help menu : " & _GUICtrlMenu_RemoveMenu($hMain, 2) & @CRLF) GUICtrlSetBkColor($idRestore, 0xFFAA00) GUICtrlSetData($idRestore, 'Restore Help menu') Case 'Restore Help menu' MemoWrite("Insert Main Help menu : " & _GUICtrlMenu_InsertMenuItem($hMain, 2, "&Help", 0, 0)) MemoWrite("Restore Help menu handle: " & _GUICtrlMenu_SetItemSubMenu($hMain, 2, $hHelp)) MemoWrite("Get Help submenu handle : " & _GUICtrlMenu_GetItemSubMenu($hMain, 2)) MemoWrite("Update Main menu : " & _GUICtrlMenu_SetMenu($hGUI, $hMain) & @CRLF) GUICtrlSetData($idRestore, 'Remove Help menu') GUICtrlSetBkColor($idRestore, 0x00AAFF) EndSwitch EndSwitch WEnd #EndRegion EndFunc ;==>Example2 ; Write message to memo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite -
Hier noch zwei Anmerkungen zu Ini:
IniEx.au3 (INI File Processing Functions) solve many problems, such as the limits of AutoIt Default INI function, and add many other options, since all function work by reference so IniEx.au3 also use less memory, and provide a really good performance in speed
Total Commander macht es mit den Sektionen z.B. so:
-
-
Der TimeStamp macht bei einigen Dateierweiterungen Probleme, wenn er in der ersten Zeile ist... z.B.: *.py
Um in Python 2.x Source files utf-8 zu verwenden, genügt es folgenden Teil ganz oben in den Header der Datei zu platzieren:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Anschließend ist es möglich ganz normal utf-8 zu verwenden:
test = 'äöüß'
uu = test.decode('utf8')
string = uu.encode('cp1250')
print(string)
Wichtig: Unter Python 3 ist dies nicht mehr erforderlich, da es dort das Standard Encoding ist.
-
Da geht, zumindest bei mir die "MPDF_UDF.au3" nur mit einer älteren Version von Autoit.
Ist aber doch ein Klacks, die so umzuschreiben, dass sie mit der aktuellen Version läuft... s. Anhang.
-
-
Falls es dir nicht zu viel Umstände bereitet: könntest du das Tool mal abschalten und nochmals testen?
Habe es nun schon min. 12x laufen lassen... doch bis dato ist es nur 1x passiert... beim ersten Start.
Solange der Fehler auch mit dem Tool nicht mehr auftritt, macht es ja keinen Sinn, es zu deaktivieren... und nein, macht keine Umstände, sind nur ein paar Klicks.
-
Hmm, die Aussage ist aber gewagt. Irgendwie muss das Tool ja sich in die CMD Fenster einklinken und entsprechend reagieren.
Für die zusätzlichen Buttonbar-Windows überwacht DisplayFusion die Position der Windows, die eine Titelbar haben. Ändert sich eine Position, wird das zugehörige Buttonbar-Windows entsprechend verschoben. Mehr passiert nicht mit den Windows. Falls gewünscht, kann man das Erzeugen eines zusätzlichen Buttonbar-Windows für bestimmte Fenster aber auch unterbinden... FireFox ist in der Liste schon vordefiniert.
Ist das immer nach dem 3. Song?
Habe es nun schon min. 12x laufen lassen... doch bis dato ist es nur 1x passiert... beim ersten Start.
Schön wäre noch einem Counter, der anzeigt, wie viele Songs bereits abgespielt wurden...
Heute habe ich dein Tool gestartet... und nach dem ~17 Song ist auf einmal nur noch Stille... kommt nichts mehr... aber (das Wichtigste) der Ball dreht sich noch.

-
Was ist das für ein Tool, dass sich in das CMD Fenster einklinkt?
DisplayFusion... daran liegt es aber sicher nicht, denn da wird nur was ausgelöst, wenn ich einen der Buttons anklicke.
Fenster auf Titelleiste reduzieren, Fenster auf nächsten Monitor verschieben, Fenster immer im Vordergrund halten, Einstellungen (DisplayFusion) öffnen
-
Radio Station amigaremix.com.exe
Nach dem 3. Song ist der Ball weg und ich sehe nur noch ein schwarzes Rechteck... nach dem 4. ist auch das weg... Win 10 X64.
-
Alle BürgerInnen werden auf freiwilliger Basis dazu verpflichtet, sich eine zweite Nase wachsen zu lassen.
Die dann aber vorzugsweise auch gut im Gesicht platziert sein sollte, da ja sonst die Maske evtl. nicht passt... anderfalls muss halt eine zweite Maske her... eine Nase-Schutz-Maske.
Frage mich eh, wieso Mund und Nase schützen, wenn die Maske doch die Verbreitung von Corona eindämmen soll.
Ich würde mir lieber einen zweiten Mund wachsen lassen...

-
"Wäre es für Jos ohne großen Aufwand möglich, diesen Fix einzubauen ?"
Wenn ich es richtig verstanden habe, war luaL_register eine exportierte Funktion aus dem in SciTE verankerten Lua, die es in der aktuellen Lua-Version aber nicht mehr gibt.
Hier ist sicher in allen Fällen mehr als eine Zeile Code nötig, um luaL_register aus einer älteren Lua-Version mit einzupflegen... wobei noch zu klären wäre, ob die Funktion auch kompatibel mit der neuen Lua-Version ist.
-
-
Bei mir wird ein AutoIt-Script bei einem Doppelklick nicht in den dafür konfigurierten Editor geladen, sondern ausgeführt... das solltest du berücksichtigen.
HKCU vs. HKLM - so habe ich das für mich gespeichert:
Key aus HKCU wird verwendet, falls vorhanden, falls nicht, wird der aus HKLM verwendet. Ist in HKCU und HKLM kein Key, wird der Default-Wert verwendet.
-
Egal welche SciTE-Variante: "SciTEUser.properties" wird immer aus C:\Users\USER\AppData\Local geladen. Egal in welchem Unterordner sich die Datei befindet.
Ich denke mal, dies hilft dir weiter:
SciTE4AutoIt3.chm
Properties file
Much of SciTE's behaviour can be changed by editing the properties files.
There are four properties files used:
- Local properties file called "SciTE.properties" which may be present in the same directory as the file being edited.
- Directory properties file called "SciTEDirectory.properties" which may be present in the same or in a parent directory as the file being edited.
- User properties file called "SciTEUser.properties" on Windows and ".SciTEUser.properties" on GTK+.
- Global properties file called "SciTEGlobal.properties".
Settings in the local properties file override those in the directory properties file which overrides those in the user properties file which override those in the global properties files. Environment variables are also available as properties and these are overridden by an explicit setting in one of the properties files.
The directory properties file can be used as project options file
-
Eleganz liegt im Auge des Betrachters... ist also relativ.
Code
Alles anzeigenlocal hallo hallo = "\"\"C:/Program Files (x86)/AutoIt3/autoit3.exe\" /ErrorStdOut /AutoIt3ExecuteLine \"ConsoleWrite('Hallo AutoIt' & @CRLF)\" > \"C:/code/lua/hallo.txt\"\"" print('+ '..hallo) --~ + ""C:/Program Files (x86)/AutoIt3/autoit3.exe" /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite('Hallo AutoIt' & @CRLF)" > "C:/code/lua/hallo.txt"" --~ Das hier finde ich z.B. elegant... hallo = string.format('""%s" /ErrorStdOut /AutoIt3ExecuteLine "%s" > "%s""', "C:/Program Files (x86)/AutoIt3/autoit3.exe", "ConsoleWrite('Hallo AutoIt' & @CRLF)", "C:/code/lua/hallo.txt") print('> '..hallo) --~ > ""C:/Program Files (x86)/AutoIt3/autoit3.exe" /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite('Hallo AutoIt' & @CRLF)" > "C:/code/lua/hallo.txt"" print(os.execute(hallo)) -
Aber AutoIt3ExecuteLine geht in die Hose:
Code--~ local hallo = "\"C:/Program Files (x86)/AutoIt3/autoit3.exe\" /ErrorStdOut /AutoIt3ExecuteLine \"ConsoleWrite('Hallo AutoIt' & @CRLF)\" > \"C:/code/lua/hallo.txt\"" -- -->> "C:/Program Files (x86)/AutoIt3/autoit3.exe" /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite('Hallo AutoIt' & @CRLF)" > "C:/code/lua/hallo.txt" local hallo = "\"\"C:/Program Files (x86)/AutoIt3/autoit3.exe\" /ErrorStdOut /AutoIt3ExecuteLine \"ConsoleWrite('Hallo AutoIt' & @CRLF)\" > \"C:/code/lua/hallo.txt\"\"" -- -->> ""C:/Program Files (x86)/AutoIt3/autoit3.exe" /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite('Hallo AutoIt' & @CRLF)" > "C:/code/lua/hallo.txt"" print(hallo) print(os.execute(hallo)) -
In der CMD kann ich folgenden Befehl ausführen:
Hiermit hast du dir quasi schon selbst die Antwort gegeben... wegen der Ausgabeumleitung mit ">".
AutoIt
Alles anzeigen;~ $sCmd = '"C:\Program Files (x86)\AutoIt3\autoit3.exe" /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite(""Hallo AutoIt"" & @CRLF)" > "C:\Users\BugFix\AppData\Local\Temp\execute_line_au3.txt"' $sCmd = @ComSpec & ' /c ""C:\Program Files (x86)\AutoIt3\autoit3.exe" /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite(""Hallo AutoIt"" & @CRLF)" > "C:\Users\BugFix\AppData\Local\Temp\execute_line_au3.txt""' Run($sCmd) Sleep(1000) ; Warten, bis Datei erstellt wurde... oder RunWait $TmpFile = @TempDir & '\execute_line_au3.txt' If FileExists($TmpFile) Then ConsoleWrite(FileRead($TmpFile) & @CRLF) FileDelete($TmpFile) Else ConsoleWrite('No File' & @CRLF) EndIf -
Vielleicht ist das mit der Objektlösung realisierbar.
Ja, ist es... hier die korrigierte und erweiterte Version von PsPadExt.au3
f:\AutoIt\AutoIt3_MyInclude\AutoItObject.au3
f:\Progdir\PSPad4AutoIt3\Script\VBScript\AutoItScriptExtension.vbs
f:\Progdir\PSPad4AutoIt3\PSPad4Au3\Au3 scripts\PsPadExt.au3
AutoIt: PsPadExt.au3
Alles anzeigen;-- TIME_STAMP 2021-02-27 15:16:00 v 0.1 ;***************************************** ;PsPadExt.au3 by Churanos ;Created with ISN AutoIt Studio v. 1.10 ;***************************************** #NoTrayIcon #include <AutoItObject.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> AutoItSetOption("GUIOnEventMode", 1) OnAutoItExitRegister("_Exit") _AutoItObject_Startup() #Region Define variables Global Const $sExtName = "PsPadExt" Global Const $sExtVersion = "0.0.1" Global Const $sExtAuthor = "Churanos <kleist.steven@gmail.com>" Global Const $sClsId = "PsPadExt.Bridge" Global $oPlugin = Null Global $hROTHandle = Null Global $bShouldQuit = False Global $bInit = False Global $oError = ObjEvent("AutoIt.Error", "_ErrFunc") #EndRegion Define variables #Region GUI Part Global $frm_Main = GUICreate($sExtName, 320, 360, -1, -1, -1, $WS_EX_TOPMOST) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") Global $btn_GetText = GUICtrlCreateButton("Get sel. Text", 10, 10, 100, 25) GUICtrlSetOnEvent(-1, "_GetTextFromEditor") Global $btn_LeftChar = GUICtrlCreateButton("Get left Char", 120, 10, 100, 25) GUICtrlSetOnEvent(-1, "_GetLeftCharFromEditor") Global $txt_Text = GUICtrlCreateEdit("", 10, 50, 300, 300) #EndRegion GUI Part #Region Main Loop _Init() While 1 ; Do stuff If $bShouldQuit Then _Exit() Sleep(10) Wend #EndRegion Main Loop #Region Functions ;############################################################################## ;### Init function ;############################################################################## Func _Init() $oPlugin = _PSPadExt() If @error Then MsgBox(16, "Error", "Error while creating object from Func: _PsPadExt()!") _Exit() EndIf $hROTHandle = _AutoItObject_RegisterObject($oPlugin, $sClsId) GUISetState(@SW_SHOW, $frm_Main) EndFunc ;############################################################################## ;############################################################################## ;### Exit function ;############################################################################## Func _Exit() _AutoItObject_UnregisterObject($hROTHandle) $oPlugin = 0 _AutoItObject_Shutdown() Exit EndFunc ;############################################################################## Func _GetTextFromEditor() GUICtrlSetData($txt_Text, $oPlugin.PsPadSelectedText()) EndFunc Func _GetLeftCharFromEditor() Local $aCaret = $oPlugin.PsPadLeftChar() GUICtrlSetData($txt_Text, StringFormat("Editor.caretY(): %s Editor.caretX(): %s\r\nEditor.LineText(): %s\r\nEditor.LeftChar(): %s\r\n", $aCaret[0], $aCaret[1], $aCaret[2], $aCaret[3])) EndFunc #EndRegion Functions #Region Object Functions Func _PSPadExt() Local $class = _AutoItObject_Class() With $class .AddProperty("Name", $ELSCOPE_READONLY, $sExtName) .AddProperty("Version", $ELSCOPE_READONLY, $sExtVersion) .AddProperty("PsPad", $ELSCOPE_PUBLIC, Null) .AddMethod("PsPadSelectedText", "_PsPadExt_PsPadSelectedText") .AddMethod("PsPadLeftChar", "_PsPadExt_PsPadLeftChar") .AddMethod("Quit", "_PsPadExt_Quit") EndWith Return $class.Object EndFunc Func _PsPadExt_PsPadSelectedText($this) $this.PsPad.Item("Editor").assignActiveEditor() ConsoleWrite(StringFormat("Editor.selText(): %s", $this.PsPad.Item("Editor").selText()) & @CRLF) Return $this.PsPad.Item("Editor").selText() EndFunc Func _PsPadExt_PsPadLeftChar($this) $this.PsPad.Item("Editor").assignActiveEditor() Local $iCaretRow = $this.PsPad.Item("Editor").caretY() - 1 Local $iCaretCol = $this.PsPad.Item("Editor").caretX() - 1 Local $sLineText = $this.PsPad.Item("Editor").lineText() ConsoleWrite(StringFormat("Editor.caretY(): %s", $iCaretRow) & @CRLF) ConsoleWrite(StringFormat("Editor.caretX(): %s", $iCaretCol) & @CRLF) ConsoleWrite(StringFormat("Editor.LineText(): %s", $sLineText) & @CRLF) ConsoleWrite(StringFormat("Editor.LeftChar(): %s", StringMid($sLineText, $iCaretCol, 1)) & @CRLF) Local $aCaret = [$iCaretRow, $iCaretCol, $sLineText, StringMid($sLineText, $iCaretCol, 1)] Return $aCaret EndFunc Func _PSPadExt_Quit($this) $bShouldQuit = True EndFunc #EndRegion Object Functions #Region COM Error Function Func _ErrFunc() ConsoleWrite("COM Error, ScriptLine(" & $oError.scriptline & ") : Number 0x" & Hex($oError.number, 8) & " - " & $oError.windescription & @CRLF) EndFunc ;==>_ErrFunc #EndRegion COM Error Function