hello
ptit exe ki se loge dans le systray, configurable, il ferme la session, reboot le pc et eteint le pc via un clic.
c un gadjet :D
Source / Exemple :
unit Closewin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, systray, Buttons, Menus, StdCtrls, SkinCtrls, shellapi, registry,
XPMan;
type
TFormMain = class(TForm)
PopupMenu1: TPopupMenu;
Eteindre1: TMenuItem;
Quitter1: TMenuItem;
About1: TMenuItem;
Timer1: TTimer;
Bevel1: TBevel;
Bevel2: TBevel;
Image1: TImage;
GroupBox1: TGroupBox;
Label1: TLabel;
spSkinLinkLabel1: TspSkinLinkLabel;
spSkinLinkLabel2: TspSkinLinkLabel;
SpeedButton1: TSpeedButton;
Session1: TMenuItem;
config1: TMenuItem;
XPManifest1: TXPManifest;
Reboot1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure PopupMenuClick2(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure spSkinLinkLabel1Click(Sender: TObject);
procedure spSkinLinkLabel2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
dblClickActionAlreadyLoaded, LoadWin, LoadWinAlreadyLoaded: boolean;
dblClickAction: integer;
procedure PowerOff;
procedure Reboot;
procedure SuspendSession;
implementation
uses Config;
{$R *.dfm}
{$R icones.res}
function WindowsRep():string;
var
WindowsDir : array[0..MAX_PATH] of Char;
nSize : DWord;
begin
nSize := SizeOf(WindowsDir);
GetWindowsDirectory(@WindowsDir, nSize);
result := WindowsDir;
end;
procedure PowerOff;
begin
winexec(Pchar(WindowsRep()+'\system32\shutdown.exe -s -f -t 00'),SW_SHOWNORMAL);
end;
procedure Reboot;
begin
winexec(PChar(WindowsRep()+'\system32\shutdown.exe' + ' -r -f -t 00'),SW_SHOWNORMAL);
end;
procedure SuspendSession;
begin
LockWorkStation();
end;
procedure TFormMain.spSkinLinkLabel2Click(Sender: TObject);
begin
ShellExecute(Handle,'OPEN','http://www.diabloporc.fr.st',Nil,Nil,SW_SHOW);
end;
procedure TFormMain.FormCreate(Sender: TObject);
var
Reg: TRegistry;
begin
if not fileexists(WindowsRep()+'\system32\shutdown.exe') then
begin
if MessageDlg('Le fichier "'+WindowsRep()+'\system32\shutdown.exe" est introuvable.'+#10+#13+'Désirez-vous le télécharger ?',mtError,[mbYes,mbNo],0)=mrNo then Begin MessageDlg('L''application ne peut continuer.',mtError,[mbOk],0); Application.terminate; end else
begin
MessageDlg('Redémarrez Closeme.exe apres avoir copié "shutdown.exe" dans le dossier "'+WindowsRep()+'\system32\"',mtWarning,[mbOk],0);
ShellExecute(Handle,'OPEN','http://diabloporc.free.fr/delphi/closeme/shutdown.exe',Nil,Nil,SW_SHOW);
Application.terminate;
end;
end;
Application.Icon.Handle := LoadIcon(hInstance,PChar('HAND'));
AjouteIconeTray(FormMain.handle,application.Icon.Handle,'Close Me !');
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('SOFTWARE\Diabloporc\CloseMe\', true);
if Reg.ValueExists('LoadWin') then LoadWin := Reg.ReadBool('LoadWin') else LoadWin := False;
Reg.Free;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('SOFTWARE\Diabloporc\CloseMe\', true);
if Reg.ValueExists('dblClickAction') then dblClickAction := Reg.ReadInteger('dblClickAction') else dblClickAction := 0;
Reg.Free;
LoadWinAlreadyLoaded := true;
dblClickActionAlreadyLoaded := true;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('SOFTWARE\Diabloporc\CloseMe\', true);
Reg.WriteString('Version', '1.1');
Reg.Free;
end;
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
EnleveIconeTray();
end;
procedure TFormMain.FormDestroy(Sender: TObject);
begin
EnleveIconeTray();
end;
procedure TFormMain.Timer1Timer(Sender: TObject);
begin
formmain.hide;
timer1.Enabled := false;
end;
procedure TFormMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Pos:TPoint;
begin
GetCursorPos(Pos);
case X of
WM_LBUTTONDBLCLK:if dblClickAction=0 then PowerOff else if dblClickAction=1 then Reboot else SuspendSession;
WM_LBUTTONDOWN:;
WM_LBUTTONUP:;
WM_RBUTTONDBLCLK:;
WM_RBUTTONDOWN:;
WM_RBUTTONUP:PopupMenu1.Popup(Pos.X,Pos.Y);
end;
end;
procedure TFormMain.PopupMenuClick2(Sender: TObject);
begin
if Sender=Eteindre1 then PowerOff;
if Sender=Reboot1 then Reboot;
if Sender=Session1 then SuspendSession;
if Sender=Config1 then FormConfig.showmodal;
if Sender=Quitter1 then begin enleveiconetray(); Application.terminate; end;
if Sender=About1 then formmain.Show;
end;
procedure TFormMain.spSkinLinkLabel1Click(Sender: TObject);
begin
ShellExecute(Handle,'OPEN','mailto:diabloporc@laposte.net',Nil,Nil,SW_SHOW);
end;
procedure TFormMain.SpeedButton1Click(Sender: TObject);
begin
formmain.hide;
end;
end.
Conclusion :
je ne l'ai testé que sur win xp donc si ça ne marche pas ailleurs, mailez moi vos modifs ou mailez moi si vous n'y arrivez pas lol
bye merci
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.