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

Abrir pagina WEB pelo FIREFOX


Anderson Scinfo

Pergunta

Bom dia pessoal, é o seguinte...comecei a participar deste forum por um unico interesse, a linguagem php, estou convertendo todos os meu relatórios para abrir no browser, ai então descobri este forum impressionante no qual percebi mais suporte que até outros foruns mais conhecidos, realmente os moderadores estão de parabens.....mas não to falando isso pra obter ajuda não....to falando é de coração mesmo.....vai minha duvida, eu uso apache como servidor web, e toda maquina windows vem com iexplore instalado já nativamente, mas não me agrado muito com ele, alguns bugs de tags <div> fazem com que simples linhas de código se tornam dificeis de resolver, coisa que com o firefox não acontece, então eu queria verificar se o firefox esta instalado, e se tiver forçar, fazer com que o relatório seje aberto por ele.... se eu digito isto "C:\Arquivos de programas\Mozilla Firefox\firefox.exe" http://localhost/rel_sisaeg/comprovante_orcamento.php no executar do windows ele abre o comprovante_orcamento.php pelo firefox, agora falta fazer com que o delphi verifique se exista firefox e se existir, abra o orçamento por ele....espero ter sido claro o bastante.....qualquer coisa explico de novo....

Anderson

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
(...) então eu queria verificar se o firefox esta instalado, e se tiver forçar, fazer com que o relatório seje aberto por ele.... se eu digito isto "C:\Arquivos de programas\Mozilla Firefox\firefox.exe" http://localhost/rel_sisaeg/comprovante_orcamento.php no executar do windows ele abre o comprovante_orcamento.php pelo firefox, agora falta fazer com que o delphi verifique se exista firefox e se existir, abra o orçamento por ele....espero ter sido claro o bastante.....qualquer coisa explico de novo....

Acho que a forma mais segura seria verificar na chave de registro HKEY_CLASSES_ROOT, isto porque, pelo que vi no meu arquivo de registro, onde houveram várias atualizações de versões do FireFox, pode não ser tão direta a verificação. Por exemplo, as informações do FireFox ficam na chave de registro HKEY_LOCAL_MACHINE. Veja o que eu tenho aqui:

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\2.0.0.10 (pt-BR)\Main

Install Directory = C:\Arquivos de programas\Mozilla Firefox

PathToExe = C:\Arquivos de programas\Mozilla Firefox\firefox.exe

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 2.0.0.10\bin

PathToExe = C:\Arquivos de programas\Mozilla Firefox\firefox.exe

Logo, não há garantias de fazer um procedimento padrão. Mas utilizando a chave das classes sim.

Bom, neste chave você encontrará duas entradas cujas linhas de comandos são exatamente as mesmas:

HKEY_CLASSES_ROOT\FirefoxHTML\shell\open\command

(padrão) = C:\ARQUIV~1\MOZILL~1\FIREFOX.EXE -requestPending -osint -url "%1"

HKEY_CLASSES_ROOT\FirefoxURL\shell\open\command

(padrão) = C:\ARQUIV~1\MOZILL~1\FIREFOX.EXE -requestPending -osint -url "%1"

Verificar a existência desta chave (classe TRegFile usando OpenKey), já é um indício da existência do FireFox instalado, mas não garante nada caso tenha sido feita uma desinstalação incorreta. Neste caso, cabe ainda conferir a existência do programa (uso da função FileExists).

Uma vez que exista, então o negócio é ler esta string de comando e substituir o %1 (que é o parâmetro) pela sua URL e executar esta linha de comando via WinExec, por exemplo.

Você consegue montar o código, ou precisa de ajuda nisto também?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

ola...boa tarde michel....muito obrigado pela ajuda.....

ps.: desculpe se no meu segundo post do tópico eu deva ter "falado" algo que não devia....talvez tenha me expressado mal...é que eu li outros tópicos e vi a galera pedindo tipo ninguém....alguém sabe, quiz fazer assim somente....mas ta beleza a adivertencia serve pra gente melhorar a conduta no forum, mas senti um pouco de sarcasmo nesta frase.... (você consegue montar o código, ou precisa de ajuda nisto também?) pode ser na forma que li também....

Editado por Micheus
Não observação do item 3.7 das regras do forum: não digite em caixa ALTA
Link para o comentário
Compartilhar em outros sites

  • 0
ps.: desculpe se no meu segundo post do tópico eu deva ter "falado" algo que não devia....talvez tenha me expressado mal...é que eu li outros tópicos e vi a galera pedindo tipo ninguém....alguém sabe, quiz fazer assim somente....mas ta beleza a adivertencia serve pra gente melhorar a conduta no forum,
Não se expressou mal não. Apenas o post meio que cobrava que alguém devesse o ter respondido, o que pode ser considerado um UP (eu considero) e que pelas normas do forum são proibidos. ;)

mas senti um pouco de sarcasmo nesta frase.... (você consegue montar o código, ou precisa de ajuda nisto também?) pode ser na forma que li também....
Não tem nada de sarcástico não. Se você tivesse lido todos os meus outros mil e tantos posts, talvez você visse que não é o tipo de coisa que eu faça (exceto quando eu tenho que repetir a mesma coisa muitas vezes em um mesmo tópico - aí, as vezes, eu não em aguento ;)). Pelo menos não é minha intenção (talvez eu tenha me expressado mal).

É uma pergunta direta mesmo, não tenho a mínima idéia do quanto você conhece, então, como passei apenas algumas diretrizes e não um código exemplo, resolvi lhe perguntar.

Esta semana é uma semana bem parada, e a pressupor sua pressa em uma resposta, pareceu-me mais conveniente o questionamento.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, já que ninguém respondeu ainda e já acabou a correria do fim de ano, segue mais detalhado o que você deve fazer para chegar no que você questionou:

- Criar uma variável na sessão private do seu form;

- No evento OnCreate do seu form, acesse o registro do windows, baseado no que postei inicialmente e inicialize esta variável para uso durante o decorrer do programa - sem necessidade de reler o registro;

- Na parte do código onde você deseja chamar sua página (p.e. ??.php), você testa se a variável está incializada. Se estiver, o FireFox está instalado e você inicializa a string de comando e ativa a página através do comando WinExec.

O código na prática:

type
  TForm1 = class(TForm)
    ...
  private
    FireFoxPath :String;
  end;

var
  Form1: TForm1;

implementation
uses
  Registry,  // uso da classe TRegistry
  ShellAPI;  // uso a função ShellExecute

procedure TForm1.FormCreate(Sender: TObject);
var
  Reg :TRegistry;
begin
  Reg := TRegistry.Create;
  try
   // seleciona chave de Classes
    Reg.RootKey := HKEY_CLASSES_ROOT;
   // tentamos abrir a chave referente à string de comando do FireFox
    if Reg.OpenKey('FirefoxURL\shell\open\command', False) then
      FireFoxPath := Reg.ReadString('')  // lê o valor "padrão"
    else
      FireFoxPath := '';  // não está instalado
  finally
    Reg.Free;
  end;
end;

 ...
// para exemplificar, optei por colocar o código em um Button.OnClick
procedure TForm1.Button1Click(Sender: TObject);
var
  PageAddress :string;
begin
 // aqui o endereço é colocado direto em uma variável local.
 // no seu caso, você pode adaptar para ler de um campo de tabela ou edit - fica a gosto.
  PageAddress := 'http://localhost/rel_sisaeg/comprovante_orcamento.php';

 // se o navegador FireFox estiver instalado, a variável não estará nula
 // e então montamos a string de comando, substituindo o parâmetro (%1)
  if FireFoxPath <> '' then
    PageAddress := StringReplace(FireFoxPath, '%1', PageAddress, [rfReplaceAll]);

 // caso o FireFox não esteja instalado, estaremos passando apenas o endereço
 // a função ShellExecute, o que fará que o navegador padrão seja acionado.
  ShellExecute(0, nil, PChar(FireFoxPath), nil, nil, SW_SHOWMAXIMIZED);
end;

end.

Espero que lhe ajude.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

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