lunes, 21 de julio de 2008

Panel de Control

El friki [yeran@ipipr.rimed.cu]

No en todo momento tenemos acceso al panel de control de nuestra maquina por causa de restricciones o configuración. Una forma de tener acceso a este es mediante la función Shgetspecialfolderlocation que brinda Delphi. Para la programación de esta necesitamos capturar diferentes procesos del sistema. A continuación se muestra una Unit de código de ejemplo.

//Programa que muestra el Panel de Control...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ShellApi , ShlObj, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{
  Private declarations
}
public
{
  Public declarations
}
end;

var
Form1: TForm1;
PIDL : PitemIdlist;
Info : Tshellexecuteinfo;
PInfo : Pshellexecuteinfo;
Waitcode : DWord;
implementation
{
  $R *.dfm
}
procedure TForm1.Button1Click(Sender: TObject);
begin
  Shgetspecialfolderlocation(Handle,CSIDL_CONTROLS,PIDL);
  PInfo := @Info;
  with Info do
  begin
    Cbsize := sizeof(Info);
    Fmask := see_mask_nocloseprocess+ see_mask_idlist;
    Wnd := handle;
    Lpverb := nil;
    Lpfile := nil;
    Lpdirectory := nil;
    Nshow:=SW_NORMAL;
    Hinstapp:=0;
    Lpidlist:=PIDL;
  end;
  ShellexecuteEx(PInfo);
  repeat Waitcode:=waitforsingleobject(Info.hprocess,500);
  Application.ProcessMessages;
  until (Waitcode<>Wait_timeout);
end;
end


Artículos relacionados


No hay comentarios: