[VBS] Winsock en VBS ?

Cybertat Messages postés 25 Date d'inscription vendredi 15 juillet 2005 Statut Membre Dernière intervention 8 septembre 2007 - 5 sept. 2007 à 20:37
Cybertat Messages postés 25 Date d'inscription vendredi 15 juillet 2005 Statut Membre Dernière intervention 8 septembre 2007 - 8 sept. 2007 à 12:28
Bonjour à tous,

Je cherche à savoir s'il est possible d'utiliser Winsock avec VBScript et si oui, comment ?

En fait, j'avais vu un article qui explicait comment faire pour un client IRC (http://www.vbfrance.com/codes/WINSOCK-AVEC-VBSCRIPT-CLIENT-IRC_17061.aspx) mais hélas lorsque je le test, le script m'affiche une erreur pour la ligne "Set tcpClient = CreateObject("MSWinsock.Winsock")" tout simplement parce qu'il ne semble pas connaitre "MSWinsock.Winsock"...

Est ce que quelqu'un pourrait m'aider svp ?

Merci par avance.

5 réponses

GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
6 sept. 2007 à 13:57
Bonjour,

En effet, tu dois surement avoir une erreur 429, ceci veut dire que la librairie
Winsock n'est pas présente ou est mal installée sur ton disque dur.
Sinon, le code suivant (en FBSL, proche du VBS) fonctionnerait :)



#Option Strict
#AppType CONSOLE

// -----------------------------
// Test
// -----------------------------
Dim w As New WinSock
Print "HostName : ", w.GetHostName()
Print "LocalIP  : ", w.GetIP()
Delete w
Pause

// -----------------------------
// Class WINSOCK
// -----------------------------
Class WinSock
  Private:
    tcpClient
    Method Initialize()
        Set tcpClient = CreateObject("MSWinsock.Winsock")
    End Method
    Method Terminate()
        If tcpClient Then ReleaseObject(tcpClient)
    End Method

  Public:
    Method GetHostName()
        If tcpClient Then Return GetValue( "%s", tcpClient, "LocalHostName" )
    End Method
    Method GetIP()
        If tcpClient Then Return GetValue( "%s", tcpClient, "LocalIP" )
    End Method
End Class

Gerome GUILLEMIN (auteur du langage FBSL)
Web : http://www.fbsl.net
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
6 sept. 2007 à 17:19
 Bonjour à tous

Un lien, de ce forum, trouvé avec recherche "vbs winsock".
Evidemment, il y a d'autres exemples . merci ami google.
http://www.vbfrance.com/codes/WINSOCK-AVEC-VBSCRIPT-CLIENT-IRC_17061.aspx

jean-marc
0
Cybertat Messages postés 25 Date d'inscription vendredi 15 juillet 2005 Statut Membre Dernière intervention 8 septembre 2007
6 sept. 2007 à 19:12
Bonjour à tous,

Je développe dans le cadre de mon travail et je n'ai la possibilité d'utiliser que VBS. Mon script devant tourné sur des serveurs, je ne peut rien installé qui ne soit vital. Donc le fbls ne pourra me sortir d'affaire.

Sinon pour jean-marc, le lien que tu as indiqué est celui dont je me suis inspiré pour faire mon code. C'est le même que j'ai cité dans mon message de base...

Mais si effectivement la librairie winsock n'est pas présente ou mal installé, n'existe t-il pas une manipulation pour la redéclarer proprement ?

Merci de votre aide.
0
GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
7 sept. 2007 à 15:41
''>> existe t-il une manipulation pour la redéclarer proprement ?''

Sisi, tu cliques sur le bouton Démarrer, puis Executer et tapes ceci dans l'invite de commandes :
REGSRV32.EXE MSWINSCK.OCX

Cette commande va redeclarer cet objet COM en base de Registre.

--=:: -----------------------------------::=--
      Gérôme GUILLEMIN, ingénieur système et auteur du langage FBSL
--=:: -----------------------------------::=--
<hr size="2" width="100%" />[h%3C/body ]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cybertat Messages postés 25 Date d'inscription vendredi 15 juillet 2005 Statut Membre Dernière intervention 8 septembre 2007
8 sept. 2007 à 12:28
Ah, ah, presque ! Je viens de redéclarer l'objet winsock dans ma base de registre comme tu me l'as dis et la commande est bien passé mais maintenant j'ai un autre message d'erreur. Il me dit que "La classe n'a pas de licence d'utilisation" (erreur 80040112). J'ai essayé de trouver sur google le pourquoi du comment de ce message mais je n'ai rien trouvé de concret.

Est-ce que quelqu'un saurais le pourquoi du comment et surtout, comment y rémédier ?

Sinon, juste pour ma culture personnel, winsock est un composant de base de windows non ? Comment se fait-il qu'il ne soit pas déclaré par défaut ? (J'ai vérifié sur plusieurs postes et OS.) Est-ce pour des raisons de sécurité ? Si oui, cela ne consitue t-il pas une faille de reforcer sa déclaration ? La réponse à ces questions n'est bien évidément pas obligé, c'est juste si quelqu'un sait !

Merci pour votre patiente et vos efforts ! ^^
0
Rejoignez-nous