Abrir CHM pelo ShellExecute
Moderador: Moderadores
Abrir CHM pelo ShellExecute
Amigos,
Eu criei um manual do sistema pelo winchm, como eu faço para abrir este arquivo, ou melhor executar este arquivo pelo xharbour.
O nome dele é matconst.chm.
Pelo comando run ele abre mas fica uma chamada do cmd ao fundo, como seria pelo ShellExecute.
[]´s
Eu criei um manual do sistema pelo winchm, como eu faço para abrir este arquivo, ou melhor executar este arquivo pelo xharbour.
O nome dele é matconst.chm.
Pelo comando run ele abre mas fica uma chamada do cmd ao fundo, como seria pelo ShellExecute.
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Re: Abrir CHM pelo ShellExecute
Amigos,
Notei que a função ShellExecute está em conflito nas bibliotecas hwgui e what32, explico:
Usando somente a what32:
ShellExecute(0,nil,'matconst.chm',nil,nil,1) o chm é exibido.
Agora usando as duas bibliotecas : what32 e hwgui
A função ShellExecute que tem também na hwgui abre o explorer.
Detalhe usando o mesmo comando acima.
Alguém já viu isso?
[]´s
Notei que a função ShellExecute está em conflito nas bibliotecas hwgui e what32, explico:
Usando somente a what32:
ShellExecute(0,nil,'matconst.chm',nil,nil,1) o chm é exibido.
Agora usando as duas bibliotecas : what32 e hwgui
A função ShellExecute que tem também na hwgui abre o explorer.
Detalhe usando o mesmo comando acima.
Alguém já viu isso?
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Re: Abrir CHM pelo ShellExecute
Amigos,
Já resolvi,
Usando somente a what32
ShellExecute(0,nil,'matconst.chm',nil,nil,1)
Usando what32 + hwgui:
ShellExecute('matconst.chm',,,0) //1
Os parâmetros são diferentes em ambas bibliotecas.
[]´s
Já resolvi,
Usando somente a what32
ShellExecute(0,nil,'matconst.chm',nil,nil,1)
Usando what32 + hwgui:
ShellExecute('matconst.chm',,,0) //1
Os parâmetros são diferentes em ambas bibliotecas.
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Re: Abrir CHM pelo ShellExecute
bom dia
como posso fazer para que não apareça a tela de CMD quando uso um comando run ou o Shellexecute
pois tenho no sistema que chamar um executavel para a NFe e toda vez aparece a tela de CMD, e o usuario reclama um pouco (com razão rss)
se alguem puder ajudar eu agradeço
OBS: uso gtwvt. uso o comando shellexecute para chamar a calculadora por exemplo
Obrigado
Henrique
como posso fazer para que não apareça a tela de CMD quando uso um comando run ou o Shellexecute
pois tenho no sistema que chamar um executavel para a NFe e toda vez aparece a tela de CMD, e o usuario reclama um pouco (com razão rss)
se alguem puder ajudar eu agradeço
OBS: uso gtwvt. uso o comando shellexecute para chamar a calculadora por exemplo
Obrigado
Henrique
Re: Abrir CHM pelo ShellExecute
Henrique,
Esta foi a minha preocupação também.
O exemplo acima funcionou, você também pode usar o winexec, tem que compilar junto a what32.
O comando run com certeza vai aparece a tela do dos no fundo. Estão as opções serial o shellexecute ou winexec
Outro detalhe que esqueci de mencionar, você pode criar uma bat por exemplo:
Na bat:
visualizar.bat
meuarquivo.chm
Chamada:
WinExec("visualizar.bat") Também funciona.
[]´s
Esta foi a minha preocupação também.
O exemplo acima funcionou, você também pode usar o winexec, tem que compilar junto a what32.
O comando run com certeza vai aparece a tela do dos no fundo. Estão as opções serial o shellexecute ou winexec
Outro detalhe que esqueci de mencionar, você pode criar uma bat por exemplo:
Na bat:
visualizar.bat
meuarquivo.chm
Chamada:
WinExec("visualizar.bat") Também funciona.
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Re: Abrir CHM pelo ShellExecute
bom
obrigado pela resposta mas eu consegui de outra maneira.
Utilizei a função myrun()
coloquei ela no final do prg
e depois é só chamar a função
Myrun('nfeexp.exe -cancelar &id &prot "&mot" > null')
No meu caso funcionou 100% sem abrir uma tela DOS
Fica registrado aí pro pessoal
Henrique
obrigado pela resposta mas eu consegui de outra maneira.
Utilizei a função myrun()
Código: Selecionar todos
******************************************************
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. )
e depois é só chamar a função
Myrun('nfeexp.exe -cancelar &id &prot "&mot" > null')
No meu caso funcionou 100% sem abrir uma tela DOS
Fica registrado aí pro pessoal
Henrique
Re: Abrir CHM pelo ShellExecute
Henrique,
Não tinha atentado para o comando null.
Mais uma dica valiosa.
[]´s
Não tinha atentado para o comando null.
Mais uma dica valiosa.
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Abrir CHM pelo ShellExecute
Ou:
Código: Selecionar todos
FUNCTION Abre_arquivo( cHelpFile )
LOCAL nRet, cPath, cFileName, cFileExt
HB_FNameSplit( cHelpFile, @cPath, @cFileName, @cFileExt )
nRet := _OpenHelpFile( cPath, cHelpFile )
RETURN nRet
#pragma BEGINDUMP
#pragma comment( lib, "shell32.lib" )
#include "hbapi.h"
#include <windows.h>
HB_FUNC( _OPENHELPFILE )
{
HINSTANCE hInst;
LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
hb_retnl( (LONG) hInst );
return;
}
#pragma ENDDUMP
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Re: Abrir CHM pelo ShellExecute
Amigos!
A função myrun() tá mostando os seguintes erros em algun computadoes meus:
- Ponto e enrada não encontado:
- Não foi possível loclizar o pnto de entada do procedimento DoOpenPipeStream na biblioteca de vínculo dinâmico ScrRun.dll, numa janelnha windows.
... e no sistema não encotra a função "toleauto:new(315)", createobject(69).
O sistema do pc era Windows XP e o compilador é xHarbour 1.00 simplex.
Grato pela atenção.
A função myrun() tá mostando os seguintes erros em algun computadoes meus:
- Ponto e enrada não encontado:
- Não foi possível loclizar o pnto de entada do procedimento DoOpenPipeStream na biblioteca de vínculo dinâmico ScrRun.dll, numa janelnha windows.
... e no sistema não encotra a função "toleauto:new(315)", createobject(69).
O sistema do pc era Windows XP e o compilador é xHarbour 1.00 simplex.
Grato pela atenção.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Abrir CHM pelo ShellExecute
Se não me engano esta função esta na RTL.LIB, por acaso essa LIB esta linkanda ao seu projeto ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Euclides
- Usuário Nível 3

- Mensagens: 154
- Registrado em: 12 Mai 2007 14:07
- Localização: São Paulo, Capital
Re: Abrir CHM pelo ShellExecute
Olá,
Existe na pasta \Windows, o HH.EXE que executa direitingo os arquivos .CHM com a vantagem de abrir também arquivos .htm e .html.
Pelo FiveWin eu uso assim:
WinExec("HH -800 ajuda.chm", 1) // -800 é a largura da janela
ShellExecute( GetActiveWindow(), "Open", "HH.EXE", "ajuda.chm", nil, 1)
Deve ter equivalências no Harbour/xHarbour
T+
Euclides
Existe na pasta \Windows, o HH.EXE que executa direitingo os arquivos .CHM com a vantagem de abrir também arquivos .htm e .html.
Pelo FiveWin eu uso assim:
WinExec("HH -800 ajuda.chm", 1) // -800 é a largura da janela
ShellExecute( GetActiveWindow(), "Open", "HH.EXE", "ajuda.chm", nil, 1)
Deve ter equivalências no Harbour/xHarbour
T+
Euclides

