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
No hay comentarios:
Publicar un comentario