ich denke du suchst den Ersatz von IIf in Autoit?
Der Ternär macht doch was ich möchte.
ich denke du suchst den Ersatz von IIf in Autoit?
Der Ternär macht doch was ich möchte.
In den neuen AutoIt-Versionen gibt es ja den ternären Operator: $C = $x > 50 ? $A : $B
Das Ergebnis ist aber das selbe.
mit einer eigenen Funktion basteln.
Dann würde ich aber keine Codezeilen sparen. ![]()
Sehr gut! Das Probiere ich mal. Das geht hoffentlich auch mit mehr als 2.
Und was meinst Du mit mehrere ENUM? Beispielscript bitte!
Z.B. diese Zeile: Global Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $e_idHelp,
Um Code zu kürzen, wären weitere Global Enum hilfreich. Eine mit Text (für die Button-Beschriftung), und eine mit Zahlen (für die Icon-Nummer). In VBA nutze man dafür einfach mehrer ENUM- oder Typ-Anweisungen.
AutoIt ist viel komplizierter als VBA. In VBA habe ich z.B. auch "IIf", was ganz hilfreich ist, ein Äquivalent dazu scheint es in AutoIt nicht zu geben. Mehrere ENUM scheinen in AutoIt auch nicht möglich (damit könnte ich den Code verkürzen).
Danke! Es liegt an _WinAPI_EnumFiles($sPath, 2, $sExcludeDirs, True). Wenn ich jetzt richtig verstehe, kann ich mit "False" auch sagen, dass nur die angegebenen Ordner eingelesen werden sollen!?
Ich muss doch nochmal drauf zurückkommen. Es sollen die Ordner "icon", "settings" und "toolbar" ausgenommen werden, sollen also nicht im Treeview stehen. Ich habe es schon mit _GUICtrlTreeView_DeleteChildren($idTreeView, "icon") versucht, aber das ist wohl nicht der korrekte Pfad. Kann mir bitte nochmal jemand auf die Sprünge helfen? Man müsste ja auch zur Laufzeit entfernen und hinzufügen können? Danke!
Jetzt hat es doch noch funktioniert. Es dürfen nur ico sein, keine png. Danke! nochmal für die Hilfe!
Nein, du kannst auch eine Leer-Dll nehmen
Habe ich probiert. Funktioniert nicht. Wenn ich eine leere dll öffne und über "Add Binary or Image Resource" die Icons einfüge, anschließend die Änderungen speichere und die Datei in meinem Script über Global $hlibary = @ScriptDir & "\icon\icons.dll" einbinde, werden die Icons nicht genutzt. Stattdessen die AutoIt-Standard-Icons genutzt oder die Button bleiben ohne Icon. So einfach ist es wohl doch nicht.
Für Resource-Hacker muss man eine dll programmieren können (Wenn ich z.B. die imageres.dll öffne, sehe ich zwar "MUI" und "Versions-Info", aber nicht die Icons).
Ich will ja keine Icons erstellen, sondern aus vorhandenen Icons (ico und png) eine Icon-Library (dll) erstellen.
Die haben bei mir keine Dateiendung. Aber wie immer hat 7zip geholfen. Mir fehlen noch schöne Icons für "Ordner aufklappen" und "Ordner zuklappen. Ich suche auch schon ein Programm zum Erstellen eigener Icon-Librarys.
Ich habe lange gesucht, aber trotzdem nichts passendes gefunden. Was ist das Aeon-Icon-Pack für ein Dateityp?
Etwas Interessantes zum Thema: Menüband (Ribbon) in AutoIt => https://www.autoitscript.com/forum/topic/128242-ribbon/ => Das werde ich versuchen bei mir einzubauen
Danke! Ich schau mal in die Hilfe.
Edit:
Und schon funktioniert es. Danke!
Dann machst Du etwas falsch!
Der Code stammt aus dem Internet. ![]()
Global $aSize, $g_hToolbar, $g_idMemo, $g_iItem
Global Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $e_idHelp, $e_idClose, $e_idBack, $e_idForward, $e_idStop, $e_idZu, $e_idAuf, $e_IdRefresh, $e_idBlank
Global $i, $hImage, $count
Global Const $sSearchDir = @ScriptDir
Global Const $sFileExtensions = '*.pdf;*.docx;*.xlsm'
Global Const $bLargeIcons = False
Global $hlibary = @ScriptDir &"\icons\imageres.dll" ;der Pfad zu deiner .dll
Global $mPathMap[]
_WinAPI_FileIconInit()
Global $hSystemImgList = _WinAPI_ShellGetImageList(Not $bLargeIcons)
Global $hBusyCur = _WinAPI_LoadCursorFromFile(@WindowsDir & '\Cursors\aero_busy_xl.ani')
Global $hMainGui = GUICreate('Konzernregelwerke', 1700, 1000, -1, -1)
Global $g_hToolbar = _GUICtrlToolbar_Create($hMainGui)
Global $aSize = _GUICtrlToolbar_GetMaxSize($g_hToolbar)
#Region ; **** Tooolbar füllen ****
$hImage = _GUIImageList_Create()
$count = _WinAPI_ExtractIconEx($hlibary, -1, 0, 0, 0)
for $i = 0 to $count -1
_GUIImageList_AddIcon($hImage, $hlibary, $i)
next
_GUICtrlToolbar_SetImageList($g_hToolbar, $hImage)
_GUICtrlToolbar_AddBitmap($g_hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
Local $aStrings[9]
$aStrings[0] = _GUICtrlToolbar_AddString($g_hToolbar, "Datei öffnen")
$aStrings[1] = _GUICtrlToolbar_AddString($g_hToolbar, "Zuklappen")
$aStrings[2] = _GUICtrlToolbar_AddString($g_hToolbar, "Aufklappen")
$aStrings[3] = _GUICtrlToolbar_AddString($g_hToolbar, "Zurück")
$aStrings[4] = _GUICtrlToolbar_AddString($g_hToolbar, "Vorwärts")
$aStrings[5] = _GUICtrlToolbar_AddString($g_hToolbar, "Stop")
$aStrings[6] = _GUICtrlToolbar_AddString($g_hToolbar, "Beenden")
$aStrings[7] = _GUICtrlToolbar_AddString($g_hToolbar, "Neu laden")
$aStrings[8] = _GUICtrlToolbar_AddString($g_hToolbar, "Datei schließen")
Local $iView = _GUICtrlToolbar_AddBitmap($g_hToolbar, 1, -1, 5)
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idOpen, $STD_FILEOPEN, $aStrings[0])
_GUICtrlToolbar_AddButtonSep($g_hToolbar)
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idZu, 11, $aStrings[1])
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idAuf, 12, $aStrings[2])
_GUICtrlToolbar_AddButtonSep($g_hToolbar)
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idBack, 8, $aStrings[3])
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idForward, 9, $aStrings[4])
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idRefresh, 8, $aStrings[7])
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idStop, 10, $aStrings[5])
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idBlank, 13, $aStrings[8])
_GUICtrlToolbar_AddButtonSep($g_hToolbar)
_GUICtrlToolbar_AddButton($g_hToolbar, $e_idNew, 5, $aStrings[6])
#EndRegion ; **** Toolbar Ende ****
Alles anzeigen
Weil eine Symbolleiste schöner aussieht als Schaltflächen (Derzeit habe ich 8 Schaltflächen. Es könnten noch mehr werden). Das sieht in einer Symbolleiste optisch schöner aus). Und man kann dann dem Treeview und dem WebBrowser-Control die selbe Höhe geben. Ich habe jetzt schon einiges ausprobiert. Aber ich finde kein passendes Icon. Und die Icons aus Dlls (z.B. imageres.dll und shell32.dll) erzeugen einen schwarzen Hintergrund.
Und wo/wie binde ich das in AutoIt ein?
BTW:
Seit ich das gestern eingebaut habe, zeigt mir der Defender wieder eine Trojanermeldung (Trojan:Win32/Bearfoos.B!ml). Mal wieder etwas unerklärliches?