Oh, wow. Danke für deine Mühe mir nicht nur durch Code zu helfen, sondern auch das wie und warum zu erklären. Tausend Dank dafür.
Gruß
Oh, wow. Danke für deine Mühe mir nicht nur durch Code zu helfen, sondern auch das wie und warum zu erklären. Tausend Dank dafür.
Gruß
Hallo zusammen,
wie im Header bereits erwähnt, bekomme ich meine Routine nur über die HotKey Variante gestoppt, nicht über das Menü oder einen Button. Leider habe ich nicht die leiseste Ahnung, warum das so nicht möglich ist. Vielleicht findet jemand von Euch meinen Fehler, danke im Vorraus.
#include <GUIConstants.au3>
HotKeySet('{F10}','_startRoutine')
HotKeySet('{F11}','_stopRoutine')
Global Const $GUI = GUICreate('Test',300,150, -1, -1, $WS_SYSMENU,$WS_EX_TOPMOST)
Global $gm_Menu = GUICtrlCreateMenu("Steuerung")
Global $gm_Menu_run = GUICtrlCreateMenuItem("Programm starten",$gm_Menu)
Global $gm_Menu_stop = GUICtrlCreateMenuItem("Programm stoppen",$gm_Menu)
GUICtrlCreateMenuItem("", $gm_Menu, 3)
Global $gm_Menu_exit = GUICtrlCreateMenuItem("Beenden",$gm_Menu)
Global $gB_Button1 = GUICtrlCreateButton ("Stopp", 10, 50,60,30)
Global $gL_Label1 = GUICtrlCreateLabel("Zeit",10,10,100,20,1,5)
Global $stop = false
GUISetState(@SW_SHOW, $GUI)
While 1
Switch GUIGetMsg()
Case -3,$GUI_EVENT_CLOSE,$gm_Menu_exit
GUIDelete()
Exit
Case $gm_Menu_run
_startRoutine()
Case $gm_Menu_stop,$gB_Button1
_stopRoutine()
EndSwitch
WEnd
Func _startRoutine()
While $stop = false
For $i = 0 to 60
GUICtrlSetData($gL_Label1,$i)
Sleep(1000)
If $stop = True then ExitLoop
Next
WEnd
;
EndFunc
Func _stopRoutine()
$stop = true
;MsgBox(-1,"Abbruch","Ablauf gestoppt",2)
EndFunc
Alles anzeigen
Gruß
Hallo,
ich nutze ganz gern die Möglichkeit mir Icons aus .dll-Dateien zu holen, entweder aus den Standard Dateien von Windows (shell32.dll, imageres.dll,...) oder erstelle mir mit ResourceHacker eine eigene.
Damit kommst du dann wieder an die Bilder ran:
Gruß Gremlin78
Super,
auch sehr gute Möglichkeiten, danke.
Fantastisch,
vielen Dank.
Hallo Leute,
ich möchte aus einem TreeView die Namen der Items zurückgegeben bekommen. Da es sehr viele sind und ich sie alle einzeln abfragen möchte, dachte ich mir, dass es vielleicht mit einem Array gehen könnte. Dieser Code ist nur als Beispiel gedacht:
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3>
#include <GUITreeView.au3>
#include <WindowsConstants.au3>
Example_Tree()
Func Example_Tree()
GUICreate("My test treeview GUI", 350, 210)
Local $idTreeview = GUICtrlCreateTreeView(5, 5, 340, 200)
Local $idTreeview1 = GUICtrlCreateTreeViewItem("#1",$idTreeview)
Local $idTreeview2 = GUICtrlCreateTreeViewItem("#2",$idTreeview)
Local $idTreeview3 = GUICtrlCreateTreeViewItem("#3",$idTreeview)
Local $idTreeviewArray[4]
$idTreeviewArray[0] = GUICtrlCreateTreeViewItem("#1.1",$idTreeview1)
$idTreeviewArray[1] = GUICtrlCreateTreeViewItem("#1.2",$idTreeview1)
$idTreeviewArray[2] = GUICtrlCreateTreeViewItem("#2.1",$idTreeview2)
$idTreeviewArray[3] = GUICtrlCreateTreeViewItem("#2.2",$idTreeview2)
GUICtrlSetState($idTreeview2, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idTreeviewArray[3]
MsgBox(0,"you pressed",_GUICtrlTreeView_GetText($idTreeview))
EndSwitch
WEnd
EndFunc
Alles anzeigen
Leider bisher ohne Erfolg, weshalb ich nun um Eure Unterstützung bitte.
Beste Grüße, Gremlin
Vielen Dank Zeitriss,
die Lösung gefällt mir vorerst am besten.
Trotzdem noch mal Danke an alle.
MfG Gremlin
Vielen Dank BugFix für dein Beispiel,
da muss ich mich aber erstmal durchkämpfen.
MfG Gremlin
Vielen Dank chip,
die einfachste Lösung. Bei umfangreicheren Scripts ploppt allerdings das maximierte GUI noch hoch, ist aber recht schnell wieder weg.
MfG Gremlin
Per Hook? Wie funktioniert das?
Hab in der Hilfe die Funktion: "_WinAPI_SetWindowsHookEx()" gefunden, die wohl dafür nötig ist, werde aber aus dem Beispiel nicht schlau.
MfG Gremlin
Hallo Leute,
ist es möglich die Buttons in der Titelleiste andersweitig zu verwenden (z.B. zum minimieren in den Infobereich oder für einen Hilfeaufruf).
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
_test()
Func _test()
Local $gui = GUICreate('Test',300,200,-1,-1,BitOR($WS_MINIMIZEBOX,$WS_MAXIMIZEBOX))
Local $pos
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $GUI_EVENT_MAXIMIZE
$pos=WinGetPos($gui)
WinMove($gui,'',$pos[0],$pos[1],300,200)
MsgBox($MB_SYSTEMMODAL,'Achtung','Hier wird eine Funktion eingefügt')
EndSwitch
WEnd
EndFunc
Alles anzeigen
Leider wird immer noch das Fenster maximiert, und erst danach die Größe angepasst.
Gruß Gremlin
Vielen Dank Kanashius,
Du bist Spitze. Es funktioniert 1A.
Ich hatte die Funktion in der GUIListViewEx UDF gefunden und dachte ich muss die WM_NOTIFY-Funktion gegen diese ersetzen, aber das hatte leider auch nicht funktioniert. Darauf, dass sie mit eingebunden werden muss wäre ich nicht gekommen.
Nochmals Danke,
Gruß Gremlin
Hallo Leute,
ich muss nochmal mein Beispiel-Script aufgreifen, da sich ein neues Problem ergeben hat.
Ich wollte gern die Doubleclick-Funktion von ChaosKeks verwenden und musste leider feststellen, dass dadurch leider kein Drag&Drop im ListView mehr möglich ist.
#include <GUIConstantsEx.au3>
#include <GUIListViewEx.au3>
#include <WindowsConstants.au3>
Global $idListView
Example()
Func Example()
Local $hGUI=GUICreate("listview items", 250, 300, -1, -1)
$idListview = GUICtrlCreateListView("col_1 |col_2|col_3 ", 0, 0, 250, 260)
Local $idButton = GUICtrlCreateButton("add entry", 10, 270, 230, 20)
$i = 1
GUISetState(@SW_SHOW)
_GUIListViewEx_MsgRegister()
Local $idLV = _GUIListViewEx_Init($idListview, '', 0, 0, True)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton
_GUIListViewEx_Close($idLV)
GUICtrlCreateListViewItem("item_1_"&$i&"|item_2_"&$i&"|item_3_"&$i, $idListview)
$idLV = _GUIListViewEx_Init($idListview, '', 0, 0, True)
$i=$i+1
EndSwitch
WEnd
EndFunc ;==>Example
Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam) ;<================== Benachrichtigung Doppelklick (Original from Chaoskeks [in ChaosExecution])
Local $tagNMHDR = "hwnd hWndFrom;uint_ptr IDFrom;INT Code"
Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
Local $iCode = DllStructGetData($tNMHDR, "Code")
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
Local $Ycode = DllStructGetData($tagNMHDR, 3)
If $wParam = $idListView Then
Select
Case $hWndFrom = GUICtrlGetHandle($idListView)
Select
Case $iCode = $NM_DBLCLK
If _GUICtrlListView_GetSelectedCount($idListView) > 0 Then
For $i = 0 To _GUICtrlListView_GetItemCount($idListView)
If _GUICtrlListView_GetItemSelected($idListView, $i) Then
$aItem = _GUICtrlListView_GetItemTextArray($idListView, $i)
MsgBox(0, 'Beispiel', $aItem[1] & @CRLF & $aItem[2]& @CRLF& $aItem[3])
EndIf
Next
EndIf
EndSelect
EndSelect
EndIf
Return $GUI_RUNDEFMSG
$tagNMHDR = 0
$lParam = 0
EndFunc ;==>WM_NOTIFY
Alles anzeigen
Hat jemand ne Idee, wo mein Fehler liegt?
Grüße Gremlin
Vielen Dank Oscar,
das ist die Lösung. Mir hat leider der Durchblick in der UDF gefehlt.
Nochmals vielen Dank.
MfG Gremlin
Sorry,
so hängt nun am 1. Beitrag an.
MfG Gremlin
Hallo Leute,
wenn ich in meiner ListView-Ansicht Einträge verschieben möchte, funktioniert das, bis ich einen neuen Eintrag hinzufüge.
Danach stürzt das Programm leider beim Verschieben ab.
Warum? Wo liegt mein Fehler?
Hier ein Beispiel-Script:
#include <GUIConstantsEx.au3>
#include <GUIListViewEx.au3>
Example()
Func Example()
GUICreate("listview items", 220, 250, 100, 200)
Local $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 200)
Local $idItem1 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview)
Local $idButton= GUICtrlCreateButton("1 more",10,220,200,20)
GUISetState(@SW_SHOW)
_GUIListViewEx_MsgRegister()
_GUIListViewEx_Init($idListview,0,0,0,TRUE)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton
GUICtrlCreateListViewItem("item4|col42|col43", $idListview)
_GUIListViewEx_Init($idListview,0,0,0,TRUE)
EndSwitch
WEnd
EndFunc ;==>Example
Alles anzeigen
MfG Gremlin
Vielen Dank für eure Anworten,
sehr nette Funktion BugFix.
Nochmals vielen Dank.
MfG Gremlin78
Hallo,
gibt es eine Möglichkeit einen Hyperlink (z.B. zur Webseite) in der Statusleiste zu plazieren?
Gruß Gremlin
Vielen Dank nochmals,
#pragma war mir bisher unbekannt, funktioniert alles super.
Endlich der große Erfolg.
Gruß Gremlin
Wow, Danke. Das klappt.
Noch ne zweite Frage, wenn ich eine 32 und eine 64 bit Variante erstellen lasse, erhält nur die 32 bit Version das eingebundene Icon.
Ist es auch möglich die 64er Version mit dem Icon zu versehen?
Gruß Gremlin