Winexec, se o arquivo já estiver aberto, apenas restaurar...

Delphi

28/07/2004

Pessoal, estou usando winexec para abrir um arquivo de Help no formato .chm.

Mas queria fazer o seguinte: se o arquivo .chm já estiver aberto queria apenas passar os parâmetros para o winexec de forma que ele NÃO abra uma nova instância do arquivo.

Segue o Código:

parametro := ´hh ´ + Arquivo.chm::´ + Formulario + ´.htm´;
WinExec(pchar(parametro),SW_RESTORE);

onde

parametro = hh(help), Formulario(posição que será aberta no arquivo help).


Danilorsa

Danilorsa

Curtidas 0

Respostas

Welington

Welington

28/07/2004

Dê uma olhada no código abaixo e faça uma adaptação para a sua necessidade.

var
TheWindow: HWND;
begin
//encontra um manipulador para a janela do Windows Explorer
TheWindow:=FindWindow(nil,´Calculadora´);
if TheWindow <> 0 then
//Chama calculadora se já estiver carregada
SetForegroundWindow(TheWindow)
else
//Carrega calculadora se estiver fechada
//ShellExecute(Handle,´Open´,´Calc.exe´,nil,´c:\windows´,sw_shownormal);
WinExec(´Calc.exe´,WM_ACTIVATE);


GOSTEI 0
Danilorsa

Danilorsa

28/07/2004

Tem alguma função parecida com essa SetForegroundWindow, mas que eu consiga passar parâmetros como a Winexec?

Pelo seguinte: o FindWindow achou minha aplicação, mas no momento q chamar o SetForeground Window a tela a restaurar seria outra...

Por ex:

1) Winexec abriu meu help aberto na tela A
2) estou na tela B e vou chamar o help
3) Como este está aberto, A tela a restaurar agora seria B e não A


GOSTEI 0
POSTAR