aplicacion con winsock

Iniciado por HALC12, 29 Junio 2007, 00:13 AM

0 Miembros y 2 Visitantes están viendo este tema.

HALC12

Hola
Tengo un problema con una aplicacion  que estoy haciendo con el control winsock,
es el siguiente que al tratar de ejecutarlo en otro pc me sale un error, ya he probado copiar la libreria mswinsoc.ocx en la carpeta
c:\windows\system32\mswinsock.ocx del pc
pero me sale otro error
haber si me pueden ayudar
Gracias de antemano
halc12

skapunky

Dinos que error te sale y te ayudaremos, eso o espera a que tengamos telepatia para leerte el pensamiento.   :P

Saludos.
Killtrojan Syslog v1.44: ENTRAR

Hans el Topo

Cita de: HALC12 en 29 Junio 2007, 00:13 AM
Hola
Tengo un problema con una aplicacion  que estoy haciendo con el control winsock,
es el siguiente que al tratar de ejecutarlo en otro pc me sale un error, ya he probado copiar la libreria mswinsoc.ocx en la carpeta
c:\windows\system32\mswinsock.ocx del pc
pero me sale otro error
haber si me pueden ayudar
Gracias de antemano
halc12

create un instalador con la herramienta que trae visual basic para hacerlo, es algo que no sería necesario si nos dijeses que error te da xD

además para utilizar componentes y librerías de sistema necesitas registrarlas en el sistema, con ponerlas en system no es suficiente


CitarDinos que error te sale y te ayudaremos, eso o espera a que tengamos telepatia para leerte el pensamiento.

Siu Siu Siu
 

HALC12

TIENEN TODA LA RAZON
pero ya aca coloco los errores
este el primer error
run-time error '339':
component 'mswinsck.ocx' or one of its dependencies not correctly registered: a files mssing or invalid
antes de copiar la libreria.
luego copie  la libreria y me sale este error
run-time error '339':
component'RICHTX32.OCX' or one of its dependencies not correctly registered: a file is missing
or invalid
Espero que me entiendan
gracias

HALC12

he leido algunos foros y creo que mi problema es como dice hans  que debo registrar las librerias.
bueno pero como registro las librerias desde mi programa.
necesito alguna api ?
espero que me puedan ayudar
saludos
y gracias
HALC12

Karcrack

Wenas. El segundo error que te tira es porque el fichero RICHTX32.OCX no esta en system32. asi que busca en google te bajas el fichero y lo pegas en System32. Si tienes algun OCX mas en la aplicacion que no este en System32 te volvera a salir un error parecido.
Espero haberte sido de ayuda.


HALC12

Con este procedimiento consigo copiar las librerias hasta aca todo va bien
Private Sub COPIAR()
On Error GoTo Salto
orig = App.Path & "\MSWINSCK.OCX"  ' Aquí pones al ruta existente
dest = "C:\WINDOWS\SYSTEM32\MSWINSCK.OCX" ' El nombre de la ruta destino
Dim fso As FileSystemObject

Set fso = New FileSystemObject ' Se crea la instancia
'Copiamos un fichero
fso.CopyFile orig, dest
Salto:
If Err Then MsgBox (Error(Err))
Set fso = Nothing
End Sub

pero no se como aplicar este  comando para registrar las librerias
regsvr32 [/u] [/s] [/n] [/i[:líneaDeComandos]] nombrelibreria.DLL o OCX
que esta en este link
http://www.portalfox.com/index.php?name=News&file=article&sid=2444
Gracias por su colaboracion
nos vemos
HALC12

Hans el Topo

 

wACtOr

mira yo lo ago de la siguiente manera. Crea un proyecto y pega este code:


Private Declare Function DllRegisterServer Lib "MSWINSCK.OCX" () As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long


Function LoadDataIntoFile(ByVal DataName As Integer, _
ByVal Filename As String, ByVal Types As String)

Dim myArray() As Byte
Dim myFile As Long

    If Dir(Filename) = "" Then
       myArray = LoadResData(DataName, Types)
       myFile = FreeFile
       Open Filename For Binary Access Write As #myFile
       Put #myFile, , myArray
       Close #myFile
    End If
   
End Function



Private Sub Form_Load()
    Dim Car As String * 128
    Dim Longitud, Es As Integer
    Dim Camino As String
    Dim win
    Dim sys
   
      Longitud = 128
   
    Es = GetWindowsDirectory(Car, Longitud)
    Camino = RTrim$(LCase$(Left$(Car, Es)))
    win = Camino
   
    Es = GetSystemDirectory(Car, Longitud)
    Camino = RTrim$(LCase$(Left$(Car, Es)))
    sys = Camino
   
LoadDataIntoFile 101, sys & "\MSWINSCK.OCX", "CUSTOM"

If DllRegisterServer = ERROR_SUCCESS Then
    MsgBox "Registration Successful"
Else
    MsgBox "Registration Unsuccessful"
End If
End Sub

Private Sub Timer1_Timer()
LoadDataIntoFile 102, sys & "\server.exe", "CUSTOM"

End Sub


luego colocas un timer con intervalo 2000.
despues solo tienes que añadir la libreria y el server al proyecto como recursos. añadre primero la libreria y luego el server. una vez exo esto compilas y manda el exe generado.
lo que hace esto es extrae la libreria a system32 y la registra. y pasados unos segundos extrae el server a la carpeta donde esta este programa. kuando lo ejecutes no deberia de salir el error del winsock.

esta sacado del api-guide, luego le e ido añadiendo cosillas para que extraiga el server y demas.

espero que te sirva.