Ist das möglicherweise "leicht" aus dem Zusammenhang gerißen?
Beiträge von nuts
-
-
Ja danke, sehr schön!
Da _WinAPI_ExtractIconEx("Pfad zur .dll", -1, 0, 0, 0) die Anzahl zurückgibt ist so okay.-Gelöst-
-
Hey,
folgendes Problem:
In einer .dll sind verschiedene Icons gespeichert, einige davon sollen in einem Listview angezeigt werden.Derzeit mache ich das so:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <Constants.au3>
#include <ScreenCapture.au3>
Opt('MustDeclareVars', 1)
Opt('CaretCoordMode', 0)
$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it workGlobal $GUI, $hListView, $msg, $hImage, $aImage, $test2, $load, $ilist, $try
[/autoit] [autoit][/autoit] [autoit]
Global $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER)$GUI = GUICreate("Gui", 800, 650, -1, -1)
[/autoit] [autoit][/autoit] [autoit];=========================================================================================================
[/autoit] [autoit][/autoit] [autoit]
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268); _GUICtrlListView_Create($GUI, "", 50, 50, 550, 500, $LVS_NOCOLUMNHEADER, -1, True) ; Last option Calls CoInitializeEx
;=========================================================================================================
Global $HLV = GUICtrlGetHandle($hListView)
_GUICtrlListView_SetExtendedListViewStyle($hListView, $exStyles)$hImage = _GUIImageList_Create()
[/autoit] [autoit][/autoit] [autoit]
$test2 = _GUIImageList_AddIcon($hImage, "Pfad zur .dll", 0)$ilist = _GUICtrlListView_SetImageList($hListView, $hImage, 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Add columns
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
_GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
_GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100); Add items
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_AddItem($hListView, "Row 1: Col 1", 0)
_GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 2", 1)
_GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 3", 2)
_GUICtrlListView_AddItem($hListView, "Row 2: Col 1", 1)
_GUICtrlListView_AddSubItem($hListView, 1, "Row 2: Col 2", 1)
_GUICtrlListView_AddItem($hListView, "Row 3: Col 1", 2)GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()Switch $msg
[/autoit] [autoit][/autoit] [autoit]
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit]
D.h. jedes Icon wird einzeln zur Imagelist hinzugefügt.
Kann man auch einfach alle Icons automatisch aus der .dll in die Liste laden?Gruß nuts
edit \
[autoit]
Idee
[/autoit]
$hImage = _GUIImageList_Create()
$count = _WinAPI_ExtractIconEx("Pfad zur .dll", -1, 0, 0, 0)
for $i = 0 to $count -1
_GUIImageList_AddIcon($hImage, "Pfad zur .dll", $i)
next -
Hm schade, Winsettrans eignet sich für meine Zwecke nicht.
Ich meine dieses Fenster, sieht imho irgendwie abgeschnitten aus.
-
Pfad aus dem Treeview holen, Ini einlesen ( Pfad & \"log.ini" -> Inireadsektion), Quelle & Ziel Information an die Kopierfunktion übergeben.
Was genau klappt nicht? -
Ja keine Ahnung
Im Treeview (Item+Child) befindet sich das jeweilige Ziel?
Wo und in welcher Form ist die Quelle gespeichert? -
Hey,
ist wirklich super gemacht, schade das wir nicht im Sourcecode stöbern dürfen.
Habe auch eine Frage zur Grafik (XP):
Wie genau ist der Transparenzeffekt gemacht? Die Listviewitems im "Taschenrechner" haben z.B. gar keine Tarnsparenz, der Hintergrund allerdings schon.Einen kleinen Grafikfehler gibt es beim Fenster für neue Funktionsgleichungen: Der OK Button ist etwas zu groß.
-
Lässt sich das Probelem darauf reduzieren, dass du den Text des Items und den Text des markierten Childitems herausfinden willst?
Dazu findet sich ein Beispiel in der Hilfe zu: _GUICtrlTreeView_GetTree -
ist ne aufgabe von meinem chef, lernen damit umzugehen

Meistens ist es klug sich nach den Wünschen des Chefs zu richten - hier erscheint es allerdings ziemlich unsinnig.
"Send", "Mouseclick" usw. ist fast immer nicht die beste Wahl (eher der Notnagel wenn gar nichts anderes geht), darum kann man den Lerneffekt bei solchen Übungen getrost vernachlässigen.
Ich hoffe dein Chef programmiert selbst nicht so?
Wie wärs du erstellst eine Lösung mit der Excel UDF und schickst deinen Chef im Zweifelsfall hier vorbei?

-
Könnte man das noch "etwas" besser umschreiben? Du willst die Hastybar links, rechts unten und oben anordnen können?
[autoit]
[/autoit]
ElseIf $TaskbarPos = 2 Then
$MainForm = GUICreate("", @DesktopWidth, 30, -1, 0, $Style, $ExStyle)
$GUIBreite = @DesktopWidth
So ist die Gui oben
-
Ja.
Das erste Array (1D) enthält die Pfade zu allen .ini's.
Jetzt wird in einer For ...Next Schleife das 1D Array durchgegangen und für jede .ini eine bestimmte Sektion eingelesen (Inireadsektion).
Daraus resultiert ein 2D Array mit 2 Spalten (Key/Value). Das 2D Array muss jetzt weiterverarbeitet werden.Du setzt aber $i ein. $i hat aber doch einen Bezug zu den eingelesenen Pfaden (das 1D Array).
Der Bezug zum 2D Array ist 1 bis $2DArray[0][0] (s. Hilfe) -
Denn INIReadSection gibt ein 2D-Array zurück!
Und dieses Array muss in einer eigenen For ... Next Schleife abgearbeitet werden. -
[autoit]
_WinAPI_LoadImage(0,"Pfad zum Icon", $IMAGE_ICON, 16,16, $LR_LOADFROMFILE )
[/autoit]
So ungefähr und das Handle dann bei _GUICtrlStatusBar_SetIcon($hWnd, $iPart[, $hIcon = -1[, $sIconFile = ""]]) verwenden. -
Suche mal in der Hilfe nach Guictrlcreatemenu.
-
So ist es:
[autoit]
[/autoit]
$1 = "4,5"
MsgBox(1, "", StringReplace($1, ",", ".")) -
FileExists &
_FileCreate
sollte dich weiterbringen. -
Die Aufgabe war ja (vermutlich :D).
1.Mo-So: Auswählbar
2. Starzeit: An jedem ausgewählten Tag zu einer bestimmten Uhrzeit
3. Alle angegebenen Verzeichnisse zu sichern.
Also kann man jeden Tag einzeln abfragen:Die Ini sähe dann so aus
Oder man verwendet eine Methode (hier 2^n), die alle Kombinationsmöglichkeiten zusammenfasst.Ansonsten gebe ich dir natürlich recht.
-
[autoit]
#cs
[/autoit]
64 steht für montag
32 für dienstag
16 für mittwoch
8 für donnerstag
4 für freitag
2 für samstag
1 für sonntag
#ce
dim $count
$ini = 80
For $i = 6 To 0 step - 1
$count = BitAND($ini, 2^$i)
If $count Then
ConsoleWrite ($count & @CRLF)
EndIf
Next
So wandlest du das ganze zurück.
Ich finde die 2^$n Methode ürbigens ziemlich effektiv. -
Sollte die Methode Hotkeys + Profile nicht zuverlässig funtkionieren kannst du auch mal diese hier ausprobieren: https://autoit.de/index.php?page=Thread&threadID=13330
P.S. 1080i ist eigentlich fast nie zu empfehlen.
-
An welchem Schritt scheiterst du denn?
"80" zurück in Mo-So wandeln?
Mo-So ins nächst mögliche Datum wandeln?