FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Cacher la barre des tâches Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Cacher la barre des tâches Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Cacher la barre des tâches Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Cacher la barre des tâches Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Cacher la barre des tâches Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Cacher la barre des tâches Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Cacher la barre des tâches Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Cacher la barre des tâches Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Cacher la barre des tâches Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Cacher la barre des tâches Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Cacher la barre des tâches Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Cacher la barre des tâches Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Cacher la barre des tâches Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Cacher la barre des tâches Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Cacher la barre des tâches Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

 

 Cacher la barre des tâches

Aller en bas 
+2
Klaus
JL35
6 participants
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 12:25

J'aimerais pouvoir cacher (et faire réapparaître) à volonté la barre des tâches Windows (dont d'ailleurs je ne me sers jamais), pour pouvoir en certaines occasions gagner 30 pixels d'écran en hauteur.

Je sais qu'il existe une fonction de user32.dll pour faire ça: ShowWindow, mais je n'arrive pas à formaliser les paramètres, apparemment deux au choix: SW_SHOW = 0: montrer, et SW_HIDE = 5: cacher.

Je pense que notre Grand Maître papydall, à la science infinie (mais non ce n'est pas du fayotage ni de la basse flatterie, c'est complètement désintéressé !) doit pouvoir faire ça en deux coups de cuiller à pot.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 12:36

Un extrait de KGF.chm:
Cacher la barre des tâches Aa190
dans la section "Fonctions de gestion des fenêtres"...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 13:07

Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 16:32

Merci Klaus pour la solution avec KGF.dll, il y a au moins ça, je me la mets de côté.
Et ça marche, la preuve :
Code:
TaskBar(0): ' cacher la barre des tâches
PAUSE 5000
TaskBar(1): ' rétablir la barre des tâches
TERMINATE

SUB TaskBar(onoff%)
  ' Cacher (onoff%=0) ou rétablir (onoff%=1) la barre des tâches
  DIM_LOCAL r%
  DLL_ON "C:\PANORAMIC\KGF\KGF.dll": ' <- à ajuster !
  r% = DLL_CALL2("SetTaskBar",0,onoff%)
  DLL_OFF
END_SUB

J'aurais aimé pouvoir le faire avec un simple appel de user32, mais je n'arrive pas à mettre ça en forme (merci Jean Claude pour le lien, il y en a plein, mais je ne maîtrise pas la conversion en Panoramic !)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 17:23

Voici le code de la fonction dans la DLL. Comme tu vois, ce n'est pas juste deux ou trois lignes...
Code:
function SetTaskBar(act, par: integer):integer; stdcall; export;
// ce code a été fourni par Papydall pour act=0 et act=1 !
const
  ABM_SETSTATE = $0000000a;   // non déclaré en Delphi !
var
  ABData: TAppBarData;
  Flash: FLASHWINFO;
  abd: TAppBarData;
begin
  result := -1;
//  try
    case act of
      0: begin
           case par of
             0: ShowWindow(FindWindow('Shell_TrayWnd',nil),SW_HIDE);              // cacher la barre des tâches
             1: ShowWindow(FindWindow('Shell_TrayWnd',nil),SW_RESTORE);           // montrer la barre des tâches
             2: begin
                  if IsWindowVisible(FindWindow('SHELL_TRAYWND', nil)) then result := 1
                                                                       else result := 0;
                  exit;
                end;
           end;
         end;
      1: begin
           case par of
             0: begin                                                             // bloquer la barre des tâches
                  ABData.cbSize := sizeof(tappbardata);
                  ABData.hWnd := FindWindow('SHELL_TRAYWND', nil);
                  ABData.lParam := LParam(0);
                  SHAppBarMessage(ABM_SETSTATE, ABData);
                end;
             1: begin                                                             // autohide la barre des tâches
                  ABData.cbSize := sizeof(tappbardata);
                  ABData.hWnd := FindWindow('SHELL_TRAYWND', nil);
                  ABData.lParam := LParam(ABS_ALWAYSONTOP or ABS_AUTOHIDE);
                  SHAppBarMessage(ABM_SETSTATE, ABData);
                end;
             2: begin
                  FillChar(abd, SizeOf(TAppBarData), 0);
                  abd.cbSize := SizeOf(TAppBarData);
                  if SHAppBarMessage(ABM_GETSTATE,abd)=ABS_AUTOHIDE then result := 1
                                                                      else result := 0;
                  exit;
//                  GetWindowRect(GetDesktopWindow,wr);
//                  GetWindowRect(FindWindow('Shell_TrayWnd',nil),tr);
                end;
           end;
         end;
      2: begin
           case par of
             0: begin                                                             // cacher le bouton du programme dans la barre des tâches
                  ShowWindow(ApplicationHandle,SW_HIDE);
                end;
             1: begin                                                             // montrer le bouton du programme dans la barre des tâches
                  ShowWindow(ApplicationHandle,SW_SHOW);
                end;
             2: begin
                  if IsWindowVisible(ApplicationHandle) then result := 1
                                                        else result := 0;
                  exit;
                end;
           end;
         end;
      3: begin
           case par of
             0: begin                                                             // stop flasher le bouton du programme dans la barre des tâches
                  FillChar(Flash, SizeOf(Flash), 0);
                  Flash.cbSize := SizeOf(Flash);
                  Flash.hwnd := ApplicationHandle;
                  Flash.uCount := 0;
                  Flash.dwTimeOut := 0;
                  Flash.dwFlags := FLASHW_STOP;
                  FlashWindowEx(Flash);
                end;
             1: begin                                                             // start flasher le bouton du programme dans la barre des tâches
                  FillChar(Flash, SizeOf(Flash), 0);
                  Flash.cbSize := SizeOf(Flash);
                  Flash.hwnd := ApplicationHandle;
                  Flash.uCount := 5000;
                  Flash.dwTimeOut := 500;
                  Flash.dwFlags := FLASHW_ALL;
                  FlashWindowEx(Flash);
                end;
           end;
         end;
    end;
    result := 0;
//  except
//  end;
end;
exports SetTaskBar;
D'ailleurs, pour code 0 et 1, l'implémentation est basée sur un indication de Papydall.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 18:24

Salut tout le monde.
Il y a une astuce très simple pour faire disparaitre la barre de tâches.
Voici comment procéder :
1) Cliquer avec le bouton droit de la souris sur la barre des tâches.
2) Choisir la commande Propriétés
3) Cochez la case Masquer automatiquement la barre des tâches puis validez par OK.
La barre des tâches disparaît alors.
4) Pour la faire réapparaître, placez simplement le curseur de la souris tout en bas de l'écran.


@JL35
JL35 a écrit:
Je pense que notre Grand Maître papydall, à la science infinie (mais non ce n'est pas du fayotage ni de la basse flatterie, c'est complètement désintéressé !) doit pouvoir faire ça en deux coups de cuiller à pot.

Désolé Maître JL35, je ne vois pas comment procéder, et comme Maître Klaus à une solution toute prête avec la célébrissime KGF.DLL, autant l’utiliser. tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 19:00

Bon, eh bien il semble que ça ne soit pas aussi simple que je le pensais...
Du coup je garde la solution Klaus dans ma collection de subs
Et merci aussi à toi Grand Maître papydall pour ta mise au point !
Cacher la barre des tâches Repent11
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 20:12

Sur ce coup là, Papydall, tu me surprends !

En aiguillant JL35 sur ce lien => https://www.developpez.net/forums/d10299/dotnet/developpement-windows/windows-forms/vb-net-masquer-barre-taches-windows/
Je me suis dit que tu allais trouver une solution, à ta façon, avec la DLL "USER32".
Ben... je me suis trompé Embarassed

Bon, vu les interventions de Klaus, il semble que ce n'est pas si simple...

En tous cas on aura, chacun, fait ce qu'on a pu.

A+



Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 20:57

Moi aussi mon cher Jean Claude j'ai cru que c'était assez simple pour nos spécialistes, avec seulement deux appels à user32.dll
- chercher le handle de la barre avec la fonction handle("Shell_TrayWnd")
- appeler "ShowWindow" avec ce handle, fonction 0 ou 5 pour montrer ou cacher...
mais apparemment ce n'est pas aussi simple que ça...
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 21:11

Bon, on a la KGF.DLL qui résout le problème...
Même si on doit l'utiliser dans un code Panoramic ,uniquement pour masquer la barre des taches, c'est un peu lourd mais ça marche.

Very Happy

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyVen 18 Mai 2018 - 21:27

C'est bien ce que je me dis, ça marche très bien, mais ajouter tout kgf.dll à un exécutable uniquement pour ça, c'est un peu disproportionné.
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 9:11

Ce n'est pas très compliqué de traduire le code dans le lien posté par jean-claude:
Code:

dim user32%
user32%=2
LIBRARY user32%,"user32.dll"

' fonction : Retrieves a handle to the top-level window whose class name and window name match the specified strings
function "FindWindow","FindWindowA",user32%,"II","stdcall"

' fonction : Changes the size, position, and Z order of a child, pop-up, or top-level window
 command "WindowPos","SetWindowPos",user32%,"IIIIIII","stdcall"                               :' <-----  panoramic ne supporte pas plus de 6 paramètres, cette fonction en a besoin de 7 !!!

print "Cacher la barre des taches WINDOWS" : print
CacherBarreTacheWindows()
pause 1500

print "Montrer la barre des taches WINDOWS" : print
MontrerBarreTacheWindows()


END
Sub CacherBarreTacheWindows()
   dim_local TaskbarHandle , lpClassName$ , lpWindowName$ , TASKBAR_SHOW , TASKBAR_HIDE
   TASKBAR_SHOW = hex("40")
   TASKBAR_HIDE = hex("80")
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""
   PEEK_REVERSE

   TaskbarHandle = FindWindow(PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))
   WindowPos TaskbarHandle, 0, 0, 0, 0, 0, TASKBAR_HIDE                                       :' <-----  panoramic ne supporte pas plus de 6 paramètres, cette fonction en a besoin de 7 !!!
End_Sub
 
Sub MontrerBarreTacheWindows()
   dim_local TaskbarHandle , lpClassName$ , lpWindowName$ , TASKBAR_SHOW , TASKBAR_HIDE
   TASKBAR_SHOW = hex("40")
   TASKBAR_HIDE = hex("80")
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""
   PEEK_REVERSE

   TaskbarHandle = FindWindow(PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))
   WindowPos TaskbarHandle, 0, 0, 0, 0, 0, TASKBAR_SHOW                                       :' <-----  panoramic ne supporte pas plus de 6 paramètres, cette fonction en a besoin de 7 !!!
End_Sub
mais il ne peut pas marcher car panoramic ne supporte que 6 paramètres pour les LIBRARY/DLL_CALLx alors que l'on en a besoin de 7 pour l'appel de "SetWindowPos".
Les commandes de LIBRARY ne sont pas la priorité de jack, donc ce code n'est pas près de fonctionner.


Dernière édition par silverman le Sam 19 Mai 2018 - 12:51, édité 2 fois
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 10:53

Merci silverman pour tes explications.
Dommage.
C'est clair que ce n'est pas aussi simple que ce à quoi je rêvais au départ, un ou deux simples appels à user32.dll.
Heureusement il y a la solution Kgf.dll, c'est lourd pour ne faire que ça, mais ça a au moins le mérite d'exister !
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 11:30

@JL35:
Est-ce que tu crois qu'il serait utile que je fasse une micro-DLL ne contenant que cette fonction ? Je peux le faire - ce n'est pas compliqué.

Il y a quelques années, j'avais toute une collection de DLLs, organisée par thématiques. Mais comme on ne pouvait ouvrir qu'une seule DLL par DLL_ON, j'ai dû tout réunir dans une seule qui a bien grossi depuis. Mais techniquement, je pourrais le faire sans problème.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 11:49

A tout hasard, je l'ai fait... J'ai placé TaskBar.dll dans le WebDav, dossier dlls.

Il y a un léger changement de paramètres, du fait que la fonction n'exécute plus dans le contexte général de KGF.dll. La nouvelle syntaxe ext:
Code:
res% = dll_call3('SetTaskBar',handle_application,act%,par%)
J'ai inséré un premier paramètre devant les deux paramètres existants, afin d'assurer le lien vers Panoramic.

Voici une démo:
Code:
' test_TaskBar.bas

label montrer, cacher
dim res%
button 1 : top 1,10 : left 1,10 : caption 1,"Montrer" : on_click 1,montrer
button 2 : top 2,10 : left 2,110 : caption 2,"Cacher" : on_click 2,cacher

dll_on "TaskBar.dll"
end

montrer:
  res% = dll_call3("SetTaskBar",handle_application,1,0)
  return
  
cacher:
  res% = dll_call3("SetTaskBar",handle_application,1,1)
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 12:18

Sinon, j'ai trouvé ça et ça marche:
Code:
dim user32%
user32%=2
LIBRARY user32%,"user32.dll"

' fonction : Retrieves a handle to the top-level window whose class name and window name match the specified strings
function "FindWindow","FindWindowA",user32%,"II","stdcall"

' fonction : Sets the specified window's show state
command "ShowWindow","ShowWindow",user32%,"II","stdcall"


CacherBarreTacheWindows()
print "taskbar_show() = ",taskbar_show()

pause 1500

MontrerBarreTacheWindows()
print "taskbar_show() = ",taskbar_show()
  
  
END
Sub CacherBarreTacheWindows()
 if variable("windowstaskbar_state")=0
    dim windowstaskbar_state
    PEEK_REVERSE
 end_if
   dim_local TaskbarHandle , lpClassName$ , lpWindowName$
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""

   TaskbarHandle = FindWindow(PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))
   windowstaskbar_state=0
   ShowWindow TaskbarHandle,0
End_Sub


Sub MontrerBarreTacheWindows()
 if variable("windowstaskbar_state")=0
    dim windowstaskbar_state
    PEEK_REVERSE
 end_if
   dim_local TaskbarHandle , lpClassName$ , lpWindowName$
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""

   TaskbarHandle = FindWindow(PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))
   windowstaskbar_state=1
   ShowWindow TaskbarHandle,5
End_Sub


fnc taskbar_show()
 if variable("windowstaskbar_state")=0
    dim windowstaskbar_state
    PEEK_REVERSE
 end_if
   result windowstaskbar_state
end_fnc

EDIT : la piste de 'showwindow' était la bonne, du coup ce code correspond exactement à ta demande de départ Very Happy


Dernière édition par silverman le Sam 19 Mai 2018 - 13:06, édité 1 fois
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 12:57

Merci à tous les deux, c'est sympa !
Et j'e pense que cette opération peut intéresser d'autres personnes, surtout si les écrans sont un peu petits (portables) le gain de quelques pixels d'affichage est toujours intéressant.

Ceci dit, ta solution Klaus est très bien, mais nécessite quand même d'embarquer un module extérieur, si léger soit-il.
Je la garde quand même sous le coude, et je regarde de plus près la solution silverman (qui n'est quand même pas d'une simplicité qui saute aux yeux !).

Il me semble avoir vu des scripts vbs (exécutables facilement sous Panoramic) qui font le boulot très simplement, mais je n'ai pas su les retranscrire...
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 13:14

Rassure toi JL35, c'est plus simple que ça en à l'air. (C'est la mise en place de 'showwindow' que tu a évoqué dans tion premier post)
Il y a le chargement de la LIBRARY "user32" suivi de la configuration d'une 'function' et d'une 'command'. Ensuite, les subs font le boulot. La 'fnc' est optionnelle, elle est là pour connaître l'état de la 'taskbar' (visible/caché).
Je peux traduire le code avec des 'dll_callx()' si tu préfères.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 13:27

Eh! je préfère nettement la solution des DLL_CALL a priori, ça me paraît plus simple... Very Happy
L'état actuel de la taskbar (Show/hide) est optionnel ! dans mon esprit le programme la cache une fois pour toutes (mais c'est vrai que pour bien faire il doit la rétablir en sortant...).

Dans ma naïveté, je voyais seulement deux appels à user32.dll:
1) récupérer le handle de la taskbar ("Shell_TrayWnd") avec la fonction "FindWindow"
2) passer ce handle à la fonction "ShowWindow" avec le paramètre 0 (Hide) ou 5 (Show)
mais ce n'est apparemment pas aussi simple !
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 13:33

Salut tout le monde.

Mon problème était de déterminer le HANDE de la barre de tâches.
Silvermann m’a donné l’idée de le faire à partir de LYBRARY.
Du coup, ça devient facile de continuer non pas en appelant la fonction SetWindowPos qui nécessite 7 paramètres ce que Panoramic n’autorise pas, mais en appelant la fonction ShowWindow

Le code suivant permet de cacher / montrer la barre de tâches.
Mais le bouton Démarrer reste tout de même visible.
Je vais tenter de le faire disparaître lui aussi.


Code:

rem ============================================================================
rem         Cacher / Montrer la barre de tâches
rem ============================================================================
rem Merci à Silverman pour l’astuce de retrouver le handle de la barre de tâches
rem ============================================================================

HideTaskbar(GetTaskbarHandle())
print "La barre de tâches est cachée ... Elle réapparaitra dans 3 secondes"
pause 3000
ShowTaskbar(TaskbarHandle%)
print "La barre de tâches est à nouveau visible !"

end
rem ============================================================================
FNC GetTaskbarHandle()
    if variable("TaskbarHandle%") = 0 then dim TaskbarHandle%
    dim_local lpClassName$ , lpWindowName$ , user32%
    user32% = 2
    LIBRARY user32%,"user32.dll"
    function "FindWindow","FindWindowA",user32%,"II","stdcall"
    lpClassName$ = "Shell_traywnd"
    lpWindowName$ = ""
    PEEK_REVERSE
    TaskbarHandle% = FindWindow(PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))

    result TaskbarHandle%
  
End_FNC
rem ============================================================================
SUB HideTaskbar(handle%)
    dim_local ret%
    dll_on "user32"
    ret% = dll_call2("ShowWindow",handle%,0)
    dll_off
END_SUB
rem ============================================================================
SUB ShowTaskbar(handle%)
    dim_local ret%
    dll_on "user32"
    ret% = dll_call2("ShowWindow",handle%,5)
    dll_off
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 13:38

Bon je me suis absenté quelques minutes et voilà que Silverman m’a devancé !
Au final, c’est presque la même solution que ta tienne.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 13:39

Merci à Klaus et Silverman,

Voilà des solutions intéressantes. cheers

Je ne vais pas prendre partie pour l'une ou l'autre, car en fait et suivant son besoin on peut choisir.

Concernant la solution utilisant "USER32", je me pose la question (je sais je suis parano) de savoir si un jour ou l'autre Microsoft ne la remplace pas dans son OS. What a Face
Dans un cas extrême comme celui-ci, la DLL "TaskBar.dll" de Klaus fonctionnerait t'elle toujours ???
C'est une question de programmeur du dimanche Very Happy Very Happy Very Happy

En tous cas notre ami JL35 n'a plus que l'embarras du choix. cheers

A+

PS: Bonjour Papydall, on a posté en même temps.
Je vais étudier ta solution.


RE PS: je viens de tester la solution Papydall.
C'est propre, ça marche, et c'est simple.
Bravo !

cheers
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptySam 19 Mai 2018 - 14:06

Merci à tous pour vos solutions 'intégrées', c'est très bien comme ça.

J'ai retrouvé aussi dans mes archives (répertoire 'UTIL' !) un module qui s'appelle Nircmd.exe et qui permet en ligne de commande (parmi un tas d'autres choses), donc en Execute_wait Panoramic, de cacher ou afficher une fenêtre Windows:
nircmd.exe win hide class Shell_Traywnd : cacher la fenêtre Shell_Traywnd (barre des tâches)
nircmd.exe win show class Shell_Traywnd : rétablir la fenêtre
( http://nirsoft.net/utils/nircmd2.html )

Mais c'est une ressource externe...
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyDim 20 Mai 2018 - 10:18

Et revoici le code avec des dll_callx(). J'ai supprimé la 'fnc' puisque tu n'en a pas besoin, du coup c'est plus clair:
Code:
PEEK_REVERSE   :' c'est le standard windows, et comme il n'est pas actif par défaut, il faut l'activer. INDISPENSABLE !!!

CacherBarreTacheWindows()
print "La barre des tâches est caché"

pause 1500

MontrerBarreTacheWindows()
print "La barre des tâches est visible"
  
  
END
'
Sub CacherBarreTacheWindows()
 dim_local TaskbarHandle , lpClassName$ , lpWindowName$ , null
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""
   '
   dll_on "user32"
    TaskbarHandle = dll_call2("FindWindowA" , PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)) )
    null = dll_call2("ShowWindow", TaskbarHandle , 0)
   dll_off
End_Sub


Sub MontrerBarreTacheWindows()
 dim_local TaskbarHandle , lpClassName$ , lpWindowName$ , null
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""
   '
   dll_on "user32"
    TaskbarHandle = dll_call2("FindWindowA" , PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)) )
    null = dll_call2("ShowWindow", TaskbarHandle , 5)
   dll_off
End_Sub
Il faudra veiller à fermer la dll en cours d'utilisation avant d'utiliser ces subs, ce que ne n'impose pas la version avec 'LIBRARY'
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches EmptyDim 20 Mai 2018 - 11:57

Ah ben oui, je préfère nettement comme ça !
Merci silverman, t'es un chef ! Wink

Du coup j'ai repris ton code (faut bien que je mette mon grain de sel), et j'ai fait une seule routine, on ou off.
Et j'ai remplacé les PEEK_REVERSE et PEEK(32) par la méthode à l'ancienne (j'avoue à ma honte que je suis sur une vieille version de l'éditeur).
Code:
TaskBar(0)
PAUSE 2000
TaskBar(1)
END

SUB TaskBar(of%)
  ' Barre de tâches Windows: of% = 0: cacher, of% = 1: montrer
   DIM_LOCAL TaskbarHandle,lpClassName$,lpWindowName$,null,lpc%,lpw%,ad%
   lpClassName$ = "Shell_traywnd"
   lpWindowName$ = ""
   ad% = ADR(lpClassName$)
   lpc% = 256*256*256*PEEK(ad%+3)+256*256*PEEK(ad%+2)+256*PEEK(ad%+1)+PEEK(ad%)
   ad% = ADR(lpWindowName$)
   lpw% = 256*256*256*PEEK(ad%+3)+256*256*PEEK(ad%+2)+256*PEEK(ad%+1)+PEEK(ad%)
   IF of% <> 0 THEN of% = 5: ' montrer
   DLL_ON "user32.dll"
       TaskbarHandle = DLL_CALL2("FindWindowA" , lpc%, lpw% )
       null = DLL_CALL2("ShowWindow", TaskbarHandle , of%)
   DLL_OFF
END_SUB
Revenir en haut Aller en bas
Contenu sponsorisé





Cacher la barre des tâches Empty
MessageSujet: Re: Cacher la barre des tâches   Cacher la barre des tâches Empty

Revenir en haut Aller en bas
 
Cacher la barre des tâches
Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» Faire apparaître PAnoramic_Editor dans la barre des tâches
» cacher un MAIN_MENU_POP
» on peut pas cacher un 3d_plane
» Lanceur de tâches
» Lanceur de tâches (bis)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: