Ouverture de port COM supérieur à Com16 avec MSComm32

Résolu
jul1409 Messages postés 7 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 3 juin 2010 - 20 févr. 2008 à 10:15
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 20 févr. 2008 à 17:55
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 févr. 2008 à 10:26
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 févr. 2008 à 13:29
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
3
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
20 févr. 2008 à 14:39
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
3
jul1409 Messages postés 7 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 3 juin 2010
20 févr. 2008 à 15:29
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 ?
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 févr. 2008 à 17:55
" ...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
0
Rejoignez-nous