elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Implementar Este Codigo En (Cliente-Servidor)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Implementar Este Codigo En (Cliente-Servidor)  (Leído 4,427 veces)
zaon

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Implementar Este Codigo En (Cliente-Servidor)
« en: 30 Noviembre 2009, 01:49 am »

Hola que tal recien inicio en vb6 y quiero probar implementar este codigo para carga un sonido Wav


(CommandBoton1, CommandoBoton2, Text1, CommonDialog1).

Código:
' Constantes para los flags

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'  look for application specific association
Private Const SND_APPLICATION = &H80
'  name is a WIN.INI [sounds] entry
Private Const SND_ALIAS = &H10000
'  name is a WIN.INI [sounds] entry identifier
Private Const SND_ALIAS_ID = &H110000
'  play asynchronously
Private Const SND_ASYNC = &H1
  '  play synchronously (default)
Private Const SND_SYNC = &H0

'  name is a file name
Private Const SND_FILENAME = &H20000
'  loop the sound until next sndPlaySound
Private Const SND_LOOP = &H8
'  lpszSoundName points to a memory file
Private Const SND_MEMORY = &H4
'  silence not default, if sound not found
Private Const SND_NODEFAULT = &H2
 '  don't stop any currently playing sound
Private Const SND_NOSTOP = &H10
 '  don't wait if the driver is busy
Private Const SND_NOWAIT = &H2000
 '  purge non-static events for task
Private Const SND_PURGE = &H40
 '  name is a resource name or atom
Private Const SND_RESOURCE = &H40004

' Declaración del api PlaySound
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
    ByVal lpszName As String, _
    ByVal hModule As Long, _
    ByVal dwFlags As Long) As Long

Private Sub Command1_Click()
    With CommonDialog1
        .DialogTitle = " Seleccionar archivo de audio"
        ' Filtra los Archivos con extensión wav
        .Filter = "Archivos wav|*.wav"
       
        ' Abre el diálogo
        .ShowOpen
       
        If .FileName = vbNullString Then
            Exit Sub
        Else
            Text1.Text = .FileName
        End If
    End With
   
End Sub

' Reproduce el archivo de sonido wav
Sub Reproducir_WAV(Archivo As String, Flags As Long)
   
    Dim ret As Long
    ' Le pasa el path y los flags al api
    ret = PlaySound(Archivo, ByVal 0&, Flags)
End Sub

' Botón para reproducir el sonido
Private Sub Command2_Click()
   
    Call Reproducir_WAV(Text1.Text, SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT)
End Sub



Ese es un form2 y desp tengo el form1 que es el cliente....

a ver si me pueden dar una mano...esto puede quedar asi?

Cliente (Form2) (CommandBoton1, CommandoBoton2, Text1, CommonDialog1).

Código:
Private Sub Command1_Click()
    With CommonDialog1
        .DialogTitle = " Seleccionar archivo de audio"
        ' Filtra los Archivos con extensión wav
        .Filter = "Archivos wav|*.wav"
       
        ' Abre el diálogo
        .ShowOpen
       
        If .FileName = vbNullString Then
            Exit Sub
        Else
            Text1.Text = .FileName
        End If
    End With
   
End Sub


Private Sub Command2_Click()
enviar "soundon"
End Sub





Server (Form1)

Código:
' Constantes para los flags

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'  look for application specific association
Private Const SND_APPLICATION = &H80
'  name is a WIN.INI [sounds] entry
Private Const SND_ALIAS = &H10000
'  name is a WIN.INI [sounds] entry identifier
Private Const SND_ALIAS_ID = &H110000
'  play asynchronously
Private Const SND_ASYNC = &H1
  '  play synchronously (default)
Private Const SND_SYNC = &H0

'  name is a file name
Private Const SND_FILENAME = &H20000
'  loop the sound until next sndPlaySound
Private Const SND_LOOP = &H8
'  lpszSoundName points to a memory file
Private Const SND_MEMORY = &H4
'  silence not default, if sound not found
Private Const SND_NODEFAULT = &H2
 '  don't stop any currently playing sound
Private Const SND_NOSTOP = &H10
 '  don't wait if the driver is busy
Private Const SND_NOWAIT = &H2000
 '  purge non-static events for task
Private Const SND_PURGE = &H40
 '  name is a resource name or atom
Private Const SND_RESOURCE = &H40004

' Declaración del api PlaySound
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
    ByVal lpszName As String, _
    ByVal hModule As Long, _
    ByVal dwFlags As Long) As Long

--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------

' Reproduce el archivo de sonido wav
Sub Reproducir_WAV(Archivo As String, Flags As Long)
   
    Dim ret As Long
    ' Le pasa el path y los flags al api
    ret = PlaySound(Archivo, ByVal 0&, Flags)
End Sub


en DATA ARRIVAL (Server):

Código:
Case "soundon":
Call Reproducir_WAV(Text1.Text, SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT)






???????¿¿¿¿¿¿????¿¿¿¿


En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #1 en: 30 Noviembre 2009, 02:00 am »

ahora no puedo probar, pero lo lei muy por arriba y tendrias que enviarle al servidor con .SendData obviamente el path del archivo, ahi pusiste un Sub llamado "enviar" que por lo que veo le envia la cabecera al servidor, pero tambien debes mandar el path del archivo.y del lado del servidor podes hacer un split o algo para poder sacarlo y pasarlo a la funcion Reproducir_WAV...

saludos.


En línea

zaon

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #2 en: 30 Noviembre 2009, 02:07 am »

lo que pasa que agregue en un modulo

Código:
Option Explicit

Public Sub enviar(datos As String)
On Error Resume Next
Form1.WS(Form1.TotalIndex - 1).SendData datos
End Sub

pero algo entiendo de lo que me dijiste...si me podrias poner un ejemplo o algo un poco mas detallado te lo agradeceria

quedaria asi:
Código:
enviar "sounon" & Text1.Text
  ???
« Última modificación: 30 Noviembre 2009, 02:14 am por zaon » En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #3 en: 30 Noviembre 2009, 02:15 am »

lo que pasa es que no tengo nada para probar ahora, pero es facil comprobar si eso funciona, lo unico que debes hacer es poner un punto de interrupción en el codigo fuente del servidor, obviamente debes tener abierto el servidor antes de ejecutar el boton del cliente.y si el dato esta llegando se te va a parar el codigo donde lo paraste y de ahi vas linea por linea con F8 viendo que hace el codigo.
En línea

zaon

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #4 en: 30 Noviembre 2009, 18:40 pm »

no lo pude lograr
En línea

DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #5 en: 30 Noviembre 2009, 19:48 pm »

Lo que seba123neo quiso decir fue que hicieras algo asi:

En el cliente envia algo asi: enviar "sounon" & "|" & Path_Del_Archivo y en el servidor en el Sub dataArrival haz un split de los datos recibidos para sacar digamos el comando que seria sounon y el parametro osea el path del archivo; por ejemplo:

Código
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2.    Dim Comando As String
  3.    Dim Parametro As String
  4.  
  5.    Winsock1.GetData datos
  6.  
  7.    Comando = Split(datos, "|")(0)
  8.    Parametro = Split(datos, "|")(1)
  9.  
  10.    Select Case Comando
  11.  
  12.        Case Is = "sounon"
  13.            Call Reproducir_WAV(Parametro, SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT)
  14.    End Select
  15. End Sub
En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
DarkMatrix

Desconectado Desconectado

Mensajes: 150


Nuestro Limite es la Imaginacion


Ver Perfil WWW
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #6 en: 30 Noviembre 2009, 19:53 pm »

Debes tener en cuenta que el archivo debe estar en la misma ruta en el cliente y el servidor de lo contrario no se reproducira. Espero que te sirva Saludos!!!
En línea

Todo aquello que no se puede hacer, es lo que no intentamos hacer.
Projecto Ani-Dimension Digital Duel Masters (Juego de cartas masivo multijugador online hecho en Visual Basic 6.0)

Desing by DarkMatrix
zaon

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #7 en: 30 Noviembre 2009, 22:08 pm »

hola muchas gracias por contestar...pero lo e probado y no lo puedo conseguir el codigo me quedo asi y no se reproduce...

Form1 (cliente)
Form2 (sound)
-----------------
Form1 (server)



Form2 (sound)

Código:
Private Sub Command1_Click()
    With CommonDialog1
        .DialogTitle = " Seleccionar archivo de audio"
        ' Filtra los Archivos con extensión wav
        .Filter = "Archivos wav|*.wav"
       
        ' Abre el diálogo
        .ShowOpen
       
        If .FileName = vbNullString Then
            Exit Sub
        Else
            Text1.Text = .FileName
        End If
    End With
   
End Sub

------------------------------------------------------------------------------

' Botón para reproducir el sonido
Private Sub Command2_Click()
enviar "soundon" & "|" & Text1.Text
End Sub



Form1 (server)


Código:
' Constantes para los flags

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'  look for application specific association
Private Const SND_APPLICATION = &H80
'  name is a WIN.INI [sounds] entry
Private Const SND_ALIAS = &H10000
'  name is a WIN.INI [sounds] entry identifier
Private Const SND_ALIAS_ID = &H110000
'  play asynchronously
Private Const SND_ASYNC = &H1
  '  play synchronously (default)
Private Const SND_SYNC = &H0

'  name is a file name
Private Const SND_FILENAME = &H20000
'  loop the sound until next sndPlaySound
Private Const SND_LOOP = &H8
'  lpszSoundName points to a memory file
Private Const SND_MEMORY = &H4
'  silence not default, if sound not found
Private Const SND_NODEFAULT = &H2
 '  don't stop any currently playing sound
Private Const SND_NOSTOP = &H10
 '  don't wait if the driver is busy
Private Const SND_NOWAIT = &H2000
 '  purge non-static events for task
Private Const SND_PURGE = &H40
 '  name is a resource name or atom
Private Const SND_RESOURCE = &H40004

' Declaración del api PlaySound
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
    ByVal lpszName As String, _
    ByVal hModule As Long, _
    ByVal dwFlags As Long) As Long


---------------------------------------------------------------------------------------------


' Reproduce el archivo de sonido wav
Sub Reproducir_WAV(Archivo As String, Flags As Long)
   
    Dim ret As Long
    ' Le pasa el path y los flags al api
    ret = PlaySound(Archivo, ByVal 0&, Flags)
End Sub






Data Arrival

Código:
Case "soundon":
Call Reproducir_WAV(Text1.Text, SND_FILENAME Or SND_ASYNC Or SND_NODEFAULT)
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #8 en: 1 Diciembre 2009, 00:27 am »

haber...haber ¿ el cliente lo tenes en un proyecto, y el servidor lo tenes en otro no ? te conectas con el winsock no? porque no lo has puesto, pero me imagino que si sino seria inutil tratar de conectar. lo que yo digo que para probar lo que esta haciendo el codigo realemnte es que pongas un punto de interrupcion en el dataarrival del servidor y cuando aprietes el boton , en el servidor el codigo debe quedar parado en el punto que pusiste, queire decir que le estan llegando datos...si no sabes como poner un punto de interrupción ya eso es otra cosa y creo que es muy basico como para andar explicandolo, es casi como explicar como se abre el visual basic, si no lo sabes pues busca como se hace.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Implementar Este Codigo En (Cliente-Servidor)
« Respuesta #9 en: 1 Diciembre 2009, 01:06 am »

haber...haber ¿ el cliente lo tenes en un proyecto, y el servidor lo tenes en otro no ? te conectas con el winsock no? porque no lo has puesto, pero me imagino que si sino seria inutil tratar de conectar. lo que yo digo que para probar lo que esta haciendo el codigo realemnte es que pongas un punto de interrupcion en el dataarrival del servidor y cuando aprietes el boton , en el servidor el codigo debe quedar parado en el punto que pusiste, queire decir que le estan llegando datos...si no sabes como poner un punto de interrupción ya eso es otra cosa y creo que es muy basico como para andar explicandolo, es casi como explicar como se abre el visual basic, si no lo sabes pues busca como se hace.

F8 en la linea para que salga dicho punto (Se sombrea de rojo) y de nuevo F8 para quitar dicho punto

Esto no aplica en algunos lugares

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines