begin process at 2012 05 28 15:28:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Changement de Port COM


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Changement de Port COM

lundi 30 mai 2005 à 11:39:41 | Changement de Port COM

billybob13

Dans mon programme, je veux changer de port COM (j'utilse mscomm32). Je suppose que plus tard j'aurai deux ports COm. Actuellement j'en ai qu'un.
Mon probleme :
Comment faire pour savoir si le port 2 existe?
Est ce que je traite avec les exceptions, et comment ? ou je peux faire autrement?
lundi 30 mai 2005 à 14:44:29 | Re : Changement de Port COM

ymca2003

//***************************************************************************************
// OpenCommDevice : tente d'ouvrir un port afin de récupérer son handle.
// entrée : lpszName : nom du port à ouvrir.
// retour : handle du port s'il a pu être ouvert, NULL sinon.
//***************************************************************************************
HANDLE OpenCommDevice(LPCTSTR lpszName)
{
 // tentative d'ouverture (si échec, on tente l'accès direct en insérant "\\.\" au début du nom)
 HANDLE hComm = CreateFile(lpszName, GENERIC_READ|GENERIC_WRITE, 0, NULL,
   OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL);
 if(hComm == INVALID_HANDLE_VALUE && GetLastError() == ERROR_FILE_NOT_FOUND)
 {
  UINT nLength = strlen(lpszName);
  LPTSTR lpszAltName = new char[nLength+5];
  strcpy(lpszAltName, nLength+5, _T("\\\\.\\"));
  strcpy(lpszAltName+4, nLength+1, lpszName);
  hComm = CreateFile(lpszAltName, GENERIC_READ|GENERIC_WRITE, 0, NULL,
   OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL);
  delete[] lpszAltName;
 }
 return hComm;
}

//***************************************************************************************
// HasHardware : vérifie si un port est présent sur l'ordinateur.
// entrée : lpszName : nom du port à vérifier.
// retour : vrai si le port existe, faux sinon.
//***************************************************************************************
BOOL HasHardware(LPCTSTR lpszName)
{
 // tentative d'ouverture
 HANDLE hComm = OpenCommDevice(lpszName);
 if(hComm == INVALID_HANDLE_VALUE && GetLastError() == ERROR_FILE_NOT_FOUND)
  return FALSE;
 else
 {
  // on ferme le port si on a réussi à l'ouvrir
  if(hComm != INVALID_HANDLE_VALUE)
   CloseHandle(hComm);
  return TRUE;
 }
}
lundi 30 mai 2005 à 17:09:16 | Re : Changement de Port COM

billybob13

Tu as mis quoi en librairie; STp
Merci de ta réponse

lundi 30 mai 2005 à 18:18:17 | Re : Changement de Port COM

ymca2003

Uniquement l'API windows :
#include <windows.h>
mardi 31 mai 2005 à 08:42:25 | Re : Changement de Port COM

billybob13

'strcpy' : la fonction ne prend pas 3 arguments
mardi 31 mai 2005 à 09:01:59 | Re : Changement de Port COM

ymca2003

Désolé j'ai fait un copier collé d'une source dans laquelle j'utilisé une version "safe" de strcpy qui prend en plus la taille de la chaîne destination. Il suffir de virer la longueur en param 2.


Cette discussion est classée dans : port, changement


Répondre à ce message

Sujets en rapport avec ce message

PILOTAGE DU PORT IMPRIMANTE [ par bolix ] SALUT EST CE QUE L'ON PEUT ME DIRE SI ET COMMENT JE PEUT FAIRE POUR PILOTER UN PORT IMPRIMANTE NON PAS pour imprimer quelque chose mais pour envoyer controler les port d'un PC [ par naney ] Comment je peu faire pour controler un port d'un pc (ex: le port de la sourir ou le prot de l'ilmprimente c'est pour montage electronique controler pa rogrammation du port serie avec visual C++ 5.0 [ par tom ] J'essaye de creer un programme pour lire le port serie: Comment acceder aux ports serie a l'aide de visual C++? Quelles sont les classes et methodes Access en lecture et en écriture d'un port. [ par Philipin_Alain ] Est il encore possible avec C++ sous wintNT d'accéder à un registre quelconque. Je pense que les instructions "inport" et "outport" ne fonctionne pas port usb [ par agouti ] Comment peut on faire pour lire avec un lecteur de carte sur port usb merci d'avance port série C++ [ par kinder ] J'arrive à relier des appareils "compliqués" (avec parité, bauds, bits stop, ascii, ...), mais je merde sur une espèce de grosse souris : un bouton un Port série avec VISUAL C++ [ par Foof ] On a du mal a réceptionner les octets sur le port sérieOn a le programme mais il nous manque les définitions deUnion REGSSi qq a un exemple de prog qu Changement de sélection dans une ListCtrl [ par nunette ] Sous Visual C++, comment savoir que la sélection a changé dans une ListControl, je ne trouve aucun événement pour cela. Comment récupérer l'item qui a detection automatique de peripherique [ par bidule ] J'ai un lecteur de carte puce connecté au port COM de mon pc.Comment faire pour que mon programme C (ou C++) detecte automatiquement l'insertion de l detection automatique de peripherique [ par bidule ] J'ai un lecteur de carte puce connecté au port COM de mon pc.Comment faire pour que mon programme C (ou C++) detecte automatiquement l'insertion de l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales