Ouverture de port COM supérieur à Com16 avec MSComm32

Résolu
Messages postés
7
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
3 juin 2010
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
Bonjour,

après 2 jours de galère, j'ai enfin trouvé comment ouvrir le COM17 (et plus) avec MSComm32.ocx.
1 - faire une copie au préalable de MSComm32.ocx
2 - ouvrir MSComm32.ocx avec un editeur Hexa
3 - rechercher "3D 10 00" (c'est la 2ème occurence, s'il y en a 2)
4 - remplacer par "3D FF 00"
5 - enregistrer les modif

et hop, l'affaire est dans le sac
Jul1409

5 réponses

Messages postés
14853
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
29 janvier 2022
160
Bonjour

Faire plus bourrin, c'est vraiment difficile  , mais si ça marche ... pourquoi pas (et chapeau pour l'astuce), personnellement j'aurais conseiller de refaire une gestion du port avec les APIs.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
On passera sur le caractère illégal d'une telle méthode, mais il faudra tout de même bien réfléchir lors d'un déploiement, car il faudra obligatoirement déployer cet ocx. Hors si sur la machine cible, se trouve déjà cet ocx, mais en version plus récente, il y a de forte chance qu'il ne soit pas remplacer. Et donc le code l'employant ne fonctionnera plus.

Chapeau pour l'astuce, mais je pense qu'il convient mieux de passer par des méthodes plus "propre".

Comment as-tu réussi à trouver une telle chose, tu t'es amuser à décompiler l'ocx ????

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
5
salut,
Je suis du même avis... utiliser les API aurait été plus propre que de modifier le composant MSCOMM...

mais bon, si cela marche, pourquoi pas... a voir pour le déploiement et la maintenance... surtout dans des environnements style TSE ou le composant MSCOMM n'est vraiment, vraiment pas performant...

@+

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
Messages postés
7
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
3 juin 2010

re Bonjour à tous,
merci pour vos réponses.

casy:
Il est vrai que je ne l'ai pas précisé mais cette "astuce" n'est pas de moi. j'ai trouvé ça ici : http://www.codenewsgroups.net/group/microsoft.public.vb.general.discussion/topic10158.aspx
Quant au caratère illégal, en effet, je me suis posé la question avant de publier cet info ... mais bon ...
Une solution pour déployer est de refaire un OCX avec l'OCX MSComm32 en question et d'implémenté juste les fonctions qui sont utiles. Mais je pense que ça aussi c'est pas très légal.

pneau:
Effectivement, j'ai bien pensé aux API, mais là c'est du boulot ...

Merci à tous pour vos remarques.
Jul1409

PS : la VRAI question est : - " Pourquoi Monsieur ..crosoft n'a pas encore mis un MSComm32 pouvant accéder à tous les ports séries ?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
" ...PS : la VRAI question est : - " Pourquoi Monsieur ..crosoft n'a pas
encore mis un MSComm32 pouvant accéder à tous les ports séries ? ..."

Tout simplement parce que MSCOMM32 et les ocx en général sont plus destinés à fonctionner avec VB6. Pour rappel VB6 date de 97 et à l'époque, très rare étaient les machines qui avaient à gérer plus 4 port comm (avec 16 on avait de la marge). Et à l'époque c'était bien suffisant. De plus pour des ports supplémentaires, il fallait rajouter des cartes d'extentions, qui avec leurs drivers, rajoutaient leur propre gestion de ports par des dll proprio.

MSCOMM32 date de 98 et n'a jamais été mis à jour depuis. Pourquoi, parce que dans un premier temps, le besoin n'existait pas, parce que avec les API il est possible de s'affranchir de cette limite.

Parce que dans un second temps, lorsque le besoin s'est fait sentir (Bluetooth, WIFI, ...) .Net était déjà là avec ses 255 ports possibles, VB6 déjà déclaré obsolète par M$, donc abandonné. Sachant que normalement avec .Net le principe des ocx est purement abandonné.

Ces raisons font que la mise à jour de MSCOMM32 ne s'est jamais présenter comme une nécessité.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php