Page 2 sur 2
Publié : lun. 30/juin/2008 13:09
par Kwai chang caine
Flype a écrit :une autre méthode plus simple :
Code : Tout sélectionner
Procedure RemoveFromTaskbar(hwnd)
If IsWindow_(hwnd)
a=hwnd : b=GetWindowLong_(a,#GWL_HWNDPARENT) : If b<>0 : a=b : EndIf ; Needed for "TaskAssign.exe".
ShowWindow_(a,#SW_HIDE) : GetWindowRect_(a,win.RECT) : w=win\right-win\left : h=win\bottom-win\top
SetWindowLong_(a,#GWL_EXSTYLE,#WS_EX_TOOLWINDOW) : SetWindowPos_(a,0,0,0,w-1,h-1,#SWP_NOMOVE)
SetWindowPos_(a,0,0,0,w,h,#SWP_NOMOVE|#SWP_SHOWWINDOW) : ProcedureReturn 1
EndIf
EndProcedure
Debug RemoveFromTaskbar(FindWindow_(0,"titre de la fenetre"))
Le code de FLYPE y marche à donf
Tellement y marche bien que j'arrive plus a faire réapparaitre la fenetre de mon appli exterieure dans la barre des taches
Quelqu'un a t'il l'antidote ???

Publié : lun. 30/juin/2008 13:44
par Backup
dans le code que tu donne , tu fais
ce serai pas un
ShowWindow_(a,#SW_SHOW)
qu'il faudrai faire pour inverser ?

(pas testé !

)
Publié : lun. 30/juin/2008 15:29
par Kwai chang caine
Bonjour DOBRO
Bah non, le fait de changer HIDE en SHOW montre la fenetre sur le bureau, mais elle ne reapparait pas dans la barre des taches

Publié : lun. 30/juin/2008 17:36
par Progi1984
Publié : lun. 30/juin/2008 20:44
par Gillou
ça faisait longtemps, salut à tous!
Plus de librairie, merci les interfaces
mon code mis au goût du jour :
Global TaskBarList.iTaskBarList
ProcedureDLL HideFromTaskbar(Window, state) ; Cache la fenêtre de la barre des tâches
If state = 0
TaskBarList\AddTab( WindowID (Window)) ; Montrer la fenêtre
Else
TaskBarList\DeleteTab( WindowID (Window)) ; Cacher la fenêtre
EndIf
EndProcedure
ProcedureDLL InitHideFromTaskbar() ; Initialise le mode cacher de la barre des tâches
CoInitialize_ (0)
CoCreateInstance_ (?CLSID_TaskbarList, 0, 1, ?IID_ITaskbarList, @TaskBarList)
TaskBarList\HrInit() ; Initialiser l'objet
DataSection
CLSID_TaskbarList :
Data.l $56FDF344
Data.w $FD6D, $11D0
Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
IID_ITaskbarList :
Data.l $56FDF342
Data.w $FD6D, $11D0
Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
EndDataSection
EndProcedure
ProcedureDLL EndHideFromTaskbar() ; Coupe le mode cacher de la barre des tâches
TaskBarList\Release()
CoUninitialize_ ()
EndProcedure
#Window =1
#bouton =1
InitHideFromTaskbar()
OpenWindow ( #Window ,10,10,300,300, "coucou" , #PB_Window_SystemMenu )
CreateGadgetList ( WindowID ( #Window ))
ButtonGadget ( #bouton , 10,10, 250, 20, "fait réaparaitre dans la barres des taches" )
HideFromTaskbar( #Window , 1) ; <--- retire la fenetre de la barre des taches
state = #True
Repeat
Select WaitWindowEvent ()
Case #PB_Event_Gadget
Select EventGadget ()
Case #bouton
If state = #True
state = #False
HideFromTaskbar( #Window , 0)
Else
state = #True
HideFromTaskbar( #Window , 1)
EndIf
EndSelect
Case #PB_Event_CloseWindow ; If the user has pressed on the close button
Break
EndSelect
ForEver
Publié : lun. 30/juin/2008 21:15
par Backup
Merci Gillou !
Effectivement c'est mieux

Publié : mar. 01/juil./2008 8:13
par Kwai chang caine
Merci gilou.
Le probleme c'est que c'est une application exterieure que je souhaite cacher/montrer.
Donc je travaille avec son handle
J'ai bien tenté de remplacer ton "WindowID (Window)" par Hwnd, mais ça ne marche pas

Publié : mar. 01/juil./2008 8:57
par Backup
........
Publié : mar. 01/juil./2008 9:27
par Kwai chang caine
Merci les amis !!!
Exactement ce que je voulais
GILLOU tu te fait trop rare
Encore merci à GILLOU et DOBRO
Bonne journée
Publié : mar. 01/juil./2008 17:18
par Droopy
Joli code Gillou

Publié : mar. 01/juil./2008 22:10
par Gillou
Content que ça vous plaît
Kwai Chang Caine, Dobro a répondu pour moi
Vous pouvez aussi utilisé d'autres paramètres de l'interface :
Pour activer la fenêtre dans la barre des tâches :
TaskBarList\ActivateTab(WindowID(#Window))
ou pour activer la fenêtre (dans les processus) sans que cela soit visible:
TaskBarList\SetActiveAlt(WindowID(#Window))
D'autres infos ici:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Publié : mar. 01/juil./2008 22:29
par Backup
Merci pour tes precisions Gillou

Publié : mar. 01/juil./2008 23:25
par Ar-S
Superbe ce code ! Merci Gillou !