Winexec, se o arquivo já estiver aberto, apenas restaurar...
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).
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
Curtidas 0
Respostas
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);
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
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
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