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
Dinos que error te sale y te ayudaremos, eso o espera a que tengamos telepatia para leerte el pensamiento. :P
Saludos.
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
(http://blogs.ya.com/hayquejodersetu/files/carlosjesus.jpg)
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
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
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.
http://www.portalfox.com/index.php?name=News&file=article&sid=2444
sacado de
http://www.google.es/search?hl=es&q=comando+registrar+libreria+windows&btnG=Buscar&meta=
ave si buscamos algo ... xD
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
Shell "comandos y tal"
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.
Seguramente agregaste un RichTextBox a tu project [si no lo estas utilizando quita la referencia de ese OCX en tu project]... Eso es lo que te hace falta para ejecutar perfectamente tu ejecutable, busca en system32 siguiente fichero
RICHTX32.ocx
distribuye tu project con ese OCX...!
En vez de utilizar OCX, utiliza la API, es mas fiable y tiene la ventaja de que no necesitas de ficheros extras para poder ejecutarlo
Gracias por su colaboracion
me ayudado mucho
CMP Programmader lo que tu dices que utilce APIS para esto en ves de LOS OCX no sabia que se podia hacer entonces para el winsock tambien lo puedo destribuir colocando una API en ves de el ocx que se necesita me gustaria que me expliques eso
GRACIAS
mira este link...
http://members.fortunecity.com/haxprt/articulos.html
ya vi el link
bueno disculpa pero esto quiere decir que si quiero ejecutar la aplicacion en un pc que no se encuentre instalado vb6 no presenta errores
no,no presenta errores... porque para eso esta esa nebulosa de dll`s que esta en la carpeta system32. si usan las winsock apis pueden evitarse el uso del ocx correspondiente... o sea su ejecutable consiste solo en un archivo y corre en la mayoria de las maquinas windows sin tener que llevar los ocx de aqui para alla... ademas cualquiera que aprenda a manejar bien las apis en un entorno sencillo como VB6 despues le va a resultar muy facil aprender MASM32, porque se usan apis para casi todo...
voy a ver si hago un minitutorial esta noche aprovechando un modulo que hice para vb6 y que es mi orgullo ;D jajaj con que poco soy feliz no? jaja, porque las posibilidades con vb6 + apis son ilimitadas... de hecho todo lo ves en este momento esta funcionando con apis... incluso hay apis... hiperelaboradas como por ejemplo para conectarte a un servidor ftp solo pasandole como parametro el usuario y el pass, aunque tiene quedar claro que agarrarle la mano al winsock tampoco es tan secillo pero tampoco es dificil. Bueno espero tenerlo para mañana... salu2
un dia despues.....
http://foro.elhacker.net/index.php/topic,171025.0.html