Hiho,
mein aktuelles script ist folgendes:
es ist dafür gedacht, um schnell existierende fenster "On Top" zu setzen, oder dieses attribut wieder zu löschen (funzt nur noch nicht *g*)
nun habe ich 2 fragen:
1. wie funzt _GUICtrlListView_SimpleSort? mit der hilfe bin ich leider nicht weiter gekommen, wie müsste es in meinem fall aussehen?
2. wie bekomme ich es hin, dass bei einem doppelklick auf eine item im ListView eine Funktion ausgeführt wird ?
PS: ok, mit dem doppelklick scheint was kompliziert zu sein, kann man dann ne reaktion anfordern, sobald ein item markiert wird?
habe nen button, der soll dann, je nachdem welches item angeklickt wird, ein anderes label haben.
PPS: soweit feritg =)
Spoiler anzeigen
#include <array.au3>
#include <Process.au3>
#include <File.au3>
#include <GUIConstants.au3>
#Include <GuiListView.au3>
Opt("OnExitFunc", "endscript")
Opt("GUIOnEventMode", 1)
Global $var2
Global $WinList
Global $ini = @scriptdir & "\ActiveWin.ini"
$Form1 = GUICreate("active Windows", 308, 312, 0, 0, "", $WS_EX_TOOLWINDOW )
GUISetOnEvent($GUI_EVENT_CLOSE, "endscript")
$Button1 = GUICtrlCreateButton("Set on Top or Back", 0,0,300,20)
GUICtrlSetOnEvent(-1, "_SetOnTop")
$ListView1 = _GUICtrlListView_Create ($Form1, "", 0, 20, 300, 250)
GUICtrlSetOnEvent(-1, "_SetOnTop")
_GUICtrlListView_SetExtendedListViewStyle ($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
_GUICtrlListView_InsertColumn ($ListView1, 0, "Process", 80)
_GUICtrlListView_InsertColumn ($ListView1, 1, "Window", 180)
_GUICtrlListView_InsertColumn ($ListView1, 2, "Top", 40)
$Button2 = GUICtrlCreateButton("Update", 0, 271, 300, 20, 0)
GUICtrlSetOnEvent(-1, "_Update")
GUISetState(@SW_SHOW)
WinSetOnTop($Form1,'',1)
WinSetTrans($Form1,'', 220)
_update()
While 1
Sleep(100)
WEnd
Func _Update()
If FileExists($ini) Then
$Sections = IniReadSectionNames($ini)
If Not @error Then
For $i = 1 To $Sections[0]
$ReadOnTop = IniReadSection($ini, $Sections[$i])
If Not @error Then
For $e = 1 To $ReadOnTop[0][0]
WinSetOnTop($ReadOnTop[$e][0], "", 0)
Next
EndIf
IniDelete($ini, $Sections[$i])
Next
EndIf
EndIf
_GUICtrlListView_DeleteAllItems($ListView1)
$var = WinList()
For $i = 1 to $var[0][0]
If Not @error Then
; Only display visble windows that have a title
If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then
$ProcessName = _ProcessGetName(WinGetProcess($var[$i][0]))
If $ProcessName = @ScriptName Then
Else
IniWriteSection($ini, $ProcessName, "")
IniWrite($ini, $ProcessName, $var[$i][0], "")
EndIf
EndIf
EndIf
Next
$Sections = IniReadSectionNames($ini)
If Not @error Then
For $i = 1 To $Sections[0]
$Section = IniReadSection($ini, $Sections[$i])
If Not @error Then
For $e = 1 To $Section[0][0]
_GUICtrlListView_AddItem($ListView1, $Sections[$i])
_GUICtrlListView_AddSubItem($ListView1, _GUICtrlListView_GetItemCount($ListView1) - 1, $Section[$e][0], 1)
Next
EndIf
Next
EndIf
WinSetOnTop($Form1,'',1)
EndFunc
Func IsVisible($handle)
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIf
EndFunc
Func _SetOnTop()
For $i = 1 To _GUICtrlListView_GetItemCount($ListView1)
$Checked = _GUICtrlListView_GetItemChecked($ListView1, $i - 1)
If $Checked = True Then
$Sec = _GUICtrlListView_GetItemText($ListView1, $i - 1)
$key = _GUICtrlListView_GetItemText($ListView1, $i - 1, 1)
$ReadOnTop = IniRead($ini, $Sec, $key, "")
If $ReadOnTop = "" Then
WinActivate($key)
WinSetOnTop($key, "", 1)
IniWrite($ini, $Sec, $key, "x")
_GUICtrlListView_AddSubItem($ListView1, $i -1, "x", 2)
Else
WinSetOnTop($key, "", 0)
WinSetState($key, "", @sw_minimize)
IniWrite($ini, $Sec, $key, "")
_GUICtrlListView_AddSubItem($ListView1, $i -1, "", 2)
EndIf
EndIf
Next
For $i = 1 To _GUICtrlListView_GetItemCount($ListView1)
_GUICtrlListView_SetItemChecked($ListView1, $i - 1, False)
Next
WinSetOnTop($Form1,'',1)
EndFunc
Func endscript()
If FileExists($ini) Then
$Sections = IniReadSectionNames($ini)
If Not @error Then
For $i = 1 To $Sections[0]
$ReadOnTop = IniReadSection($ini, $Sections[$i])
If Not @error Then
For $e = 1 To $ReadOnTop[0][0]
WinSetOnTop($ReadOnTop[$e][0], "", 0)
Next
EndIf
IniDelete($ini, $Sections[$i])
Next
EndIf
EndIf
Exit
EndFunc
;~ Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
[/autoit] [autoit][/autoit] [autoit];~ $title = "Microsoft Excel - Mappe1"
[/autoit] [autoit][/autoit] [autoit];~ WinSetOnTop($title, "", 0)
[/autoit]