Bonsoir
Voilà mon problème :
Je cherche à controler le status d'applications externes, plus particulièrement savoir si la fenetre ou l'application (comme vous voulez) se trouvent réduites ou non dans la barre des tâches. Et biensûr savoir comment faire pour réduire ou restaurer l'application externe.
J'espère que l'on me comprend xd
[Resolu]fenetres, programmes barre des taches...
- Le psychopathe
- Messages : 764
- Inscription : jeu. 03/mars/2005 19:23
[Resolu]fenetres, programmes barre des taches...
Dernière modification par Le psychopathe le mer. 18/juil./2007 9:47, modifié 1 fois.
salut,
c'est pas trop difficile mais il faut passer par les API windows.
en plus il y a plusieurs facons de faire ( ShowWindow_() ou SetWindowPlacement_() ).
c'est pas trop difficile mais il faut passer par les API windows.
en plus il y a plusieurs facons de faire ( ShowWindow_() ou SetWindowPlacement_() ).
Code : Tout sélectionner
;-
;-
;-
Enumeration ; fenêtres
#WNDMAIN
EndEnumeration
Enumeration ; gadgets
#GADLIST
#GADREFRESH
#GADMINIMIZE
#GADMAXIMIZE
#GADFLASH
EndEnumeration
Enumeration ; colonnes
#COLTITLE
#COLCLASS
#COLSTYLE
#COLEXSTYLE
EndEnumeration
Macro GetClassName(hWindow)
PeekS(@StrGetClassName.s{256}, GetClassName_(hWindow, @StrGetClassName.s{256}, 256))
EndMacro
Macro GetWindowText(hWindow)
PeekS(@StrGetWindowText.s{256}, GetWindowText_(hWindow, @StrGetWindowText.s{256}, 256))
EndMacro
Procedure.l EnumWindowsCallBack(hWindow.l, lParam.l)
Protected item.l, WndIcon.l, WndStyle.l, WndStyles.s, WndExStyle.l, WndExStyles.s
If IsWindow_(hWindow) And Not GetWindowLong_(hWindow, #GWL_HWNDPARENT)
WndStyle = GetWindowLong_(hWindow, #GWL_STYLE)
WndExStyle = GetWindowLong_(hWindow, #GWL_EXSTYLE)
If ( WndStyle & #WS_VISIBLE ) And ( WndStyle & #WS_CAPTION ) And ( Not WndExStyle & #WS_EX_TOOLWINDOW )
If ( WndStyle & #WS_MINIMIZE ) : WndStyles + "Minimize, " : EndIf
If ( WndStyle & #WS_MAXIMIZE ) : WndStyles + "Maximize, " : EndIf
If ( WndExStyle & #WS_EX_TOPMOST ) : WndExStyles + "TopMost, " : EndIf
If ( WndExStyle & #WS_EX_APPWINDOW ) : WndExStyles + "AppWindow, " : EndIf
If Not WndIcon : WndIcon = SendMessage_(hWindow, #WM_GETICON, 0, 0) : EndIf
If Not WndIcon : WndIcon = GetClassLong_(hWindow, #GCL_HICONSM) : EndIf
If Not WndIcon : WndIcon = GetClassLong_(hWindow, #GCL_HICON) : EndIf
If Not WndIcon : WndIcon = LoadIcon_(0, #IDI_APPLICATION) : EndIf
item = CountGadgetItems(lParam)
If AddGadgetItem(lParam, item, #Null$, WndIcon)
SetGadgetItemText(lParam, item, GetWindowText(hWindow), #COLTITLE)
SetGadgetItemText(lParam, item, GetClassName(hWindow), #COLCLASS)
SetGadgetItemText(lParam, item, WndStyles, #COLSTYLE)
SetGadgetItemText(lParam, item, WndExStyles, #COLEXSTYLE)
SetGadgetItemColor(lParam, item, #PB_Gadget_BackColor, $F0F0F0, #COLCLASS)
SetGadgetItemColor(lParam, item, #PB_Gadget_BackColor, $F0F0F0, #COLEXSTYLE)
SetGadgetItemData(lParam, item, hWindow)
EndIf
EndIf
EndIf
ProcedureReturn #True
EndProcedure
;-
;-
;-
width = 510
height = 250
If OpenWindow(#WNDMAIN, 0, 0, width, height, "Mes fenêtres", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
StickyWindow(#WNDMAIN, #True)
If CreateGadgetList(WindowID(#WNDMAIN))
ListIconGadget(#GADLIST, 5, 5, width-10, height-45, "Titre", 200, #PB_ListIcon_FullRowSelect)
AddGadgetColumn(#GADLIST, #COLCLASS, "Classe", 90)
AddGadgetColumn(#GADLIST, #COLSTYLE, "Style", 90)
AddGadgetColumn(#GADLIST, #COLEXSTYLE, "ExStyle", 90)
ButtonGadget(#GADREFRESH, 5, height-30, 100, 25, "Actualiser")
ButtonGadget(#GADMINIMIZE, 110, height-30, 100, 25, "Minimiser")
ButtonGadget(#GADMAXIMIZE, 215, height-30, 100, 25, "Maximiser")
ButtonGadget(#GADFLASH, 320, height-30, 100, 25, "Flasher")
DisableGadget(#GADMINIMIZE, #True)
DisableGadget(#GADMAXIMIZE, #True)
DisableGadget(#GADFLASH, #True)
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #GADLIST
If EventType() = #PB_EventType_Change
If GetGadgetState(#GADLIST) = -1
DisableGadget(#GADMINIMIZE, #True)
DisableGadget(#GADMAXIMIZE, #True)
DisableGadget(#GADFLASH, #True)
Else
DisableGadget(#GADMINIMIZE, #False)
DisableGadget(#GADMAXIMIZE, #False)
DisableGadget(#GADFLASH, #False)
EndIf
EndIf
Case #GADREFRESH
ClearGadgetItemList(#GADLIST)
EnumWindows_(@EnumWindowsCallBack(), #GADLIST)
Case #GADMINIMIZE
ShowWindow_(GetGadgetItemData(#GADLIST, GetGadgetState(#GADLIST)), #SW_SHOWMINIMIZED)
Case #GADMAXIMIZE
ShowWindow_(GetGadgetItemData(#GADLIST, GetGadgetState(#GADLIST)), #SW_SHOWMAXIMIZED)
Case #GADFLASH
FlashWindow_(GetGadgetItemData(#GADLIST, GetGadgetState(#GADLIST)), #False)
EndSelect
EndSelect
ForEver
EndIf
End
;-
;-
;-