Ir para conteúdo
Fórum Script Brasil
  • 0

Como Resolver Esses Problemas?


Carlos Rocha

Pergunta

Pessoal, to precisando de uma força:

Criei um form e puz nele 2 radio buttons.

1 - Instalar office 2002

2 - Instalar norton 2002

No evento onclik do primeiro radio button eu coloquei(Porque só iformando o path completo funciona)

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
WinExec('D:\Office Xp Com Front Pager/INSTALAR.EXE',0);
close;
end;
e No evento onclik do segundo radio button eu coloquei(Porque só iformando o path completo funciona)
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
WinExec('D:\Norton 2002/SETUP.EXE',0);
//WinExec('Norton 2002/SETUP.EXE',0);
//WinExec('D:\Norton 2002/NCDSTART.EXE',0);
close;
end;

Como fazer para não por o path completo?

Pergunto isso, pois caso a pessoa tenha como driver "D:" um outro hd aí lascou tudo.

Outro detalhe é que se o onclik do Norto setar para o instalador:"SETUP.EXE", aí funciona ok, mas se for setado para uma tela de escolha das opções do Norton:"NCDSTART.EXE", aí da a musiquinha de abertura mas a tela não vem. Só se clikar diretamente sobre ela.

Como resolver esses problemas?

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Você precisa realmente informar o caminho completo, não tem como adivinhar onde está o programa se você não informar a unidade (D:, E:, etc.). O que você pode fazer é descobrir qual a letra do CD-ROM do caboclo:

var i : integer;
var unidade : string;
begin

  for i:=65 to 90 do
  begin
    unidade := chr(i) + ':\';

    if GetDriveType(PAnsiChar(unidade))=5 then
      ShowMessage(unidade + ' é um CD-ROM!');
  end;
end;

Daí é só juntar a unidade com o caminho que você já sabe.

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, desculpe a minha ignorancia mas como é que vou colocar esse teu código junto com o meu.

Da uma ajuda ai.

WinExec('D:\Office Xp Com Front Pager/INSTALAR.EXE',0);

Mais uma coisa:

Outro detalhe é que se o onclik do Norto setar para o instalador:"SETUP.EXE", aí funciona ok, mas se for setado para uma tela de escolha das opções do Norton:"NCDSTART.EXE", aí da a musiquinha de abertura mas a tela não vem. Só se clikar diretamente sobre ela.

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

É só juntar as strings. Exemplo:

var i : integer;
var unidade : string;
begin

  for i:=65 to 90 do
  begin
    unidade := chr(i) + ':\';

    if GetDriveType(PAnsiChar(unidade))=5 then
      WinExec(unidade + 'Office Xp Com Front Pager\INSTALAR.EXE', 0);
  end;
end;

Mais uma coisa:

Outro detalhe é que se o onclik do Norto setar para o instalador:"SETUP.EXE", aí funciona ok, mas se for setado para uma tela de escolha das opções do Norton:"NCDSTART.EXE", aí da a musiquinha de abertura mas a tela não vem. Só se clikar diretamente sobre ela.

Aí é um problema muito específico, já que só acontece com ele, não é?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

É.

Iteressante que esse .exe, é uma tela com as opções que voce pode instalar a partir do norton como por exemplo Norton Password Manager, Norton GoBack, e e se voce clikar diretamente no executavel, ele da uma musiquiha introdutoria e abre a tela.

Mas, se voce setar o executavel do delphi(Radio Button no evento On clik) para esse executavel, ele da a musiquinha mas não abre.

Link para o comentário
Compartilhar em outros sites

  • 0

Por que você passa 0 para o segundo parâmetro de WinExec? Este é justamente o valor de SW_HIDE, que deveria ter o efeito de *não* mostrar (esconder, do Inglês 'hide') a janela. Experimente passar SW_SHOW ao invés do 0 e veja se o resultado é o esperado.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ola.

Coloquei deste jeito conforme tua orientação:

procedure TForm1.RadioButton1Click(Sender: TObject);
var i : integer;
var unidade : string;
begin

  for i:=65 to 90 do
  begin
    unidade := chr(i) + ':\';

    if GetDriveType(PAnsiChar(unidade))=5 then
      WinExec(unidade + 'Office Xp Com Front Pager\INSTALAR.EXE', SW_SHOW);
  end;
end;
Deu o seguinte erro:
[Error] Unit1.pas(46): Incompatible types: 'String' and 'PAnsiChar'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

E agora, como resolvo esse erro?

Com relação ao "SW_SHOW" no lugar do "0", esse deu certo.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...