Appli en barre des taches garde le focus

Signaler
Messages postés
2
Date d'inscription
lundi 31 janvier 2005
Statut
Membre
Dernière intervention
24 février 2005
-
Messages postés
2
Date d'inscription
lundi 31 janvier 2005
Statut
Membre
Dernière intervention
24 février 2005
-
salut tous
voila à l'aide des sources de ce site
j'ai fait une appli qui empèche win XP de s'arreter.
cette appli apparait dans la barre des taches et c'est tout
seulement voila quand elle empeche XP de s'arreter
elle garde la main. par exemple si je suis sous word
il faut que je clique dans ma fenetre pour continuer à taper le
text.
Coment faire pour que cela tourne en fond de tache sans perturber
les applis en cours

merci d'avance pour l'info

guicel

2 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
en mettant Application.Minimize, je pense que ça devrait marcher...


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
2
Date d'inscription
lundi 31 janvier 2005
Statut
Membre
Dernière intervention
24 février 2005

Le pb c'est que je le fait déja
voici le code

unit protect2;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, Menus;


const
WM_TASKABAREVENT = WM_USER + 1;


type
TForm2 = class(TForm)
PopupMenu1: TPopupMenu;
Femer1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure TaskbarEvent(var Msg: TMessage);
message WM_TASKABAREVENT;
procedure Femer1Click(Sender: TObject);
private
{ Déclarations privées }
procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
procedure WMActivateapp(var Message: TWMActivateapp); message WM_ACTIVATEAPP;
public
{ Déclarations publiques }
end;


var
Form2: TForm2;


implementation


{$R *.dfm}


procedure TForm2.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
inherited;
Message.Result:=0; // on demande à Windows de ne pas se fermer.


Form2.WindowState:=wsminimized;
application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);


end;


procedure TForm2.WMActivateapp(var Message: TWMActivateapp);
begin
inherited;
Message.Active:=False;
end;


procedure TForm2.FormCreate(Sender: TObject);
var NotifyIconData: TNotifyIconData;
begin
Fillchar(NotifyIconData, Sizeof(NotifyIconData), 0);
NotifyIconData.cbSize := Sizeof(NotifyIconData);
NotifyIconData.Wnd := Handle;
NotifyIconData.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
NotifyIconData.uCallbackMessage := WM_TASKABAREVENT;
NotifyIconData.hIcon := application.icon.Handle;
NotifyIconData.szTip := 'protect';
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);




application.Minimize;
Form2.WindowState:=wsminimized;
ShowWindow(Application.Handle, SW_HIDE);



end;


procedure TForm2.TaskbarEvent(var Msg: TMessage);
var
p: tpoint;
begin
if msg.LParam = WM_RButtonDown then
begin
SetForegroundWindow(Handle);
GetCursorPos(p);
PopupMenu1.Popup(p.x, p.y);
PostMessage(Handle, WM_NULL, 0, 0);
end;
{Valeur de msg.LParam:
WM_MouseMove,WM_LButtonDown,WM_LButtonUp
WM_LButtonDblClk,WM_RButtonDown,WM_RButtonUp,WM_RButtonDblClk }


end;


procedure TForm2.Femer1Click(Sender: TObject);
begin
Close;
end;



end.