Abfragen ob es LPT 2 gibt.



  • Hallo zusammen,
    ich hoffe nicht das ich hier 100 % falsch bin. Deshalb habe ich mal eine frage
    gibt es eine funktion mit der ich überprüfen kann ob es eine 2ten oder 3ten
    Lpt-Port gibt.

    Nach dem durch Forsten des Forum habe ich mir folgenden Lösung ausgedacht.

    HANDLE Lpt1Han = CreateFile("\\\\.\\LPT1",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    HANDLE Lpt2Han = CreateFile("\\\\.\\LPT2",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    HANDLE Lpt3Han = CreateFile("\\\\.\\LPT3",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    
     if ((unsigned long)Lpt1Han <= 4294967290) // FFFFFFFF = 4294967290
      {
        Memo3->Lines->Add("Lpt1 vorhanden");
        CloseHandle(Lpt1Han);
      }
    
      if ((unsigned long)Lpt2Han <= 4294967290)
      {
        Memo3->Lines->Add("Lpt2 vorhanden");
        CloseHandle(Lpt2Han);
      }
    
     if ((unsigned long)Lpt3Han <= 4294967290)
      {
        Memo3->Lines->Add("Lpt1 vorhanden");
        CloseHandle(Lpt2Han);
      }
    

    oder gibt es eine bessere Lösung ?

    mfg
    Burlington



  • Keine Ahnung, ob's einen besseren Ansatz gibt, besser schreiben kann man das aber durchaus. Zum Beispiel:

    for (int i = 1; i <= 6; i++)
      {
        String strLPT = "\\\\.\\LPT" + String(i);
        HANDLE hLPT = CreateFile(strLPT.c_str(),GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
        if (hLPT != INVALID_HANDLE_VALUE)
        {
          CloseHandle(hLPT);
          Memo1->Lines->Add("found LPT" + String(i));
        }
      }
    


  • wenns überhaupt einen Weg gibt, so bestimmt nicht in VCL...

    Ich glaube mal irgendwo gelesen zu haben, dass man sowas mit EnumPorts() machen kann...

    Ab nach WinAPI...

    [ Dieser Beitrag wurde am 10.07.2003 um 08:50 Uhr von junix editiert. ]


Anmelden zum Antworten