Winhider _ cacher un programme de l'écran et de la barre de taches

Soyez le premier à donner votre avis sur cette source.

Vue 6 112 fois - Téléchargée 705 fois

Description

un programme pour cacher des fenetres de l'écran et de la barre de taches

le programme affiche quelques infos sur les fenetres choisies:

nom de classe ,titre de la fenete, id ...

Source / Exemple :


unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
  
type
  TForm2 = class(TForm)
    EditPosX: TEdit;
    EditPosY: TEdit;
    EditHandle: TEdit;
    EditTitle: TEdit;
    EditClassName: TEdit;
    EditThreadID: TEdit;
    BtnHide: TButton;
    BtnShow: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Timer1: TTimer;
    Button1: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure BtnHideClick(Sender: TObject);
    procedure BtnShowClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.BtnHideClick(Sender: TObject);
// hide selected window
begin
   ShowWindow(FindWindow(PAnsiChar(EditClassName.text), PAnsiChar(EditTitle.text)), 0);
end;

procedure TForm2.BtnShowClick(Sender: TObject);
begin
   // show selected window
      ShowWindow(FindWindow(PAnsiChar(EditClassName.text), PAnsiChar(EditTitle.text)), 1);
end;

procedure TForm2.Button1Click(Sender: TObject);
// start timer and select a window
begin
       BtnHide.Enabled :=false;
       BtnShow.Enabled :=false;
        Timer1.Enabled :=true;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
      BtnHide.Enabled :=false;
       BtnShow.Enabled :=false;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
  cPos: TPoint;
  hWnd:THandle;
  wText: PChar;
  WinClass : array[0..80] of Char;
  Result : Smallint;

begin
  Result := GetAsyncKeyState(VK_LBUTTON);
  if (Result And $8000) <> 0 then
  begin
    if EditHandle.Text<>form2.Caption   then
    begin

        BtnHide.Enabled :=true;
        BtnShow.Enabled :=true;
        Timer1.Enabled :=false;
    end;
  End;

  GetCursorPos(cPos);
  hWnd := WindowFromPoint(cPos);
  GetMem(wText,GetWindowTextLength(hWnd)+1);
  GetWindowText(hWnd,wText,GetWindowTextLength(hWnd)+1);

  GetClassName(hWnd,WinClass,SizeOf(WinClass));

  EditPosX.Text:=(IntToStr(cPos.X));
  EditPosY.Text:=(IntToStr(cPos.Y));
  EditHandle.Text:=PChar(IntToHex(hWnd,2)) ;
  EditTitle.Text:=wText ;
  EditClassName.Text:=WinClass ;
  EditThreadID.Text:=PChar(IntToHex(GetWindowThreadProcessID(hWnd,nil),8)) ;
end;

end.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

soldier8514
Messages postés
295
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
24 janvier 2014
1 -
ça ne fonctionne pas sous delphi xe3 , marche très bien sous 2007 , si quelqu'un a une proposition de modif à faire je suis preneur :)
Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5 -
Ok, merci encore d'avoir déposé ta source, un truc qu'on ne comprend pas c'est vraiment très utile :)

Allez ++

Cordialement, Bacterius !
soldier8514
Messages postés
295
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
24 janvier 2014
1 -
non Bactérius , je commenterais pas ce code pour toi
merci de ta visite
Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5 -
Ok :)
Juste un truc : tu pourrais commenter un peu plus quand même ^^
Par exemple, ça représente quoi le "$8000" dans Timer1Timer ?
Fais comme si je ne savais rien et explique moi tout le fonctionnement du programme avec du code commenté :} si tu le veux bien sûr.

Cordialement, Bacterius !

PS : c'est quelle marque la cigarette de ton crâne ? (quoi faut bien briser la glace !)
soldier8514
Messages postés
295
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
24 janvier 2014
1 -
toutes ces variables étaient du code mort (
j'avais fais un essai pour faire une Form sans le mode design )

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.