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
» Fonctionnement du caret_x_position(N)
par Jack Hier à 20:36

» Problèmes en cours.
par Jack Hier à 20:31

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 19:55

» Exemple d'une nouvelle version d'un GRID
par Minibug Hier à 17:36

» Comment faire fonctionner \qj en RTF ?
par jjn4 Mer 12 Déc 2018 - 19:25

» Mais où est donc passé Klaus ?!
par Jicehel Mer 12 Déc 2018 - 13:38

» Problème avec SaveStringList.
par Klaus Mer 12 Déc 2018 - 12:14

» Je suis de retour !
par Klaus Mer 12 Déc 2018 - 12:10

» Connexion au forum
par mindstorm Mer 5 Déc 2018 - 19:09

» Version instantanée V 0.9.29i5 du 17/11/2018
par silverman Ven 30 Nov 2018 - 10:37

» imprimer avec Print.dll
par JL35 Jeu 29 Nov 2018 - 21:33

» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
par Minibug Dim 25 Nov 2018 - 15:37

» Impression de documents
par JL35 Ven 23 Nov 2018 - 19:45

» Logiciel de soutien scolaire.
par Marc Jeu 22 Nov 2018 - 20:51

» Logiciel de soutien en langues.
par Marc Jeu 22 Nov 2018 - 19:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

 Cacher la barre des tâches

Aller en bas 
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
papydall

avatar

Nombre de messages : 6056
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   Dim 20 Mai 2018 - 13:34

Salut tout le monde.

Et moi ! Et moi !
Voici ma version de Cacher / montrer la barre de tâches

Code:

rem ============================================================================
rem              Cacher / Monter la barre de tâches
rem ============================================================================

dll_on "user32"
CacherBarreTacheWindows()
message "La barre des tâches est cachée"+ chr$(13) + "Seul le bouton DEMARRER reste visible"
MontrerBarreTacheWindows()
message "La barre des tâches est de nouveau visible."
dll_off
terminate
rem ============================================================================
' Obtenir le HANDLE de la barre de tâches
FNC GetTaskbarHandle%()
    dim_local lpClassName$ , lpWindowName$ , null
    lpClassName$ = "Shell_traywnd" : lpWindowName$ = ""
    PEEK_REVERSE  
    result dll_call2("FindWindowA" , PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))
END_FNC
rem ============================================================================
' Cacher la barre de tâches ; le bouton DEMARRER reste visible !
SUB CacherBarreTacheWindows()
    dim_local ret%
    ret% = dll_call2("ShowWindow", GetTaskbarHandle%() , 0)        
END_SUB
rem ============================================================================
' Restaurer la barre de tâches
SUB MontrerBarreTacheWindows()
    dim_local ret%    
    ret% = dll_call2("ShowWindow", GetTaskbarHandle%() , 5)        
END_SUB
rem ============================================================================

La barre de tâches possède 3 enfants :
• ‘Button’ (le bouton Démarrer)
• ‘ReBarWindow32’ (la partie centrale)
• ‘TrayNotifyWnd’ (la partie de droite, avec l’heure)


En déterminant leur HANDLE, on peut cacher / montrer ces enfants de la barre de tâches par la fonction ShowWindow.
On peut également les déplacer à l’aide de la fonction MoveWindow.

Zieutez cette page.

Windows API Reference: Functions , c’est ici avec des exemples de codes en VB.

Voici une autre page
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Dim 20 Mai 2018 - 13:52

Pour s'amuser,

La version JL35 animée par mes soins Very Happy

Code:
' faire vibrer la barre des taches.

dim n%,t%
label Close0
on_close 0,Close0

for n%=1 to 16
    t%=t%+1
    if t%>1 then t%=0
    TaskBar(t%)
    PAUSE 60
next n%
END

Close0:
  TaskBar(1):' pour remettre en service les paramètres de la barre des taches.
RETURN

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


A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Dim 20 Mai 2018 - 14:30

Et voici la traduction en panoramic du code VB du lien posté par papydall, pour retrouver le handle des enfants de la taskbar Cool
Code:
' https://llb.developpez.com/taskbar/
PEEK_REVERSE

dim GW_CHILD% , GW_HWNDNEXT%
dim SW_HIDE% , WM_CLOSE% , SW_MAXIMIZE% , SW_NORMAL% , SW_MINIMIZE%
GW_CHILD% = 5
GW_HWNDNEXT% = 2
SW_HIDE% = 0
WM_CLOSE% = 16
SW_MAXIMIZE% = 3
SW_NORMAL% = 1
SW_MINIMIZE% = 6
'
dim Tray% , Child% , C$
C$=string$(127,chr$(0))


Tray% = FindWindow("Shell_traywnd" , "")
Child% = GetWindow(Tray% , GW_CHILD%)
while Child% <> 0
   if GetClassName(Child%, PEEK32(ADR(C$)) , len(C$)) > 0
      if upper$(StrPAS$(C$)) = "BUTTON" :' BUTTON / TRAYNOTIFYWND / REBARWINDOW32
         exit_while
      end_if
   end_if
   Child% = GetWindow(Child% , GW_HWNDNEXT%)
end_while

print child%



END
FNC FindWindow(lpClassName$ , lpWindowName$)
   dll_on "user32"  
    result dll_call2("FindWindowA" , PEEK32(ADR(lpClassName$)), PEEK32(ADR(lpWindowName$)))
   dll_off
END_FNC

FNC GetWindow(hwnd% , ucmd%)
   dll_on "user32"  
    result dll_call2("GetWindow" , hwnd% , ucmd%)
   dll_off
END_FNC

FNC GetClassName(hWnd% , lpClassName% , nMaxCount%)
   dll_on "user32"  
    result dll_call3("GetClassNameA" , hWnd%, lpClassName% , nMaxCount%)
   dll_off
END_FNC

FNC ShowWindow(hWnd% , nCmdShow%)
   dll_on "user32"  
    result dll_call2("ShowWindow" , hWnd% , nCmdShow%)
   dll_off
END_FNC

FNC StrPAS$(lpString$)
   result trim$(lpString$)
END_FNC

FNC SendMessage(hWnd% , Msg% , wParam% , lParam%)
   dll_on "user32"  
    result dll_call4("SendMessageA", hWnd% , Msg% , wParam% , lParam%)
   dll_off
END_FNC

FNC SetWindowText(hWnd% , lpString$)
   dll_on "user32"  
    result dll_call2("SetWindowText" , hWnd% , PEEK32(ADR(lpString$)))
   dll_off
END_FNC
Le mariage PEEK32/FNC fait des merveilles, l'utilisation des dlls windows s'en retrouve grandement simplifiée cheers cheers cheers

EDIT : J'ai ajouté des 'fnc' pour s'amuser avec les effets amusants proposés dans le lien, au cas où des courageux auraient envie de retranscrire les codes Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 6056
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   Dim 20 Mai 2018 - 15:26

Silverman a écrit:
Et voici la traduction en panoramic du code VB du lien posté par papydall, pour retrouver le handle des enfants de la taskbar  

Le code est en Delphi et non en, VB !.

Et puis, je crains que la traduction est … incorrecte.
Regarde la ligne 22
Code:


if upper$(StrPAS$(C$)) = "BUTTON" …

StrPAS$  Question  Question  Question

La valeur de Child% reste désespérément nulle !
Donc le HANDLE du CHILD n'a pas pu être déterminé.

De toutes les façons, merci d'avoir tenté.
Perso, je n'ai ni le temps, ni l'envi d'y mettre le nez pour cause personnelle.
peut-être une autre fois .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
silverman

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Dim 20 Mai 2018 - 15:45

papydall a écrit:
Le code est en Delphi et non en, VB !.
Embarassed

Citation :
StrPAS$  Question Question Question
C'est une 'fnc' qui réalise un simple 'trim$()' et donc renvoie une chaine de caractère, c'est pour cela qu'il y a un '$' à la fin. J'ai utilisé ce nom pour la 'fnc' afin de "coller" au plus près de ce que j'ai vu dans le lien que tu as posté.

Citation :
La valeur de Child% reste désespérément nulle !
Je n'ai pas ce problême, ça fonctionne parfaitement chez moi. J'ai fidèlement retranscris le code, alors c'est peut être dû à la version de windows... Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 6056
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   Dim 20 Mai 2018 - 16:21

Tout à l’heure j’ai répondu trop vite concernant la ligne 22  Embarassed

Silvermann a écrit:
c'est peut être dû à la version de windows...  

Je le pense aussi !
Je suis sous W7 /32 bits.
J’ai essayé de déterminer le handle du bouton mais sans succès, alors que pour les deux autres enfants TRAYNOTIFYWND et REBARWINDOW32, c’est OK.
J’ai pu cacher / montrer  la zone centrale ainsi  que la zone de notification de la barre de tâches (celle à droite).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
silverman

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Dim 20 Mai 2018 - 16:44

Si ça fonctionne pour les autres "ClassName", alors c'est peut être la classe "button" qui as un nom différent dans les versions récentes de windows. Essaye avec cette boucle while modifié, elle affiche les  "ClassName":
Code:
while Child% <> 0
   if GetClassName(Child%, PEEK32(ADR(C$)) , len(C$)) > 0
      if upper$(StrPAS$(C$)) = "BUTTON" :' BUTTON / TRAYNOTIFYWND / REBARWINDOW32
'         exit_while
      end_if
   end_if
   Child% = GetWindow(Child% , GW_HWNDNEXT%)
print upper$(StrPAS$(C$))
end_while
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 6056
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   Dim 20 Mai 2018 - 16:58

J’ai téléchargé sur la page que j’ai indiquée ci-haut un ZIP en Delphi que j’ai compilé.
En le testant, il permet de cacher / montrer la barre de tâches et /ou la partie centrale /ou la partie de droite, mais pas le bouton Démarrer.

C'est peut-être W7 qui est en cause.

Quelqu'un a-t-il testé sous un autre OS ?


EDIT

En Cochant la case Masquer automatiquement la barre des tâches de la commande Propriètés de la barre de tâches, toute la barre y compris le bouton Démarrer se cache.
Peut-être que la classe "button" a changé d’identificateur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Dim 20 Mai 2018 - 18:47

Au lieu de "button", essaie "Button" ou "TButton"... ce sera plus proche de ce que fait Windows.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 6056
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   Dim 20 Mai 2018 - 19:13

@Klaus

Code:

{
    //////   Programme réalisé par   \\\\\\\
   /////                               \\\\\
  ///      LLB / DeuSSuM                  \\\
  \\\                (llb44@free.fr)      ///
   \\\\\                               /////
    \\\\\\\                         ///////


 Ce programme d'exemple a été créé par LLB/DeuSSuM (llb44@free.fr).
 Pour toute question, suggestion ou remarque, écrivez-moi !

 Ce petit programme permet à l'utilisateur de modifier
  sa barre des tâches. Il n'est donné qu'à titre explicatif et
  est distribué gratuitement.

 Vous pouvez bien sûr l'utiliser dans vos programmes, le modifier,
 le distribuer (dans sa forme d'origine), mais PAS le vendre !!!

 Si vous le réutilisez, ce serait sympa de me le dire et de m'envoyer
  votre chef-d'oeuvre.
 Si vous trouvez ou connaissez d'autres astuces pour modifier quoi que ce
  soit dans la barre des tâches, faîtes-le moi savoir, notamment si vous
  arrivez à changer le nom du bouton "Démarrer".

 Amusez-vous bien !

}
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Menus;

type
  TFrmTaskBar = class(TForm)
    Combo: TComboBox;
    BtStMax: TButton;
    BtStMin: TButton;
    BtStHide: TButton;
    BtStShow: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    EdStx: TEdit;
    EdSty: TEdit;
    EdStW: TEdit;
    EdStH: TEdit;
    Button2: TButton;
    procedure EdStxExit(Sender: TObject);
    procedure BtStHideClick(Sender: TObject);
    procedure BtStShowClick(Sender: TObject);
    procedure BtStMaxClick(Sender: TObject);
    procedure BtStMinClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  FrmTaskBar: TFrmTaskBar;

implementation

{$R *.DFM}

procedure Task(ClassName: string;nCmdShow: Integer);
// Affiche la partie spécifiée par ClassName
//  avec l'état donné par nCmdShow.
// Pour connaître toutes les valeurs possibles de nCmdShow
// voir dans l'unité Windows ou dans l'aide "SDK Windiows"
var
  Child : hWnd;
  C : Array[0..127] of Char;
Begin
// C'est toute la barre des tâches ?
 If ClassName='Shell_TrayWnd'then begin
  ShowWindow(FindWindow('Shell_TrayWnd', NIL),nCmdShow);
  Exit;
 End;
// Sinon, c'est un de ses enfants.
 Child := GetWindow(FindWindow('Shell_TrayWnd', NIL), GW_CHILD);
 While Child <> 0 do begin
  If GetClassName(Child, C, SizeOf(C)) > 0 Then
   If UpperCase(StrPAS(C)) = UpperCase(ClassName)then
     ShowWindow(Child,nCmdShow);
  Child := GetWindow(Child, GW_HWNDNEXT);
 end;
end;

procedure TFrmTaskBar.EdStxExit(Sender: TObject);
// Un TEdit a été changé -> on redessine le bouton démarrer.
var
  Child : hWnd;
  C : Array[0..127] of Char;
Begin
 Child := GetWindow(FindWindow('Shell_TrayWnd', NIL), GW_CHILD);
 While Child <> 0 do Begin
  If GetClassName(Child, C, SizeOf(C)) > 0 Then
   If UpperCase(StrPAS(C)) = 'BUTTON'then
     MoveWindow(Child,StrToInt(EdStx.Text),StrToInt(EdSty.Text),
                StrToInt(EdStW.Text),StrToInt(EdStH.Text),true);
  Child := GetWindow(Child, GW_HWNDNEXT);
 End;
end;

procedure TFrmTaskBar.BtStHideClick(Sender: TObject);
begin
// Cache la partie sélectionnée
 Task(Combo.Text,SW_HIDE);
end;

procedure TFrmTaskBar.BtStShowClick(Sender: TObject);
begin
// Affiche la partie sélectionnée en "normal"
 Task(Combo.Text,SW_NORMAL);
end;

procedure TFrmTaskBar.BtStMaxClick(Sender: TObject);
begin
// Agrandit la partie sélectionnée
 Task(Combo.Text,SW_MAXIMIZE);
end;

procedure TFrmTaskBar.BtStMinClick(Sender: TObject);
begin
// Réduit la partie sélectionnée
 Task(Combo.Text,SW_SHOWMINIMIZED);
end;

procedure TFrmTaskBar.Button2Click(Sender: TObject);
begin
// FIN - au revoir !
 ShowMessage('Ce programme d''exemple a été réalisé par LLB (llb44@free.fr). '+
             'Il est distribué gratuitement et avec ses sources. '+
             'Il ne peut-être en aucun cas vendu.'#13+
             'Merci de l''avoir utilisé.');
 Close;
end;

procedure TFrmTaskBar.FormCreate(Sender: TObject);
var
  Child : hWnd;
  C : Array[0..127] of Char;
  Rect: TRect; // Position du menu démarrer
Begin
// On cherche d'abord la position et les dimensions du menu démarrer
 Child := GetWindow(FindWindow('Shell_TrayWnd', NIL), GW_CHILD);
 While Child <> 0 do begin
  If GetClassName(Child, C, SizeOf(C)) > 0 Then
   If UpperCase(StrPAS(C)) = 'BUTTON'then
     GetWindowRect(Child,Rect);
  Child := GetWindow(Child, GW_HWNDNEXT);
 end;
// Et on les affecte aux TEdit
 EdStx.Text := '0';
 EdSty.Text := '0';
 EdStw.Text := IntToStr(Rect.Right-Rect.Left);
 EdSth.Text := IntToStr(Rect.Bottom-Rect.Top);
end;

end.


J'ai compilé ce code DELPHI : à l'exécution tout est OK sauf le bouton qui n'est pas reconnu !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 0:28

Peux-tu poster les fichiers annexes (DPR, DFM etc) ?
Ou, mieux: le projet complet dans un ZIP ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 6056
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   Lun 21 Mai 2018 - 0:37

@Klaus

C'est fait !
Sur mon Webdav TaskBar.zip.
Merci pour ton intérêt .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 0:42

Merci à toi. Je vais regarder.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 1:01

Je viens au rapport, avec le résultat de les analyses.

Sous mon W10, voici la liste des enfants de la barre des tâches, telle qu'elle devrait figurer dans la combo nommée Combo:
Start
TrayButton
TrayDummySearchControl
ReBarWindow32
TrayNotifyWnd


Voici son contenu actuel:
Button
TrayNotifyWnd
ReBarWindow32
Shell_TrayWnd


Si tu remplaces Button par Start, tu peux agir sur le bouton de démarrage. Mais de manière générale, ce code n'est pas totalement compatible Windows 10, tel qu'il est.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 6056
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   Lun 21 Mai 2018 - 2:09

Merci Klaus.
Chez moi, sous W7 32 bits, le bouton Démarrer s’obstine à rester toujours visible.
D’ailleurs, je n’arrive toujours pas à déterminer son handle.
Ce dernier vaut toujours 0.
Somme toute, la barre de tâches, qu’elle s’affiche ou qu’elle se cache m’importe peu !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 8:41

Eh bin, modifie ta procédure Task comme suit:
Code:
procedure Task(ClassName: string;nCmdShow: Integer);
// Affiche la partie spécifiée par ClassName
//  avec l'état donné par nCmdShow.
// Pour connaître toutes les valeurs possibles de nCmdShow
// voir dans l'unité Windows ou dans l'aide "SDK Windiows"
var
  Child : hWnd;
  C : Array[0..127] of Char;
Begin
// C'est toute la barre des tâches ?
 If ClassName='Shell_TrayWnd'then begin
  ShowWindow(FindWindow('Shell_TrayWnd', NIL),nCmdShow);
  Exit;
 End;
// Sinon, c'est un de ses enfants.
 Child := GetWindow(FindWindow('Shell_TrayWnd', NIL), GW_CHILD);
 While Child <> 0 do begin
  If GetClassName(Child, C, SizeOf(C)) > 0 Then begin
    showmessage(UpperCase(StrPAS(C)));
    If UpperCase(StrPAS(C)) = UpperCase(ClassName)then
      ShowWindow(Child,nCmdShow);
  end;
  Child := GetWindow(Child, GW_HWNDNEXT);
 end;
end;
Tu verras alors les noms des classes à utiliser sur ton syustème.

Le problème est double:
- d'abord, l'utilisation du bon nom de classe
- ensuite, la gestion de cette classe n'est certainement pas adaptée à W10 dans pour tous les cas, et peut-être également W7 - à voir.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 10:06

Un petit message subliminal à l'emplacement de la barre des tâches (pour donner une idée des applications possibles, image, texte, n'importe quoi):
Code:
DIM i%,a$
a$ = "Ceci est un message !"
BORDER_HIDE 0: TOP 0,SCREEN_Y-30: WIDTH 0,SCREEN_X: HEIGHT 0,30
FONT_SIZE 0,20: FONT_BOLD 0: FONT_COLOR 0,180,0,0
i% = TEXT_WIDTH(a$,0)
TaskBar(0): ' cacher la barre
PRINT_LOCATE (SCREEN_X-i%)/2,-3: PRINT "Ceci est un message !"
PAUSE 3000
TaskBar(1): ' restaurer la barre
TERMINATE

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
Minibug

avatar

Nombre de messages : 3241
Age : 52
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 10:41

Salut JL35 !

Ton programme fonctionne uniquement si la barre des taches est en bas de l'écran, sinon... Suspect affraid scratch Exclamation Question
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
JL35



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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 11:02

Salut Minibug,

Certes ! mais il ne m'est pas venu à l'idée qu'elle pouvait être ailleurs qu'en bas de l'écran ?
Et si ce n'est pas le cas, c'est facile à adapter !

Sauf évidemment si elle peut se balader n'importe où sur l'écran et que ce soit imprévisible scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 11:04

La barre des tâches peut être en bas ou en haut de l'écran, ou à gauche ou droite. Ce sont les 4 positions possibles.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 3241
Age : 52
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 11:24

JL35 a écrit:
Et si ce n'est pas le cas, c'est facile à adapter !

Certes, mais cela ne sera pas adapté automatiquement à chaque PC. Suspect
A moins qu'il y est une possibilité de savoir comment est positionnée la barre de tache,
et de gérer en conséquence sa position dans le programme ? scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 11:37

Si l'on a le handle de la barre des tâches, on peut connaitre ses coordonnées avec l'API GetWindowRect. Cette API prend deux paramètres:
- le handle de la fenêtre
- l'adresse d'un tableau de 4 entiers qui sont, dans l'ordre:
colonne du coin en haut à gauche, ligne du coin en haut à gauche, colonne du coin en bas à droite, ligne di coin en bas à droite.

Donc, en Panoramic, ça donne ceci:
Code:
dim res%, rect%(3), hhhh%
hhhh% = ... <======= handle de la fenêtre
dll_on "User32.dll"
res% = dll_call2("GetWindowRect",hhhh%,adr(rect%))
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 11:37

Je viens d'essayer le code de JL35 et celui de Papydall après avoir changer la position de ma barre des tâches.

Pas de problème, ils fonctionnent tous les deux.  cheers

A+

Désolé Klaus, je t'ai doublé.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 6056
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   Lun 21 Mai 2018 - 13:52

@Klaus

J’ai modifié la procédure Task comme tu l’as proposé.
Compilation et exécution et le verdict :
Sur mon système W7 / 21 bits les seules classes possibles sont :
TRAYNOTIFYWND (la partie à droite de la barre de tâches
REBARWINDOW32 (la partie centrale)

Pas de BUTTON ! Tant pis ! Neutral
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Minibug

avatar

Nombre de messages : 3241
Age : 52
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Cacher la barre des tâches   Lun 21 Mai 2018 - 14:31

Pour revenir sur ce que JL35 avait réalisé ce matin, c'est à dire de mettre un Form Panoramic sans bordure
à la place de la barre de tâches pour afficher des messages ou toutes autres choses.

Avec cette version, la fenêtre s'affiche à la position et la taille de la barre de tâches.

Code:

dim res% , rect%(3), TH% , lpCN$ , lpWN$ , lpc% , lpw% , ad% , px% , py% , h% , l%

LABEL menu
 
lpCN$="Shell_traywnd" : ad%=ADR(lpCN$)
lpc%=256*256*256*PEEK(ad%+3)+256*256*PEEK(ad%+2)+256*PEEK(ad%+1)+PEEK(ad%)

lpWN$="" : ad%=ADR(lpWN$)
lpw%=256*256*256*PEEK(ad%+3)+256*256*PEEK(ad%+2)+256*PEEK(ad%+1)+PEEK(ad%)
 
DLL_ON "user32.dll"
TH% = DLL_CALL2("FindWindowA",lpc%,lpw% )
res% = dll_call2("GetWindowRect",TH%,adr(rect%))
DLL_OFF

IF SGN(rect%(0))=-1 THEN px%=0 : py%=0 : l%=rect%(0)*-1 : h%=rect%(3)                                  : ' Barre sur le coté gauche
IF rect%(2)>SCREEN_X THEN px%=rect%(2)-((rect%(2)-rect%(0))*2) : py%=0 : l%=rect%(0) : h%=rect%(3)      : ' Barre sur le coté droit
IF SGN(rect%(1))=-1 THEN px%=0 : py%=0 : l%=rect%(2) : h%=rect%(3)-rect%(1)                            : ' Barre en haut
IF rect%(3)>SCREEN_Y THEN py%=rect%(1)-(rect%(3)-rect%(1)) : px%=0 : l%=rect%(2) : h%=rect%(3)-rect%(1) : ' Barre en bas

BORDER_HIDE 0 : LEFT 0,px% : TOP 0,py% : WIDTH 0,l% : HEIGHT 0,h%
BUTTON 1 : LEFT 1,5 : TOP 1,5 : CAPTION 1,"QUITTER" : ON_CLICK 1,menu

END

menu:
  TERMINATE
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
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 2 sur 3Aller à la page : Précédent  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
» Barre des tâches changeante
» Comment installer toute la barre de tâches de basecamp sous vista
» (résolu)recherches effectuées dans la barre déroulante"recherche" de Neuf

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: