Firmennamen von Grafikkarte und Soundkarte erfahren



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Soundkarte:

    #include <windows.h> 
    #include <tchar.h> 
    #include <cstdio> 
    
    int _tmain(void) 
    { 
        WAVEOUTCAPS woc; 
        DWORD dwNumDevs; 
    
        for(dwNumDevs = waveOutGetNumDevs(); dwNumDevs; --dwNumDevs) 
        { 
            waveOutGetDevCaps(dwNumDevs - 1, &woc, sizeof(woc)); 
            _tprintf(TEXT("%s\n"), woc.szPname); 
        }
        return(0); 
    }
    

    Für Grafikkarten hab ich zuhause auch 'ne Funktion parat, komme da im Moment aber nicht dran... Wenn Du bis heute Abend Geduld hast...



  • danke Hepi,
    Aber Die Code , die oben ist, funktiniert es nicht !!!
    Wie kann ich Soundkartenname in einem Label oder in Edit zeigen??

    wenn du auch für Grafikkarte hilfst , freue ich mich dafür.



  • Wieso sollte das nicht funktionieren?

    Anstatt mit _tprintf auf dem Screen auszugeben speicherst Du woc.szPname eben in einem char-array und fügst dann alle Strings zu deinem Editfeld hinzu...

    So jedenfalls fragt man das System nach allen installierten Soundkarten ab.
    Wie Du das nun weiterverarbeitest, ist Dir überlassen...

    Grafikkarten:

    // char-array für maximal 10 Grafikkarten (sollte wohl genügen)
    char AllGrakas[10][128];
    
    BOOL GetAllGraficsCards(void)
    {
        // gibt FALSE zurück, wenn die Funktion fehlschlägt,
        // ansonsten TRUE
    	BOOL bSuccess = FALSE;
    	DISPLAY_DEVICE DisplayDevice = {NULL};
    	int iDevNum = 0;
    	DisplayDevice.cb = sizeof(DISPLAY_DEVICE);
    	DisplayDevice.StateFlags = DISPLAY_DEVICE_ATTACHED_TO_DESKTOP;
    
        while (EnumDisplayDevices(NULL, iDevNum, &DisplayDevice, NULL))
        {
            bSuccess = TRUE;
    		lstrcpy(AllGrakas[iDevNum], DisplayDevice.DeviceString);
            iDevNum++;        
        }	
    	return bSuccess;
    }
    


  • Ich möchte auf Knopfdruck in Edit angezeigt bekommen.
    Soundkarte in Edit1
    Grafikkarte in Edit2
    wie kann ich es machen??



  • rofl

    helft ihm bitte nicht.



  • ???



  • Bitte lern erstmal die Grundlagen. Dann brauchst du nicht so dämliche Fragen zu stellen.



  • Hey du,
    Ich bin kein Profi aber möchte trotzdem irgendwas zu lernen.
    Und was du machst , verstehe ich nicht.
    bist du als Profi geboren oder was?
    Du brauchst nicht zu antworten.
    Mindestens frage ich hier die Leute , die helfen wollen.
    du musst dich zuerst registrieren dann reden !!!



  • Naja, so ganz unrecht hat er nicht, auch wenn er es netter hätte schreiben können:
    Eine komplette Windows-Anwendung wird Dir hier niemand programmieren.

    Lernen tust Du dabei auch nichts, wenn Du nicht weißt, was derjenige Programmierer da tut.

    WinAPI-Tutorials helfen Dir da sicherlich mehr als fertiger Code, durch den Du eh nicht durchsteigst.

    Lerne erstmal die Grundlagen, dann sehen wir weiter...



  • Ich habe es geschaft.
    Mit 2 Buttons und 1 Memo.

    #include <mmsystem.h>

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    WAVEOUTCAPS woc;
    DWORD dwNumDevs; 
    
    for(dwNumDevs = waveOutGetNumDevs(); dwNumDevs; --dwNumDevs)
    { 
    waveOutGetDevCaps(dwNumDevs - 1, &woc, sizeof(woc));
    Memo1->Lines->Clear();
    Memo1->Lines->Add( woc.szPname); 
    }        
    }
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    char AllGrakas[10][128];
    BOOL bSuccess = FALSE; 
    DISPLAY_DEVICE DisplayDevice = {NULL}; 
    int iDevNum = 0;
    Memo1->Lines->Clear();
    DisplayDevice.cb = sizeof(DISPLAY_DEVICE); 
    DisplayDevice.StateFlags = DISPLAY_DEVICE_ATTACHED_TO_DESKTOP; 
    
    while (EnumDisplayDevices(NULL, iDevNum, &DisplayDevice, NULL)) 
    {
    bSuccess = TRUE;
    lstrcpy(AllGrakas[iDevNum], DisplayDevice.DeviceString);
    Memo1->Lines->Add(AllGrakas[iDevNum]);
    iDevNum++; 
    }        
    }
    

Anmelden zum Antworten