Barre des taches-astuces

Description

Titre:Barre des tâches-astuces
Un exemple de code qui monter quelque astuce sur la barre des taches...

Source / Exemple :


{                         # ##  ##  ##  #
                       ####################
                     ####      # #  #     ####
                  ###                         ###
                 ###                 #####     ###      
                ###    #######                  ###
               ###     ###### #      ######      ###
               ###     # ## #        # ## #      ###
               ###     ######        ######      ###
               ###             ###               ###
               ###             ###               ###
               ######          ###            ######
               ###   ###                   ###   ###
                ###  ## ###################  ## ###
                 ### ##   ##    ##   ##   ## #####
                  ### #   ##    ##   ##   ##  ###
                    ###   ##    ##   ##   # ###
                     #### ##    ##   ##   ####
                         #####  ##    #####
                              ########
}
{=============================================================
Titre:Barre des tâches-astuces
Auteur: H@PPyZERØ5
E-mail: happy05@programmer.net
==============================================================}
//
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    But_Cacher_bouton_Demarrer: TButton;
    But_Cacher_partie_centrale: TButton;
    But_Cacher_horloge: TButton;
    But_FlashWindow: TButton;
    tab: TPageControl;
    Tab0: TTabSheet;
    Tab1: TTabSheet;
    Tab23: TTabSheet;
    But_Afficher_horloge: TButton;
    Tab3: TTabSheet;
    Tab4: TTabSheet;
    Tab5: TTabSheet;
    Tab6: TTabSheet;
    But_Afficher_partie_centrale: TButton;
    But_Afficher_bouton_Demarrer: TButton;
    But_d_zone_notification: TButton;
    Memo_tab3: TMemo;
    Memo_tab4: TMemo;
    Memo_tab5: TMemo;
    Tab7: TTabSheet;
    Tab8: TTabSheet;
    Tab9: TTabSheet;
    Memo_tab10: TMemo;
    RadioButton9: TRadioButton;
    RadioButton10: TRadioButton;
    But_Position: TButton;
    Tab10: TTabSheet;
    Tab11: TTabSheet;
    Tab12: TTabSheet;
    Tab13: TTabSheet;
    Memo_tab11: TMemo;
    Memo12: TMemo;
    PopupMenu1: TPopupMenu;
    popup_show: TMenuItem;
    popup_close: TMenuItem;
    Tab14: TTabSheet;
    applications_handle_list: TListView;
    But_Actualiser: TButton;
    Tab15: TTabSheet;
    Tab16: TTabSheet;
    Memo_tab2: TMemo;
    But_Cacher_barre_d_taches: TButton;
    But_Aficher_barre_d_taches: TButton;
    Memo_tab13: TMemo;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    But_ok2: TButton;
    Memo_tab6: TMemo;
    But_Cacher_partie_droite: TButton;
    But_Afficher_partie_droite: TButton;
    Memo_tab8: TMemo;
    But_Bloquer_barre_taches: TButton;
    But_Debloquer_barre_taches: TButton;
    Memo_tab9: TMemo;
    But_Bloquer_bouton_Demarrer: TButton;
    But_Debloquer_bouton_Demarrer: TButton;
    Memo_tab7: TMemo;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    But_ok1: TButton;
    Memo_tab15: TMemo;
    Edit1: TEdit;
    But_Modifier: TButton;
    Memo_tab14: TMemo;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    But_ok3: TButton;
    Memo_tab16: TMemo;
    RadioButton7: TRadioButton;
    RadioButton8: TRadioButton;
    RadioButton11: TRadioButton;
    RadioButton12: TRadioButton;
    But_ok4: TButton;
    popup_hide: TMenuItem;
    popup_other: TMenuItem;
    But_ok5: TButton;
    Tab17: TTabSheet;
    Tab18: TTabSheet;
    Tab19: TTabSheet;
    Memo_tab17: TMemo;
    Memo_tab18: TMemo;
    Memo_tab19: TMemo;
    But_ok6: TButton;
    But_ok7: TButton;
    RadioButton13: TRadioButton;
    RadioButton14: TRadioButton;
    RadioButton15: TRadioButton;
    RadioButton16: TRadioButton;
    RadioButton17: TRadioButton;
    RadioButton18: TRadioButton;
    Edit2: TEdit;
    But_ok8: TButton;
    Memo_tab20: TMemo;
    Tab20: TTabSheet;
    Tab21: TTabSheet;
    But_deplacer_btn_demarrer: TButton;
    Memo_tab21: TMemo;
    Memo_tab22: TMemo;
    procedure But_ok2Click(Sender: TObject);
    procedure But_ok3Click(Sender: TObject);
    procedure But_ok1Click(Sender: TObject);
    procedure But_ok4Click(Sender: TObject);
    procedure But_Cacher_bouton_DemarrerClick(Sender: TObject);
    procedure But_Cacher_partie_centraleClick(Sender: TObject);
    procedure But_Cacher_barre_d_tachesClick(Sender: TObject);
    procedure But_Aficher_barre_d_tachesClick(Sender: TObject);
    procedure But_Debloquer_barre_tachesClick(Sender: TObject);
    procedure But_Bloquer_barre_tachesClick(Sender: TObject);
    procedure But_Cacher_horlogeClick(Sender: TObject);
    procedure But_FlashWindowClick(Sender: TObject);
    procedure But_Afficher_horlogeClick(Sender: TObject);
    procedure But_Afficher_partie_centraleClick(Sender: TObject);
    procedure But_Afficher_bouton_DemarrerClick(Sender: TObject);
    procedure But_d_zone_notificationClick(Sender: TObject);
    procedure But_PositionClick(Sender: TObject);
    procedure But_ActualiserClick(Sender: TObject);
    procedure popup_showClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure But_ModifierClick(Sender: TObject);
    procedure But_Cacher_partie_droiteClick(Sender: TObject);
    procedure popup_closeClick(Sender: TObject);
    procedure But_Afficher_partie_droiteClick(Sender: TObject);
    procedure But_Debloquer_bouton_DemarrerClick(Sender: TObject);
    procedure But_Bloquer_bouton_DemarrerClick(Sender: TObject);
    procedure popup_otherClick(Sender: TObject);
    procedure popup_hideClick(Sender: TObject);
    procedure But_ok5Click(Sender: TObject);
    procedure But_ok6Click(Sender: TObject);
    procedure But_ok7Click(Sender: TObject);
    procedure But_ok8Click(Sender: TObject);
    procedure But_deplacer_btn_demarrerClick(Sender: TObject);

  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{=============================================================
procedure Registre_Write
==============================================================}
procedure Registre_Write(Key:string;valeur:string;donnees:string);
var
  Registre: TRegistry;
begin
Registre := TRegistry.Create;
  try
  Registre.RootKey := HKEY_CURRENT_USER;
  if Registre.OpenKey(Key, True)
  then
  begin
   Registre.WriteString(valeur, donnees);
   ShowMessage('Ok');
   Registre.CloseKey;
    end
    else
    ShowMessage('probléme');
  finally
    Registre.Free;
  end;
end;

{=============================================================
function GetText
==============================================================}
function GetText(Wnd : HWND):string;
var textlength : integer;
    text : PChar;
begin
  textlength:=SendMessage(Wnd,WM_GETTEXTLENGTH,0,0);
  if textlength=0 then Result := ''
  else
  begin
    getmem(text,textlength+1);
    SendMessage(Wnd,WM_GETTEXT,textlength+1,Integer(text));
    Result:=text;
    freemem(text);
  end;
end;

{=============================================================
Function EnumWindowsProc
==============================================================}
Function EnumWindowsProc (Wnd: HWND; LParam:
LPARAM): BOOL; stdcall;
begin
  Result := True;
  if (IsWindowVisible(Wnd) or IsIconic(wnd)) and
   ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or
   (GetWindowLong(Wnd, GWL_HWNDPARENT) =
   GetDesktopWindow)) and
   (GetWindowLong(Wnd, GWL_EXSTYLE) and
WS_EX_TOOLWINDOW = 0) then
   begin
   with Form1.applications_handle_list.Items.Add do
                  begin
                    caption :=(GetText(Wnd));
                    subitems.Add(Inttostr(Wnd));
                  end;
   end;
 end;

{=============================================================
désactiver le menu de la barre des tâche lorsque
vous cliquez avec le bouton droit de la souris :
==============================================================}
procedure TForm1.But_ok2Click(Sender: TObject);
begin
//désactivée.
if RadioButton1.Checked=true then
Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'NoTrayContextMenu','0');

//activée.
if RadioButton2.Checked=true then
Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'NoTrayContextMenu','1');
end;

{=============================================================
Verrouiller la barre des tâches (l'utilisateur ne peut plus déplacer ou
redimensionner la barre des tâches)
==============================================================}
procedure TForm1.But_ok3Click(Sender: TObject);
begin
//désactivée.
if RadioButton3.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'LockTaskbar','0');

//activée.
if RadioButton4.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'LockTaskbar','1');
end;

{=============================================================
Ne pas afficher de barres d'outils personnalisées :
==============================================================}
procedure TForm1.But_ok1Click(Sender: TObject);
begin
//désactivée.
if RadioButton5.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'NoToolbarsOnTaskbar','0');

//activée.
if RadioButton6.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'NoToolbarsOnTaskbar','1');
end;

{=============================================================
Modifier le comportement du regroupement de la barre des tâches
==============================================================}
procedure TForm1.But_ok4Click(Sender: TObject);
begin
//regrouper par âge (le groupe le plus ancien sera regroupé en premier)
if RadioButton7.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskBarGroupSize','0');

//regrouper par taille (le groupe le plus important sera regroupé en premier)
if RadioButton8.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskBarGroupSize','1');

//regrouper tous les groupes avec deux fenêtres ouvertes ou plus
if RadioButton11.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskBarGroupSize','2');

//regrouper tous les groupes avec trois fenêtres ouvertes ou plus
if RadioButton12.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskBarGroupSize','3');
end;

{=============================================================
Masquer la zone de notification
==============================================================}
procedure TForm1.But_d_zone_notificationClick(Sender: TObject);
begin
//désactivée.
if RadioButton9.Checked=true then
Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'NoTrayItemsDisplay','0');

//activée.
if RadioButton10.Checked=true then
Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'NoTrayItemsDisplay','1');
end;

{=============================================================
Cacher et afficher le bouton Démarrer
==============================================================}
procedure HideShowStartButton(boolVisible: Boolean);
var
startbutton_handle:hWnd;
  Tray, Child: hWnd;
  C: array[0..127] of Char;
  S: string;
begin
  Tray := FindWindow('Shell_TrayWnd', nil);
  Child := GetWindow(Tray, GW_CHILD);
  while Child <> 0 do
  begin
    if GetClassName(Child, C, SizeOf(C)) > 0 then
    begin
      S := StrPas(C);
      if UpperCase(S) = 'BUTTON' then
      begin
        startbutton_handle := child;
        ShowWindow(Child, Integer(boolVisible))
      end;
    end;
    Child := GetWindow(Child, GW_HWNDNEXT);
  end;
end;
//Cacher le bouton Démarrer
procedure TForm1.But_Cacher_bouton_DemarrerClick(Sender: TObject);
begin
 HideShowStartButton(false);
end;
//Afficher le bouton Démarrer
procedure TForm1.But_Afficher_bouton_DemarrerClick(Sender: TObject);
begin
 HideShowStartButton(true);
end;

{=============================================================
Cacher et afficher la partie centrale de la barre des tâches
==============================================================}
//function TaskmanWindow
function TaskmanWindow: HWND;
type
  TGetTaskmanWindow = function(): HWND; stdcall;
var
  hUser32: THandle;
  GetTaskmanWindow: TGetTaskmanWindow;
begin
  Result := 0;
  hUser32 := GetModuleHandle('user32.dll');
  if (hUser32 > 0) then
  begin
    @GetTaskmanWindow := GetProcAddress(hUser32,
'GetTaskmanWindow');
    if Assigned(GetTaskmanWindow) then
    begin
      Result := GetTaskmanWindow;
    end;
  end;
end;

//procedure ShowTaskmanWindow
procedure ShowTaskmanWindow(bValue: Boolean);
var
  hTaskmanWindow: Hwnd;
begin
  hTaskmanWindow := TaskmanWindow;
  if hTaskmanWindow <> 0 then
  begin
    ShowWindow(GetParent(hTaskmanWindow),
Ord(bValue));
  end;
end;
//Cacher la partie centrale de la barre des tâches
procedure TForm1.But_Cacher_partie_centraleClick(Sender: TObject);
begin
  ShowTaskmanWindow(False);
end;
//Afficher la partie centrale de la barre des tâches
procedure TForm1.But_Afficher_partie_centraleClick(Sender: TObject);
begin
  ShowTaskmanWindow(true);
end;

{=============================================================
Aficher et cacher la barre des tâches
==============================================================}
//Rendre invisible le Barre des tâches :
procedure TForm1.But_Cacher_barre_d_tachesClick(Sender: TObject);
begin
ShowWindow(FindWindow
   ('Shell_TrayWnd',nil), SW_HIDE);
end;

//Rendre visible le Barre des tâches :
procedure TForm1.But_Aficher_barre_d_tachesClick(Sender: TObject);
begin
ShowWindow(FindWindow
   ('Shell_TrayWnd',nil), SW_SHOWNA);
end;

{=============================================================
Bloquer  et débloquer la barre des tâches
==============================================================}
//Bloquer la barre des tâches
procedure TForm1.But_Bloquer_barre_tachesClick(Sender: TObject);
begin
EnableWindow(FindWindow
   ('Shell_TrayWnd',nil),False);
end;

//Débloquer la barre des tâches
procedure TForm1.But_Debloquer_barre_tachesClick(Sender: TObject);
begin
EnableWindow(FindWindow
   ('Shell_TrayWnd',nil),True);
end;

{=============================================================
Cacher et afficher l'horloge
==============================================================}
//procedure ShowClock
procedure ShowClock(Show : boolean);
var
  TrayWnd, TrayNotifyWnd, ClockWnd : Hwnd;
begin
  TrayWnd  := FindWindow('Shell_TrayWnd', nil);
  TrayNotifyWnd := FindWindowEx(TrayWnd,0,'TrayNotifyWnd',
nil);
  ClockWnd :=
FindWindowEx(TrayNotifyWnd,0,'TrayClockWClass', nil);
  if Show then
    ShowWindow(ClockWnd,SW_SHOW)
  else
    ShowWindow(ClockWnd,SW_HIDE)
end;
//Cacher l'horloge
procedure TForm1.But_Cacher_horlogeClick(Sender: TObject);
begin
ShowClock(false);
{
OR :
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'HideClock','0');
}
end;
//Afficher l'horloge
procedure TForm1.But_Afficher_horlogeClick(Sender: TObject);
begin
ShowClock(true);
{
OR :
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
'HideClock','1');
}
end;

{=============================================================
FlashWindow
==============================================================}
procedure TForm1.But_FlashWindowClick(Sender: TObject);
begin
  FlashWindow(Handle, True);
  FlashWindow(Application.Handle, True);
end;

{=============================================================
la position de la barre des tache
==============================================================}
procedure TForm1.But_PositionClick(Sender: TObject);
var
barre_d_tache : HWND;
pos : TRect;
begin
barre_d_tache:=FindWindow('Shell_TrayWnd',nil);
GetWindowRect(barre_d_tache,pos);
//Dessus
 if (pos.Top < Screen.Height DIV 2) and (pos.Bottom <= Screen.Width DIV 2)
 then ShowMessage('Dessus')
 else
//En bas
 if (pos.Top > Screen.Height DIV 2) and (pos.Right >= Screen.Width)
 then ShowMessage('En bas')
 else
//Gauche
 if (pos.left < Screen.Width DIV 2) and (pos.Top <= 0)
 then ShowMessage('Gauche')
 else
//Droite
 if pos.Left >= Screen.Width DIV 2
 then ShowMessage('Droite');
end;

{=============================================================
Actualiser tab
==============================================================}
procedure TForm1.But_ActualiserClick(Sender: TObject);
var
  Param : Longint;
begin
  EnumWindows(@EnumWindowsProc , Param);
end;

{=============================================================
PopupMenu
==============================================================}
//
procedure TForm1.popup_showClick(Sender: TObject);
var
applications_handle:integer;
begin
applications_handle:=strtoint(applications_handle_list.Selected.SubItems[0]);
ShowWindow(applications_handle,  CmdShow);
end;
//
procedure TForm1.popup_closeClick(Sender: TObject);
var
applications_handle:integer;
begin
applications_handle:=strtoint(applications_handle_list.Selected.SubItems[0]);
SendMessage(applications_handle,WM_CLOSE,0,0);
end;
//
procedure TForm1.popup_hideClick(Sender: TObject);
var
applications_handle:integer;
begin
applications_handle:=strtoint(applications_handle_list.Selected.SubItems[0]);
ShowWindow(applications_handle,  SW_HIDE);
end;
//
procedure TForm1.popup_otherClick(Sender: TObject);
begin
//Other...
end;

{=============================================================
FormCreate
==============================================================}
procedure TForm1.FormCreate(Sender: TObject);
var
  Param : Longint;
begin
  EnumWindows(@EnumWindowsProc , Param);
end;

{=============================================================
Modifier le text de bouton Démarrer
==============================================================}
procedure TForm1.But_ModifierClick(Sender: TObject);
var
TrayWnd,Button:hwnd;
begin
TrayWnd:=FindWindow('Shell_TrayWnd',nil);
Button:=FindWindowEx(TrayWnd,0,'Button',nil);
SetWindowText(Button,PAnsiChar(Edit1.Text));
SendMessage(Button,Messages.WM_MOUSEMOVE,0,0);
end;

{=============================================================
Cacher et afficher la partie de droite de la barre des tâches
(L'aire de notification de la barre des tâches)
==============================================================}
//Cacher
procedure TForm1.But_Cacher_partie_droiteClick(Sender: TObject);
var
TrayWnd,TrayNotifyWnd:hwnd;
begin
TrayWnd:=FindWindow('Shell_TrayWnd',nil);
TrayNotifyWnd:=FindWindowEx(TrayWnd,0,'TrayNotifyWnd',nil);
ShowWindow(TrayNotifyWnd,SW_HIDE);
SendMessage(TrayNotifyWnd,Messages.WM_MOUSEMOVE,0,0);
end;
//Afficher
procedure TForm1.But_Afficher_partie_droiteClick(Sender: TObject);
var
TrayWnd,TrayNotifyWnd:hwnd;
begin
TrayWnd:=FindWindow('Shell_TrayWnd',nil);
TrayNotifyWnd:=FindWindowEx(TrayWnd,0,'TrayNotifyWnd',nil);
ShowWindow(TrayNotifyWnd,SW_SHOW);
SendMessage(TrayNotifyWnd,Messages.WM_MOUSEMOVE,0,0);
end;

{=============================================================
Bloquer et débloquer le bouton Démarrer
==============================================================}
//Bloquer le bouton Démarrer
procedure TForm1.But_Debloquer_bouton_DemarrerClick(Sender: TObject);
begin
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd',
nil),0,'Button',nil),true);
end;
//Débloquer le bouton Démarrer
procedure TForm1.But_Bloquer_bouton_DemarrerClick(Sender: TObject);
begin
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd',
nil),0, 'Button', nil),false);
end;

{=============================================================
TaskbarAnimations d1
==============================================================}
//
procedure TForm1.But_ok5Click(Sender: TObject);
begin
if RadioButton13.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskbarAnimations','0');

//
if RadioButton14.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskbarAnimations','1');
end;

{=============================================================
TaskbarGlomming d1
==============================================================}
//
procedure TForm1.But_ok6Click(Sender: TObject);
begin
if RadioButton15.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskbarGlomming','0');

//
if RadioButton16.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskbarGlomming','1');
end;

{=============================================================
TaskbarSizeMove d0
==============================================================}
//
procedure TForm1.But_ok7Click(Sender: TObject);
begin
if RadioButton17.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskbarSizeMove','0');

//
if RadioButton18.Checked=true then
 Registre_Write('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',
'TaskbarSizeMove','1');
end;

{=============================================================
Un texte dans la barre des tâches (a la droite de l'horloge)
==============================================================}
procedure TForm1.But_ok8Click(Sender: TObject);
begin
//
 Registre_Write('\Control Panel\International',
's1159',Edit2.text);

//
 Registre_Write('\Control Panel\International',
'sTimeFormat','HH:mm tt');
end;

{=============================================================
déplacer le bouton Démarrer
==============================================================}
procedure TForm1.But_deplacer_btn_demarrerClick(Sender: TObject);
var
TrayWnd,Button:hwnd;
begin
TrayWnd:=FindWindow('Shell_TrayWnd',nil);
Button:=FindWindowEx(TrayWnd,0,'Button',nil);
MoveWindow(Button,0,0,100,30,true);
SendMessage(Button,Messages.WM_MOUSEMOVE,0,0);
End;

end.

//to be continued...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.