Como colocar sons para tocar?
Moderador: Moderadores
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Como colocar sons para tocar?
Olá amigos!
Queria saber se tem alguma função que toque os sons do windows, definidos pelo usuário no painel de controle?
Grato pela atenção.
Queria saber se tem alguma função que toque os sons do windows, definidos pelo usuário no painel de controle?
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
Re: Como colocar sons para tocar?
Você pode usar a função PlaySound() da API do Windows. Veja o MSDN para mais detalhes. Link: http://msdn.microsoft.com/en-us/library/aa909766.aspx
[]'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!
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Re: Como colocar sons para tocar?
Maligno!
Pelo q entendi essa função é para windows CE ou coisa parecida.
Ela existe em alguma lib do xharbour?
Pelo q entendi essa função é para windows CE ou coisa parecida.
Ela existe em alguma lib do xharbour?
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
Re: Como colocar sons para tocar?
Engano meu. Peguei o endereço do Google. É que só uso o MSDN que instalei no HD. O link mais certo é: http://msdn.microsoft.com/en-us/library ... S.85).aspx (melhor colar esse link no seu navegador. Está cortando o final dele).
Mas note que todas as informações são as mesmas, incluindo os parâmetros de chamada. Ou seja, é a mesma.
Essa função, especificamente, você não encontrará em qualquer LIB, uma vez que ela já existe na sua máquina, na biblioteca WINMM.DLL. Ela faz parte da API do Windows. A não ser que alguém tenha feita alguma função similar com algum recurso diferente, com uma passagem de argumento diferente, mais compatível com a linguagem XBase, por exemplo.
Mas note que todas as informações são as mesmas, incluindo os parâmetros de chamada. Ou seja, é a mesma.
Essa função, especificamente, você não encontrará em qualquer LIB, uma vez que ela já existe na sua máquina, na biblioteca WINMM.DLL. Ela faz parte da API do Windows. A não ser que alguém tenha feita alguma função similar com algum recurso diferente, com uma passagem de argumento diferente, mais compatível com a linguagem XBase, por exemplo.
[]'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!
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Como colocar sons para tocar?
Um exemplo prático de como fazer:
O parâmetro final "0" faz o sistema esperar a execução do som, se for "1" [se não me engano] permite a execução normal do sistema enquanto se toca.
Código: Selecionar todos
procedure main()
DLLCall("WINMM.DLL",32,"sndPlaySoundA", "Inicialização do Windows XP.wav", 0 )
returnCompilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Como colocar sons para tocar?
Os códigos:
Pelo valores, dá pra perceber que eles podem ser combinados.
Mas a função sndPlaySound() existe hoje em dia apenas para retrocompatibilidade. Ela vem sendo substituída por PlaySound().
Curiosidade: no [x]Harbour é necessário usar uma função de chamada de DLL? Não se poderia executar a função da API diretamente?
Código: Selecionar todos
00 (SND_SYNC ) -> a função retorna só após o som terminar
01 (SND_ASYNC ) -> a função retorna antes do som terminar
02 (SND_NODEFAULT) -> silêncio, se a fonte não for encontrada
04 (SND_MEMORY ) -> o primeiro argumento aponta para a memória
08 (SND_LOOP ) -> entra em looping até re-executar a função
16 (SND_NOSTOP ) -> não pára o som sendo executadoMas a função sndPlaySound() existe hoje em dia apenas para retrocompatibilidade. Ela vem sendo substituída por PlaySound().
Curiosidade: no [x]Harbour é necessário usar uma função de chamada de DLL? Não se poderia executar a função da API diretamente?
[]'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!
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Como colocar sons para tocar?
Não necessariamente.Maligno escreveu:no [x]Harbour é necessário usar uma função de chamada de DLL?
Tenho quase certeza que sim (não dou certeza por não dominar o assunto), pois o Leonardo me passou um código em C que faz uso da API do Windows para travamento do teclado e mouse, que usei para homologar o TEF.Maligno escreveu:Não se poderia executar a função da API diretamente?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Como colocar sons para tocar?
Imagino que não precise. Mas se tem dúvida, faça uma experiência simples com um WAV qualquer. E poste o resultado aqui. 
[]'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!
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Re: Como colocar sons para tocar?
Olá amigos!
Peguei a rotina que o Alamino passou e não deu certo, o único som que sai é um de erro, mesmo que eu coloque os daminhos dos arquivos.
Já a função que o Malígno informou, não sai nem som som de erro.
Tentei usar a função getenv() para pegar o conteúdo dos eventos de sons do windows, e também não retornou nada.
Tentei também usar a função loadlibrary() para ver se as funções das dlls poderiam ficar visíveis, mas ainda assim não deu.
To usando a gtwvw.lib, mas acho que não tem nenhuma função para tocar sons nela.
Vou continuar tentando aki.
Peguei a rotina que o Alamino passou e não deu certo, o único som que sai é um de erro, mesmo que eu coloque os daminhos dos arquivos.
Já a função que o Malígno informou, não sai nem som som de erro.
Tentei usar a função getenv() para pegar o conteúdo dos eventos de sons do windows, e também não retornou nada.
Tentei também usar a função loadlibrary() para ver se as funções das dlls poderiam ficar visíveis, mas ainda assim não deu.
To usando a gtwvw.lib, mas acho que não tem nenhuma função para tocar sons nela.
Vou continuar tentando aki.
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
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Como colocar sons para tocar?
Acabei de testar e funcionou certinho. Por via das dúvidas coloque a DLL junto com o programa. Vai ver o seu path não está apontando para a pasta de sistema do Windows.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Como colocar sons para tocar?
De que jeito deu certo? Execução direta da função ou através da função DLLCall()?
[]'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!
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Como colocar sons para tocar?
Funcionou do jeito que eu exemplifiquei lá em cima.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Re: Como colocar sons para tocar?
Alamino, deu certo.
Não precisei colocar a dll na pasta do meu sistema, era o seguinte:
Tava colocando a linha de comando assim:
Vi que quando copiei o arquivo da pasta c:\windows\midea para a pasta do meu sistema, foi mudado o nome do arquivo para ingles.
Deve ser porque eu uso o Windows 7.
Coisas do windows.
Agora vou fazer uma função para chamar os sons que eu quero.
Valeu mesmo a ajuda de voces.
Não precisei colocar a dll na pasta do meu sistema, era o seguinte:
Tava colocando a linha de comando assim:
E deveria ser colocado assim:DLLCall("WINMM.DLL",32,"sndPlaySoundA", "c:\windows\media\Desligamento do Windows.wav", 0 )
com o nome dos arquivos .wav em ingles.DLLCall("WINMM.DLL",32,"sndPlaySoundA", "c:\windows\media\Windows Shutdown.wav", 0 )
Vi que quando copiei o arquivo da pasta c:\windows\midea para a pasta do meu sistema, foi mudado o nome do arquivo para ingles.
Deve ser porque eu uso o Windows 7.
Coisas do windows.
Agora vou fazer uma função para chamar os sons que eu quero.
Valeu mesmo a ajuda de voces.
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
-
SandroBelarmino
- Usuário Nível 3

- Mensagens: 464
- Registrado em: 04 Set 2007 16:11
- Localização: Pedreira-SP
Como colocar sons para tocar?
Ressuscitando o tópico,
Existe alguma forma de fazer isso em clipper?
Se for o caso abro um tópico na seção do clipper.
Obrigado
Existe alguma forma de fazer isso em clipper?
Se for o caso abro um tópico na seção do clipper.
Obrigado
Alessandro R Belarmino
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
Clipper 5.2e - Blinker 7 - DBFNTX / DBFCDX
"Quem trabalha muito erra muito, quem trabalha pouco erra pouco, quem não trabalha não erra e quem não erra é promovido !!!!"
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Como colocar sons para tocar?
Acho que sim Sandro, se me lembro, comecei a fazer isso com Clipper, compilado com o Blinker, mas aconselho ao amigo a migrar para (x)Harbour.
Hoje está muito fácil a migração.
Hoje está muito fácil a migraçã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
