Código fonte da ShellExecute()
Moderador: Moderadores
Código fonte da ShellExecute()
Boa noite.
Preciso desta função. Ela está presente na HWGUI, mas eu não desejo linkar a lib toda no meu fonte, apenas pra usar a shellexecute(). Acredito que o programa vai ficar muito pesado, se fizer isso.
Será q alguém colabora e disponibiliza no fórum essa útil função (ela carrega programas externos de 32bits), com as subfunções que por ventura ela venha a chamar?
Grato a quem se habilitar....
gabriel
Preciso desta função. Ela está presente na HWGUI, mas eu não desejo linkar a lib toda no meu fonte, apenas pra usar a shellexecute(). Acredito que o programa vai ficar muito pesado, se fizer isso.
Será q alguém colabora e disponibiliza no fórum essa útil função (ela carrega programas externos de 32bits), com as subfunções que por ventura ela venha a chamar?
Grato a quem se habilitar....
gabriel
lugab
Re: Código fonte da ShellExecute()
Acredito que você deve estar falando desta função ShellExecute(), que é na verdade, da API do Windows; não do [x]Harbour. Você não precisará do fonte dela para deixar seu programa mais leve, por dois motivos: sendo da API, ela reside na biblioteca dinâmica Shell32.dll. Ela será carregada automaticamente quando necessária. Qualquer programa Windows utiliza dezenas de DLLs que já acompanham o SO. E mesmo que existisse uma LIB estática para usar, não haveria porque se preocupar. Em link-time, apenas o módulo necessário seria ligado ao seu programa, e não a LIB inteira.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código fonte da ShellExecute()
Tente linkar o arquivo .C que está em anexo junto com seu aplicativo e veja se resolve.
- Anexos
-
shellapi.zip- (582 Bytes) Baixado 316 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Código fonte da ShellExecute()
O arquivo C em questão não vai adiantar piçiroca nenhuma em relação ao problema ventilado pelo OP, haja vista que a dita cuja é apenas um wrapper que irá executar a ShellExecute() da API de qualquer maneira. Neste ponto, troca-se 6 por meia dúzia.
Mas esta função pelo menos traz algum conforto na execução, já que ela instala alguns defaults. Facilita o uso.
Mas esta função pelo menos traz algum conforto na execução, já que ela instala alguns defaults. Facilita o uso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código fonte da ShellExecute()
Vamos aguardar uma resposta do colega Gabriel, que bem provavel vai TESTAR pelomenos.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Código fonte da ShellExecute()
Nem precisa testar. Vai ficar do mesmo tamanho. É só LER a função.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Re: Código fonte da ShellExecute()
... embora eu ache que a função seja útil, por ser um wrapper que traz algum conforto.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código fonte da ShellExecute()
Maligno, o colega Gabriel está linkando a LIB da Hwgui apenas por causa dessa função, o que ele quer é apenas usar a função sem ter que linkar a lib da Hwgui.Maligno escreveu:Nem precisa testar. Vai ficar do mesmo tamanho. É só LER a função.
Vamos por favor aguardar. Obrigado.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Código fonte da ShellExecute()
Ah, sim. Então vale o que eu já tinha dito. Não precisa se preocupar nem um pouco com a linkedição da biblioteca. Apenas o módulo necessário é realmente ligado ao programa. Não a biblioteca toda.
Mas se agora já tem esse fonte, tanto melhor. Pode ignorar essa LIB de vez. Apesar de que ela não faz nada de muito especial.
Mas se agora já tem esse fonte, tanto melhor. Pode ignorar essa LIB de vez. Apesar de que ela não faz nada de muito especial.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Re: Código fonte da ShellExecute()
Pessoal, obrigado pela atenção. Vcs são excelentes.
Compilei a sugestão do leonardo e deu um monte de erro, mas eu não nego que estou bem próximo de zero, em termos de linguagens de programação, e, certamente, andei fazendo a coisa errada.
Eu coloquei o arquivo SHELLAPI.C q o Leonardo mandou dentro de meu funcoes.prg .
Copiei para a pasta aonde compilo os arquivos windows.h, shlobj.h, hbapi.h e hbapiitm.h , que estavam nas minhas pastas \XHARBOUR\INCLUE e \BORLAND\BCC55\INCLUDE.
Na compilação, deu os seguintes erros:
c:\harbour\bin\harbour.exe funwin.prg -ic:\harbour\include;c:\borland\bcc55\include -n -DWVW
xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'funwin.prg'...
windows.h(22) Error E0025 Error in #if expression
100excpt.h(62) Error E0030 Syntax error: "syntax error at ','"
excpt.h(63) Error E0030 Syntax error: "syntax error at ','"
excpt.h(64) Error E0030 Syntax error: "syntax error at ','"
excpt.h(65) Error E0020 Incomplete statement or unbalanced delimiters
excpt.h(67) Error E0030 Syntax error: "syntax error at '}'"
excpt.h(97) Error E0030 Syntax error: "syntax error at 'STRUCT'"
excpt.h(99) Error E0030 Syntax error: "syntax error at '__C_SPECIFIC_HANDLER'"
100excpt.h(100) Error E0030 Syntax error: "syntax error at '_EXCEPTION_RECORD'"
excpt.h(101) Error E0030 Syntax error: "syntax error at '*'"
excpt.h(102) Error E0030 Syntax error: "syntax error at '_CONTEXT'"
excpt.h(103) Error E0030 Syntax error: "syntax error at '_DISPATCHER_CONTEXT'"
excpt.h(105) Error E0030 Syntax error: "syntax error at ')'"
excpt.h(127) Error E0025 Error in #if expression
excpt.h(180) Error E0024 Error in #pragma
100_stddef.h(73) Error E0030 Syntax error: "syntax error at 'INT'"
_stddef.h(83) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
_stddef.h(93) Error E0030 Syntax error: "syntax error at 'WCHAR_T'"
100_stddef.h(102) Error E0030 Syntax error: "syntax error at 'WCHAR_T'"
_stddef.h(109) Error E0030 Syntax error: "syntax error at 'LONG'"
stdarg.h(35) Error E0030 Syntax error: "syntax error at 'VOID'"
200windef.h(11) Error E0024 Error in #pragma
100windef.h(161) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
windef.h(165) Error E0030 Syntax error: "syntax error at 'INT'"
winnt.h(19) Error E0024 Error in #pragma
mbctype.h(57) Error E0030 Syntax error: "syntax error at '__CDECL'"
mbctype.h(66) Error E0030 Syntax error: "syntax error at '__CDECL'"
mbctype.h(73) Error E0030 Syntax error: "syntax error at '__CDECL'"
ctype.h(52) Error E0030 Syntax error: "syntax error at 'SHORT'"
ctype.h(65) Error E0030 Syntax error: "syntax error at '__CDECL'"
ctype.h(78) Error E0030 Syntax error: "syntax error at '__CDECL'"
ctype.h(79) Error E0030 Syntax error: "syntax error at '}'"
100200winnt.h(96) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
winnt.h(99) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
100basetsd.h(22) Error E0024 Error in #pragma
basetsd.h(47) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
basetsd.h(62) Error E0025 Error in #if expression
basetsd.h(88) Error E0030 Syntax error: "syntax error at '__W64'"
100basetsd.h(109) Error E0025 Error in #if expression
200basetsd.h(289) Error E0030 Syntax error: "syntax error at 'ULONG_PTR'"
basetsd.h(295) Error E0030 Syntax error: "syntax error at 'ULONG_PTR'"
300basetsd.h(302) Error E0030 Syntax error: "syntax error at '__INT64'"
basetsd.h(311) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
basetsd.h(316) Error E0024 Error in #pragma
winnt.h(179) Error E0025 Error in #if expression
200300winnt.h(393) Error E0025 Error in #if expression
400500600700800900100011001200130014001500160017001800190020002100220023002400250026002700280029003000310032003300340035003600370038003900400041004200430044004500460047004800490050005100520053005400550056005700580059006000610062006300640065006600670068006900700071007200730020030030046 errors
No code generated
** error 1 ** deleting funwin.c
Compilei a sugestão do leonardo e deu um monte de erro, mas eu não nego que estou bem próximo de zero, em termos de linguagens de programação, e, certamente, andei fazendo a coisa errada.
Eu coloquei o arquivo SHELLAPI.C q o Leonardo mandou dentro de meu funcoes.prg .
Copiei para a pasta aonde compilo os arquivos windows.h, shlobj.h, hbapi.h e hbapiitm.h , que estavam nas minhas pastas \XHARBOUR\INCLUE e \BORLAND\BCC55\INCLUDE.
Na compilação, deu os seguintes erros:
c:\harbour\bin\harbour.exe funwin.prg -ic:\harbour\include;c:\borland\bcc55\include -n -DWVW
xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'funwin.prg'...
windows.h(22) Error E0025 Error in #if expression
100excpt.h(62) Error E0030 Syntax error: "syntax error at ','"
excpt.h(63) Error E0030 Syntax error: "syntax error at ','"
excpt.h(64) Error E0030 Syntax error: "syntax error at ','"
excpt.h(65) Error E0020 Incomplete statement or unbalanced delimiters
excpt.h(67) Error E0030 Syntax error: "syntax error at '}'"
excpt.h(97) Error E0030 Syntax error: "syntax error at 'STRUCT'"
excpt.h(99) Error E0030 Syntax error: "syntax error at '__C_SPECIFIC_HANDLER'"
100excpt.h(100) Error E0030 Syntax error: "syntax error at '_EXCEPTION_RECORD'"
excpt.h(101) Error E0030 Syntax error: "syntax error at '*'"
excpt.h(102) Error E0030 Syntax error: "syntax error at '_CONTEXT'"
excpt.h(103) Error E0030 Syntax error: "syntax error at '_DISPATCHER_CONTEXT'"
excpt.h(105) Error E0030 Syntax error: "syntax error at ')'"
excpt.h(127) Error E0025 Error in #if expression
excpt.h(180) Error E0024 Error in #pragma
100_stddef.h(73) Error E0030 Syntax error: "syntax error at 'INT'"
_stddef.h(83) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
_stddef.h(93) Error E0030 Syntax error: "syntax error at 'WCHAR_T'"
100_stddef.h(102) Error E0030 Syntax error: "syntax error at 'WCHAR_T'"
_stddef.h(109) Error E0030 Syntax error: "syntax error at 'LONG'"
stdarg.h(35) Error E0030 Syntax error: "syntax error at 'VOID'"
200windef.h(11) Error E0024 Error in #pragma
100windef.h(161) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
windef.h(165) Error E0030 Syntax error: "syntax error at 'INT'"
winnt.h(19) Error E0024 Error in #pragma
mbctype.h(57) Error E0030 Syntax error: "syntax error at '__CDECL'"
mbctype.h(66) Error E0030 Syntax error: "syntax error at '__CDECL'"
mbctype.h(73) Error E0030 Syntax error: "syntax error at '__CDECL'"
ctype.h(52) Error E0030 Syntax error: "syntax error at 'SHORT'"
ctype.h(65) Error E0030 Syntax error: "syntax error at '__CDECL'"
ctype.h(78) Error E0030 Syntax error: "syntax error at '__CDECL'"
ctype.h(79) Error E0030 Syntax error: "syntax error at '}'"
100200winnt.h(96) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
winnt.h(99) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
100basetsd.h(22) Error E0024 Error in #pragma
basetsd.h(47) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
basetsd.h(62) Error E0025 Error in #if expression
basetsd.h(88) Error E0030 Syntax error: "syntax error at '__W64'"
100basetsd.h(109) Error E0025 Error in #if expression
200basetsd.h(289) Error E0030 Syntax error: "syntax error at 'ULONG_PTR'"
basetsd.h(295) Error E0030 Syntax error: "syntax error at 'ULONG_PTR'"
300basetsd.h(302) Error E0030 Syntax error: "syntax error at '__INT64'"
basetsd.h(311) Error E0030 Syntax error: "syntax error at 'UNSIGNED'"
basetsd.h(316) Error E0024 Error in #pragma
winnt.h(179) Error E0025 Error in #if expression
200300winnt.h(393) Error E0025 Error in #if expression
400500600700800900100011001200130014001500160017001800190020002100220023002400250026002700280029003000310032003300340035003600370038003900400041004200430044004500460047004800490050005100520053005400550056005700580059006000610062006300640065006600670068006900700071007200730020030030046 errors
No code generated
** error 1 ** deleting funwin.c
lugab
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código fonte da ShellExecute()
Olá Gabriel,
Não era para colocar dentro de algum .PRG, era para apenas compilar junto no hbmake ! Ou seja onde você seleciona seus .PRG , você deve selecionar esse arquivo .C também.
Não era para colocar dentro de algum .PRG, era para apenas compilar junto no hbmake ! Ou seja onde você seleciona seus .PRG , você deve selecionar esse arquivo .C também.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Código fonte da ShellExecute()
Oi, Leonardo.
Eu sabia q eu estava fazendo errado. Vou refazer e ver no que da.
Muito obrigado, cara
Eu sabia q eu estava fazendo errado. Vou refazer e ver no que da.
Muito obrigado, cara
lugab
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Código fonte da ShellExecute()
De nada, qualquer duvida prende o grito.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql

