FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Biomorphe de Pickover
par papydall Aujourd'hui à 0:49

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Dim 23 Sep 2018 - 22:14

» Planétarium virtuel.
par Pedro Alvarez Dim 23 Sep 2018 - 19:50

» Virus/Antivirus
par JL35 Dim 23 Sep 2018 - 10:55

» Calculatrice
par papydall Ven 21 Sep 2018 - 22:45

» Orbites de l’ensemble de Mandelbrot
par Minibug Ven 21 Sep 2018 - 21:32

» Demande pour Jack concernant PanExpress
par Minibug Ven 21 Sep 2018 - 11:04

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Cacher la barre des tâches

Aller en bas 
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
JL35



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

MessageSujet: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur
Klaus

avatar

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

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

Un extrait de KGF.chm:

dans la section "Fonctions de gestion des fenêtres"...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

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

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Ven 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Ven 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
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 675
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
silverman

avatar

Nombre de messages : 675
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 675
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
papydall

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
Jean Claude

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Sam 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
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 675
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Cacher la barre des tâches   Dim 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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Dim 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
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Cacher la barre des tâches   

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
-
» [Résolu]Icone son barre des tâches disparu.
» [résolu]Epinglage de sites dans barre de tâches
» [TOUTES VERSIONS] Afficher une barre des tâches façon Windows 10 sur votre forum
» Barre des tâches changeante
» Comment installer toute la barre de tâches de basecamp sous vista

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: