Ola pessoal estou com um grande pequeno problema no VB6. Estou tentando utilizar o componente Winsock e o programa apresenta uma janela de erro e se fecha. Pelo que eu saiba todos os componentes ocx estao na pasta system32, e tentei procuralo mais nao o encontrei. Sera que e isto que eu deveria fazer ou tem outra opcao. Ajuden-me
Em princípio tens de registar o componente WinSock on sistema. Eu costumo aconselhar uma alternativa ao WinSock, que tem a vantagem de não ser preciso utilizares o OCX. Tendo o OCX, podes precisar de o registar. O CSocketMaster não precisa de registo. Vê aqui: http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=52072&lngWId=1 Cumps [[[[[]]]]]] angelofwisdom
Já trabalhei muitas vezes com o Winsock, e é necessário adiciona-lo ao projecto, vais ao adicionar componentes e tem lá klk coisa parecida com microsoft.winsock, e depois vai-te aparecer uma imagem,(2 pc's) e é só arrasta-la(mesma forma k um timer) para o form onde vais utilizar o winsock Asa_delta
O meu grande problema e este. Quando eu tendo adicionar este componente aparece uma mesnsagem de erro, Qualquer coisa com objecto nao registrado.
Sim, era o que eu estava a dizer. Geralmente, os componentes OCX têm de ser "registados" (inseridos no registry de modo a o Windows saber que existem). Porquê, sinceramente, não sei. Não costumo trabalhar com eles. Deixo esta parte para alguém mais experiente do que eu Experimenta uma coisa: tens o WinSock.OCX, certo? O ficheiro não está em falta, pois não? Então vai à pasta desse ficheiro. Se não estiver em C:\Windows\System (Windows pode ser WINNT, WPX, o que quiseres....é a pasta do windows), copia-o para lá. Depois, vai à linha de comandos (ou Menu Iniciar -> Executar)e escreve regsvr32 C:\Windows\System\WinSock.OCX (corrige a pasta e o nome do ficheiro, caso estes estejam errados no meu exemplo). Desta forma deves ficar com o winsock registado, e o componente, pronto a usar nos programas.
Acabei d fazer o que tu me disseste mais e correu tudo bem mas quando eu tento adicionar o objecto Winsock o VB automaticamente fecha dizendo que encontrou um erro. Pra finalizar de uma vez com este problema sera que devo instalar novamente o VB6 ?
Antes de o fazeres, diz-me só uma coisa: tens privilégios administrativos no teu computador? Comigo isso também acontecia, mas era só quando eu entrava com uma conta limitada (a minha).
A minha conta é limitado sim mas eu instalei o VB depois de ela estar limitada e não antes. Mas caso for este o problema o que devo fazer sabe, é que eu preciso imenso de usar este componente.
Experimenta executar o próprio VB na conta de administrador e fazer o projecto lá. Como eu tinha dito acima, se tens tamanha necessidade de utilizar sockets, não és obrigado e utilizar o componente WinSock. Podes acrescentar ao teu projecto uma classe e um módulo (o CSocketMaster), e depois com duas linhas de código crias novos sockets. Se precisares de uma explicação pormenorizada, avisa . O meu conselho vai mesmo para o CSocketMaster. Definitivamente. Repito, se quiseres mesmo o componente WinSock (o OCX), liga o administrador, e executa LÁ o VB. Cumps [[[[[[]]]]]]] angelofwisdom
Infelizmente nao o consegui porque o "meu" so esta neste estado devido a demasia de programas que eu tenho instalado e por este facto estou agora limitado. E a explicacao ?
A única explicação que tenho para dar é a de como colocar o CSocketMaster a trabalhar... Sabes usar o WinSock, certo? 1) Acrescenta a classe e o módulo do CSocketMaster ao projecto. 2) Na parte das declarações (isto é, fora de todas as subs/functions), escreve Código: Private WithEvents sckProtocolo As CSocketMaster (sckProtocolo foi um nome dado por mim. Escreves aí o nome de uma variável qualquer à tua escolha ) Private/Public, a diferença é se está a nível de módulo ou de form. 3) No Form_Load, escreve Código: Set sckProtocolo = New CSocketMaster E tens agora o objecto sckProtocolo a funcionar como se o tivesses colocado no form. A única diferença (que eu tenha notado) entre o CSocketMaster e o componente WinSock é o nome do métodoe evento Close, que no CSocketMaster se chama CloseSck. Cumps [[[[[[]]]]]] angelofwisdom
Isto quer dizer que o CSocketMaster possui as mesmas propiedades que o Wsock. Entao eu so devo colocalo e pum!! ja esta pronto para trabalhar.
Em princípio sim. Deves poder utilizá-lo tal e qual como utilizas o WinSock (excepto o Close -> CloseSck, como já disse). Quando tiveres feito isso, avisa
Olha estou com um novo problema quanto ao adicionar a classe e o modulo. Estou a seguir os seguintes passos: 1- Project 2- Add Class Module depois disto tento rodar o programa e vem uma mensagem de erro que diz mais ou menos isto: Used definid type ou qualquer coisa do genero. Sera que estou errando em algum procedimento.