terça-feira, 1 de setembro de 2009

Executando o windows explorer com parâmetros

Function ExecExplorer(OpenAtPath: string; OpenWithExplorer, OpenAsRoot: Boolean): boolean;
//
// Executa o Windows Explorer a partir de uma pasta
// especificada
//
// Requer a unit ShellApi
//
// ex: execExplorer('C:Temp', True,True);
//
var
s: string;
begin
if OpenWithExplorer then
begin
if OpenAsRoot then
s := ' /e,/root,"' + OpenAtPath + '"'
else
s := ' /e,"' + OpenAtPath + '"';
end
else
s := '"' + OpenAtPath + '"';
result := ShellExecute(Application.Handle,PChar('open'),PChar('explorer.exe'),PChar(s),nil,SW_NORMAL) > 32;
end;

Executando internet explorer

Uses comobj;

procedure TForm1.logoClick(Sender: TObject);
var ie : Variant;
begin
IE := CreateOleObject('InternetExplorer.Application');
IE.Visible := true;
IE.Navigate('www.endreco.com.br');
end;

Executando algo antes de minimizar

{Primeiro, capturamos a mensagem, adicionando esta linha na declaração private do form: }
type
TForm1 = class(TForm)
private
{Esta linha}
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
end; //Na implementation, colocamos a procedure:

procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType = SC_MINIMIZE) or
(Msg.CmdType = SC_MAXIMIZE) then
MessageBeep(0);
DefaultHandler(Msg);
end;

Executando uma única cópia do aplicativo

{Se você quiser executar uma única copia do aplicativo, o código de inicialização do arquivo fonte do PROJETO pode ser escrito conforme segue: }
program Project1;
uses
Forms,
Windows,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
Var HprevHist : HWND;
begin
Application.Initialize;
HprevHist := FindWindow(Nil, PChar('TheProgrammer'));
if HprevHist = 0 then begin
Application.Title := 'TheProgrammer';
Application.CreateForm(TForm1, Form1);
Application.Run;
end else
MessageDlg('Você não pode executar outra cópia do aplicativo', mtInformation, [mbOK], 0); {Com esse código o usuário pode iniciar uma nova copia do aplicativo somente se não houver outra anterior. Caso contrario é exibido uma mensagem para o usuário.}

Executando uma chamada para a conexão dial-up

{Executando uma chamada para a Conexão Dial-Up

Insira um objeto do tipo Button definindo sua propriedade name para Button1.}

implementation
uses Registry;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
Var
Conexao, Executa, Conecta : string;
Dialup : Pchar;
reg : TRegIniFile;
begin
reg := TRegIniFile.create('RemoteAccess');
Conexao := reg.ReadString('','Default','');
reg.free;
Executa:='rundll32.exe rnaui.dll,RnaDial '; {executável e biblioteca do windows}
Conecta:=Executa+Conexao; {concatena comando e nome da conexão}
Dialup:=Pchar(Conecta); {transforma string em caractere para ser aceita pela função}
winexec(Dialup,sw_show);
end;

Executando ações padrão de um ole container

{Para executar ações padrão de um Ole Container (abrir um documento Word ou Excel ou rodar uma apresentação Powerpoint), pode-se usar este código:}

procedure TForm1.Button1Click(Sender: TObject);
begin
OleContainer1.DoVerb(ovprimary);
end;

Executando uma url a partir do netscape mesmo que ele não seje o browser padrão

Procedure NetscapeGotoURL( sURL : string );
// ex: NetscapeGotoURL('http://www.endereco.com.br' );
// requer a unit DDEman na clausula Uses
var
dde : TDDEClientConv;
begin
dde := TDDEClientConv.Create( nil );
with dde do
begin
ServiceApplication :='C:... etscape.exe';
SetLink( 'Netscape', 'WWW_Activate' );
RequestData('0xFFFFFFFF');
SetLink( 'Netscape', 'WWW_OpenURL' );
RequestData(sURL+',,0xFFFFFFFF,0x3,,,' );
CloseLink;
end;
dde.Free;
end;