Página 1 de 1
Chamar programa Windows pelo xharbour
Enviado: 21 Fev 2008 11:16
por paulovirt
Como consigo chamar um programa do Windows, tipo calc.exe pelo xharbour sem ter que usar o comando "RUN C:\WINDOWS\CALC.EXE" pois ao utilizá-lo, é aberto o console do ms-dos?
Enviado: 21 Fev 2008 11:25
por ederxc
Creio que seja com o CreateObject() , da uma olhada no help !
Enviado: 21 Fev 2008 11:28
por Maligno
Tente utilizar a função HB_OpenProcess(). Detalhes no help. Se não tiver help, pegue um no meu site, clicando
aqui.
Enviado: 21 Fev 2008 13:35
por Luciano Bonfim
Código: Selecionar todos
myrun("calc.exe")
function MYRUN( cComando )
local oShell, RET
oShell := CreateObject( "WScript.Shell" )
RET := oShell:Run( "%comspec% /c " + cComando, 0, .T. )
oShell := NIL
return iif( RET = 0, .T., .F. )
Enviado: 21 Fev 2008 15:22
por sygecom
Abaixo dois exemplos:
Modo console:
Em Fivewin:
Código: Selecionar todos
*************************************
Function Set_Calc() //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
Enviado: 21 Fev 2008 16:25
por Maligno
Curiosidade: o que a Microsoft diz sobre a função WinExec: "This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function."
Enviado: 21 Fev 2008 18:51
por janio
Maligno escreveu:"This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function."
Não entendi nada!

:(Neg #-) :'(
Jânio
Enviado: 21 Fev 2008 19:08
por sygecom
janio escreveu:Maligno escreveu:"This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function."
Não entendi nada!

:(Neg #-) :'(
Jânio
"Essa função é fornecida somente para compatibilidade com o Windows de 16 bits. Os aplicativos devem usar a função CreateProcess"
A WinExec() é da API do Windows.
Enviado: 21 Fev 2008 19:23
por Maligno
"Essa função é fornecida somente para compatibilidade com o Windows de 16 bits. Os aplicativos devem usar a função CreateProcess ..."
... que por sua vez, é a função da API do Windows utilizada pela função HB_OpenProcess().