Hai Leute !
Ich stelle euch heute mein neues Programm vor: wVise - Window Control
Features:
> Beliebige Anzahl an Fenster mit einem Tastendruck verstecken / zeigen !
> Mehrere Fenster mit gleichem Titel verstecken / zeigen
> Sich selber (GUI) per Tastendruck verstecken
> Liste von Fenstern die vom User bearbeitet werden kann speichern / laden
> Auflistung von allen verfügbaren Fenstern + in Userliste hinzufügen
> Erkennt auch Teil - Strings eines Fenstertitels
Anleitung:
> Programm ist per Tastendruck [ESC] schließbar !
> Aktualisieren: Füllt die Combo Box, mit allen sichbaren Fenstern / Diese werden per klick in die Fensterliste kopiert.
> Fensterliste: Die große weiße Box unter den 2x Buttons, hier Fenstertitel / Strings eintragen und per Zeilenschaltung trennen.
> Einstellungen: Hotkeys können in diesem Menü konfiguriert werden, die Option: "Einen Hotkey für Verstecken / Zeigen auswählen um Fenster mit einem Tastendruck zb. F10 zu verstecken, und noch einen Tastendruck auf F10 wieder anzuzeigen.
EXE + Script [Build:0220]:
autoit.de/wcf/attachment/5752/
Script:
Spoiler anzeigen
#cs
##################################
# wVise - Build:0220 #
# #
# > Created by mcOocr #
##################################
#ce
#Region
#NoTrayIcon
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIComboBox.au3>
#EndRegion
;==> Include
#Region
global $str1 = ""
global $str2 = ""
global $str3 = ""
global $str4 = ""
global $str5 = ""
global $str6 = ""
global $str7 = ""
global $flag = 0
global $hsflag = 0
global $hsmeflag = 0
opt("wintitlematchmode", -2)
opt("guioneventmode", 1)
#EndRegion
;==> Optionen
#Region
;==> Main GUI
$main = GUICreate("wVise - Window Control", 234, 285, 287, 175, BitOR($WS_DLGFRAME,$WS_CLIPSIBLINGS), BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
$winlist = GUICtrlCreateCombo("wVise - Build:0220 - created by mcOocr", 8, 8, 217, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
$userlist = GUICtrlCreateEdit("", 8, 64, 215, 190, BitOR($ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL))
$getwin = GUICtrlCreateButton("Aktualisieren", 8, 32, 105, 25, $WS_GROUP)
$einstellungen = GUICtrlCreateButton("Einstellungen", 120, 32, 105, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
;==> Optionen GUI
$optform = GUICreate(" wVise Optionen", 234, 274, 229, 132, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS), BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
$Group1 = GUICtrlCreateGroup(" Hotkeys für Fenster : ", 8, 8, 217, 97)
$Input1 = GUICtrlCreateInput("Fenster verstecken", 16, 32, 97, 21, BitOR($ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_READONLY))
$hotkhide = GUICtrlCreateInput("F10", 120, 32, 97, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
$Input2 = GUICtrlCreateInput("Fenster zeigen", 16, 56, 97, 21, BitOR($ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_READONLY))
$hotkshow = GUICtrlCreateInput("F11", 120, 56, 97, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
$usemulti1 = GUICtrlCreateCheckbox("Einen Hotkey für Verstecken / Zeigen", 16, 80, 201, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup(" Interne Hotkeys : ", 8, 112, 217, 121)
$Input3 = GUICtrlCreateInput("wVise verstecken", 16, 128, 97, 21, BitOR($ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_READONLY))
$hotkhideme = GUICtrlCreateInput("F8", 120, 128, 97, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
$hotkshowme = GUICtrlCreateInput("F9", 120, 152, 97, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
$Input4 = GUICtrlCreateInput("wVise zeigen", 16, 152, 97, 21, BitOR($ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_READONLY))
$usemulti2 = GUICtrlCreateCheckbox("Einen Hotkey für Verstecken / Zeigen", 16, 200, 201, 25)
$Input5 = GUICtrlCreateInput("Liste speichern", 16, 176, 97, 21, BitOR($ES_AUTOHSCROLL,$ES_NOHIDESEL,$ES_READONLY))
$hotksave = GUICtrlCreateInput("F12", 120, 176, 97, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$save = GUICtrlCreateButton("Einstellungen Speichern", 8, 240, 217, 25, $WS_GROUP)
;==> Events
guisetonevent($GUI_EVENT_CLOSE, "closegui", $main)
guisetonevent($GUI_EVENT_CLOSE, "hidegui", $optform)
guictrlsetonevent($einstellungen, "showopt")
guictrlsetonevent($getwin, "getlist")
guictrlsetonevent($winlist, "wingetlist")
guictrlsetonevent($save, "saveset")
sethotkey()
#EndRegion
;==> Interface
#Region
func hide()
local $user = StringSplit(GUICtrlRead($userlist), @CRLF, 1)
if $user[1] = "" then return ;...
local $win = Winlist()
for $i = 1 to $user[0]
if $user[$i] = "" then ContinueLoop
for $x = 1 to $win[0][0]
if $win[$x][0] = "" Then ContinueLoop
if stringinstr($win[$x][0], $user[$i]) then winsetstate($win[$x][1], "", @SW_HIDE)
Next
Next
EndFunc
func show()
local $user = StringSplit(GUICtrlRead($userlist), @CRLF, 1)
if $user[1] = "" then return ;...
local $win = Winlist()
for $i = 1 to $user[0]
if $user[$i] = "" then ContinueLoop
for $x = 1 to $win[0][0]
if $win[$x][0] = "" Then ContinueLoop
if stringinstr($win[$x][0], $user[$i]) then winsetstate($win[$x][1], "", @SW_SHOW)
Next
Next
EndFunc
func hideshow()
if $hsflag = 0 then
local $user = StringSplit(GUICtrlRead($userlist), @CRLF, 1)
if $user[1] = "" then return ;...
local $win = Winlist()
for $i = 1 to $user[0]
if $user[$i] = "" then ContinueLoop
for $x = 1 to $win[0][0]
if $win[$x][0] = "" Then ContinueLoop
if stringinstr($win[$x][0], $user[$i]) then
winsetstate($win[$x][1], "", @SW_HIDE)
$hsflag = 1
endif
Next
Next
Elseif $hsflag = 1 Then
local $user = StringSplit(GUICtrlRead($userlist), @CRLF, 1)
if $user[1] = "" then return ;...
local $win = Winlist()
for $i = 1 to $user[0]
if $user[$i] = "" then ContinueLoop
for $x = 1 to $win[0][0]
if $win[$x][0] = "" Then ContinueLoop
if stringinstr($win[$x][0], $user[$i]) then
winsetstate($win[$x][1], "", @SW_SHOW)
$hsflag = 0
endif
Next
Next
EndIf
EndFunc
func hideme()
guisetstate(@SW_HIDE, $main)
guisetstate(@SW_HIDE, $optform)
EndFunc
func showme()
guisetstate(@SW_SHOW, $main)
EndFunc
func hideshowme()
if $flag = 0 then
guisetstate(@SW_HIDE, $main)
guisetstate(@SW_HIDE, $optform)
$flag = 1
Else
guisetstate(@SW_SHOW, $main)
$flag = 0
EndIf
EndFunc
func sethotkey()
fileload()
if $str6 = "4" Then
hotkeyset("{" & $str1 & "}", "hide")
hotkeyset("{" & $str2 & "}", "show")
Else
hotkeyset("{" & $str1 & "}", "hideshow")
EndIf
if $str7 = "4" Then
hotkeyset("{" & $str3 & "}", "hideme")
hotkeyset("{" & $str4 & "}", "showme")
Else
hotkeyset("{" & $str3 & "}", "hideshowme")
EndIf
hotkeyset("{" & $str5 & "}", "saveset")
EndFunc
Func fileload()
if fileexists("win.dll") Then
global $str1 = iniread("win.dll", "set", "hotkhide", "Nicht gesetzt")
global $str2 = iniread("win.dll", "set", "hotkshow", "Nicht gesetzt")
global $str3 = iniread("win.dll", "set", "hotkhideme", "Nicht gesetzt")
global $str4 = iniread("win.dll", "set", "hotkshowme", "Nicht gesetzt")
global $str5 = iniread("win.dll", "set", "hotksave", "Nicht gesetzt")
global $str6 = iniread("win.dll", "set", "usemulti1", "0")
global $str7 = iniread("win.dll", "set", "usemulti2", "0")
guictrlsetdata($hotkhide, $str1)
guictrlsetdata($hotkshow, $str2)
guictrlsetdata($hotkhideme, $str3)
guictrlsetdata($hotkshowme, $str4)
guictrlsetdata($hotksave, $str5)
if $str6 <> "4" Then
guictrlsetstyle($hotkshow, $ES_READONLY)
guictrlsetdata($input1, "Fenster Hide/Show")
guictrlsetstate($usemulti1, "1")
Else
guictrlsetstyle($hotkshow, $ES_CENTER)
EndIf
if $str7 <> "4" Then
guictrlsetstyle($hotkshowme, $ES_READONLY)
guictrlsetdata($input3, "Fenster Hide/Show")
guictrlsetstate($usemulti2, "1")
Else
guictrlsetstyle($hotkshowme, $ES_CENTER)
EndIf
EndIf
if fileexists("win.txt") Then
$ha = fileopen("win.txt", 0)
$pu = fileread($ha)
guictrlsetdata($userlist, $pu)
fileclose($ha)
EndIf
EndFunc
func saveset()
$strt1 = guictrlread($hotkhide)
$strt2 = guictrlread($hotkshow)
$strt3 = guictrlread($hotkhideme)
$strt4 = guictrlread($hotkshowme)
$strt5 = guictrlread($hotksave)
$strt6 = guictrlread($usemulti1)
$strt7 = guictrlread($usemulti2)
iniwrite("win.dll", "set", "hotkhide", $strt1)
iniwrite("win.dll", "set", "hotkshow", $strt2)
iniwrite("win.dll", "set", "hotkhideme", $strt3)
iniwrite("win.dll", "set", "hotkshowme", $strt4)
iniwrite("win.dll", "set", "hotksave", $strt5)
iniwrite("win.dll", "set", "usemulti1", $strt6)
iniwrite("win.dll", "set", "usemulti2", $strt7)
$strlist = guictrlread($userlist)
$hn = fileopen("win.txt", 2)
filewrite($hn, $strlist)
fileclose($hn)
hidegui()
sethotkey()
EndFunc
func wingetlist()
$str = ""
$tx = guictrlread($userlist)
$sel = _GUICtrlComboBox_GetCurSel($winlist)
_GUICtrlComboBox_GetLBText($winlist, $sel, $str)
if $tx = "" then
GUICtrlSetData($userlist, $str)
Else
GUICtrlSetData($userlist, $tx & @CRLF & $str)
EndIf
EndFunc
func showopt()
fileload()
guisetstate(@SW_SHOW, $optform)
EndFunc
func closegui()
Exit
EndFunc
func hidegui()
guisetstate(@SW_HIDE, $optform)
EndFunc
Func getlist()
guictrlsetdata($winlist, "")
$w = WinList()
for $i = 1 to $w[0][0]
if $w[$i][0] <> "" and vis($w[$i][1]) Then
if $w[$i][0] = "Start" then
;...
ElseIf $w[$i][0] = "Program Manager" Then
;...
Elseif $w[$i][0] = "wVise - Window Control" Then
;...
Else
guictrlsetdata($winlist, $w[$i][0])
EndIf
EndIf
Next
EndFunc
Func vis($handle)
if bitand(WinGetState($handle), 2) Then
return 1
Else
return 0
EndIf
EndFunc
#EndRegion
;==> Funktionen
#Region
While 1
sleep(10)
WEnd
#EndRegion
;==> Loop
Feedback + Bugreport's erwünscht
PS: Danke an Oscar für die Array Funktion !
Greez mcOocr