Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi SheelExecute todos os botões abrem o mesmo site.


Posts recomendados

Boa tarde,

 

Gente eu estou começando ainda a mexer no delphin e com programação então tenho umas duvidas meio bestas, estou trabalhando num projeto junto com um conhecido, eu estava fazendo os botões da aplicação e percebi que todos os botões mesmo com sites diferentes estão abrindo apenas o link do primeiro botao, porém buscando eu não encontrei nada parecido com isso, entao não sei onde eu errei.

unit Unit2;

interface

uses
  Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.ImageList,
  Vcl.ImgList, Vcl.ExtCtrls, ShellAPI, Vcl.ComCtrls ;

type
  TForm2 = class(TForm)
    ImageList1: TImageList;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);

    procedure Button2Click(sender: TObject);

    procedure Button3Click(sender: TObject);

    procedure Button4Click(sender: TObject);

    procedure Button5Click(sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin

ShellExecute(Handle,'open','site1', '',nil,0);

end;

procedure TForm2.Button2Click(Sender: TObject);
begin

ShellExecute(Handle,'open',site2', '',nil,0);

end;

 procedure TForm2.Button3Click(Sender: TObject);
begin

ShellExecute(Handle,'open','site3', '',nil,0);

end;

procedure TForm2.Button4Click(Sender: TObject);
begin

ShellExecute(Handle,'open','site4', '',nil,0);

end;

procedure TForm2.Button5Click(Sender: TObject);

begin

  WinExec('C:\Program Files (x86)\programa\programa.exe', SW_SHOW);

end;

end.

e no caso do Botao 5 eu queria fazer o programa abrir dentro do painel, porém não achei muito sobre isso, e queria saber se alguém tem alguma documentação e indicação sobre como fazer, pois eu percebi que teria que criar um subprocesso porém não achei muito sobre, mas o problema é que mesmo sem dar erro nenhum o programa não abre  tentei das 2 formas mas em enhumas o programa abre, ja tentei inclusive usando um código pronto que afirmaram funcionar da calculadora.

ShellExecute(Handle, nil, 'C:\Program Files (x86)\programa.exe', nil, nil, SW_SHOWNORMAL  )
WinExec('C:\Program Files (x86)\programa\programa.exe', SW_SHOW);

 

procedure TForm2.Button5Click(Sender: TObject);

var

Handle: THandle;

begin

  Handle := FindWindow(nil, 'Calculadora');

  if Handle > 0 then

    Windows.SetParent(Handle, Panel1.Handle)

  else

  begin

    WinExec(´calc.exe´, SW_SHOWDEFAULT);

    Handle := FindWindow(nil, 'Calculadora');

    if Handle > 0 then

        Windows.SetParent(Handle, Panel1.Handle);

  end;

end;

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...