EnumPorts frage



  • Servus Jungs,

    ich will ermitteln welche COM Ports an einem PC verfügbar sind. Dazu hab ich folgenden Code:

    char buffer[16384];
    DWORD needed, returned;
    int rc;
    unsigned int i;
    
    PORT_INFO_2 *pi2;
       printf("\nPorts: (buffer = NULL, length = 0) ");
       rc = EnumPorts(NULL, 2, NULL, 0, &needed, &returned);
       printf("%ld bytes   %ld\n", needed, returned);
    
       printf("\nPorts: ");
       rc = EnumPorts(NULL, 2, (LPBYTE)buffer, sizeof(buffer),
          &needed, &returned);
       printf("%ld bytes   %ld\n", needed, returned);
       pi2 = (PORT_INFO_2 *)buffer;
       if (rc) {
          for (i=0; i<returned; i++) {
             printf("\042%s\042 \042%s\042 \042%s\042 %d\n",
    	   pi2[i].pPortName,
    	   pi2[i].pMonitorName,
    	   pi2[i].pDescription,
    	   pi2[i].fPortType
    	   );
          }
       }
       else
          printf("EnumPorts() failed\n");
    

    allersing spuckt mir die funktion folgendes aus:

    Ports: (buffer = NULL, length = 0) 9128 bytes   0
    
    Ports: 936 bytes   9
    "USB001" "Dynamic Print Monitor" "Virtual printer port for USB" 0
    "COM1:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "COM2:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "COM3:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "COM4:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "FILE:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "LPT1:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "LPT2:" "Lokaler Monitor" "Lokaler Anschluss" 1
    "LPT3:" "Lokaler Monitor" "Lokaler Anschluss" 1
    

    Aber mein system verfügt auch nur über ein COM1 ! wieso zeigt er mit trozdem COM1-4 an? P.s. LPT1-3 wäre auch nich richtig

    Woran liegt das?



  • Solltest du nicht langsam den Unterschied zwischen Plattformspezifisch/WinAPI und Plattformneutral/ANSI C kennen? 🙄



  • MSDN schrieb:

    The EnumPorts function enumerates the ports that are available for printing on a specified server.

    Auch Ports, die nur aufm Mainboard vorhanden sind, erfüllen afaik, zumindest theoretisch, diese Anforderung. Es werden also nicht alle am Rechner verfügbaren Ports ermittelt, sondern alle am Mainboard verfügbaren Ports.

    Quelle:
    http://msdn.microsoft.com/en-us/library/ms535797(VS.85).aspx

    Edit:

    Tim schrieb:

    Solltest du nicht langsam den Unterschied zwischen Plattformspezifisch/WinAPI und Plattformneutral/ANSI C kennen? 🙄

    Nee nee, das bekommt der nichtmehr hin 😉



  • Tim schrieb:

    Solltest du nicht langsam den Unterschied zwischen Plattformspezifisch/WinAPI und Plattformneutral/ANSI C kennen?

    Ohh.. bitte vielmals um entschuldigung Master Guru Checker...



  • BorisDieKlinge schrieb:

    Tim schrieb:

    Solltest du nicht langsam den Unterschied zwischen Plattformspezifisch/WinAPI und Plattformneutral/ANSI C kennen?

    Ohh.. bitte vielmals um entschuldigung Master Guru Checker...

    Versuch doch einfach mal aus soetwas zu lernen, anstatt hier einen auf 10-Jährigen zu machen. Solche Sinnlos-Beiträge helfen niemanden. 🙄 Meinen Thread hast du scheinbar garnicht beachtet..



  • hardwaretechnisch ist mein mainborad nur mit einem port ausgestatt.. dein link kenn ich... ich öffnen jetz teinfahc die Port und checke so ob sie gefunden werden.

    P.S. habe kein lust mich vollsingen zu lassen.... wegen kleinigkeiten


  • Mod

    BorisDieKlinge schrieb:

    P.S. habe kein lust mich vollsingen zu lassen.... wegen kleinigkeiten

    Dann nerv nicht durch Ignoranz.



  • ... Ich denke damit ist das hier erstmal geklaert. Solltest du weitere Probleme haben, mach bitte ein neues Thema im entsprechend geeigneten Forum auf - siehe auch wmmf


Anmelden zum Antworten