Página 1 de 1

Comando Winexec

Enviado: 23 Ago 2005 07:44
por Mário Isa
Com o comando Winexec() eu executo algo.pif assim:
Winexec('algo.pif')
Se este algo.pif já estiver em execução e, tipo assim, minimizado e o usuário clicar de novo no botão q o invoca teria como apenas mudar o foco para lá?
O comando que eu dei foi:
DEFINE BUTTON of oBar FILENAME "algo.bmp" action winexec('algo.pif') tooltip 'Algo for DOS' Message "Executa o ALGO for DOS"

Como eu faria para, já estando em execução, e reclicar no botão ele (o programa), ao perceber isso não re-executar e sim redirecionar o foco e a janela, se minizada ou não, vir para primeiro plano?

Abraços
Mário

Enviado: 26 Ago 2005 18:57
por rochinha
Amiguinho

De uma olhadinha neste exemplo http://www.dbwide.com.ar/local-cgi/coun ... apture.zip

Ele captura uma janela pelo seu nome e conforme o tratamento que vc der vc pode verificar se a mesma esta aberta e nao permitir abri-la novamente

@braços :?)

Enviado: 26 Ago 2005 19:56
por rochinha
Amiguinho

Na verdade o melhor método é este:

Function Calculadora()

LOCAL hWnd
If ( hWnd:= SeekCalculadora() ) == 0
WinExec( 'Calc.Exe', SW_NORMAL )
Else
BringWindowToTop( hWnd )
ShowWindow( hWnd, SW_RESTORE )
EndIf
return Nil


// ------------------------------------------------------------------ //
STATIC Function SeekCalculadora()
LOCAL aCaptions:= {'Calc','Calculator','Calculadora'}
LOCAL nPos, hWnd
For nPos = 1 to Len(aCaptions)
If ( hWnd:= FindWindow( 0, aCaptions[nPos] ) ) > 0
return hWnd
EndIf
Next
return hWnd

Com ele vc verifica se uma janela ja esta aberta e não a deixar abrir novamente.

@braços :?)

Enviado: 26 Ago 2005 21:31
por Mário Isa
:)) Graaaannnnde Rochinha :D
Obrigado.
Certinho. Valeu!!!

Enviado: 27 Ago 2005 05:26
por Mário Isa
:-o
Ei Rochinha, porém se tento executar algo.lnk (atalho para programas Windows) não dá certo pelo Winexec('algo.lnk') só se eu fizer winexec ('start algo.lnk') porém sei q no XP o Start não funciona mto bem.
Tem alguma coisa?

Enviado: 30 Ago 2005 01:12
por rochinha
Amiguinho

o problema do <b>start</b> não funcionar é o <b>path</b> do arquivo que vc esta tentando executar que pode não ser conhecido pelo Windows, mas ele funciona perfeitamente em todas as versões do windows.

Pode usar normalmente.

@braços :?)