Wie Screenshot von Fenster machen



  • Hallo habt ihr dafür ein paar kleine Links? Vor allen Dingen wie speichere ich das ganze gleich als JPG ab und nicht als BMP? Ich kann es mit libjpg natürlich machen, aber bietet die WinAPI dafür vielleicht schon von selbst Funktionen?

    MfG,
    MadDogg





  • Hi

    Bei der FAQ kriegte ich immer Permission Denied 301, keine Ahnung was dort los ist. Ich programmiere leider nicht im C++ hast du auch ein JPG Code für C?

    😕



  • Hi nochmal

    Ausserdem ist das Code um JPG zu Laden ich suche ja nach einer Möglichkeit den gemachten Screenshot GLEICH mit JPG zu komprimieren.

    MadDogg



  • CodeFinder wenn du langeweile hast wäre super wenn du für mich und das FAQ ne kleine Funktion basteln könntest der man ein Fenster HWND handle übergibt und eine Pfad angabe plus einen Dateinamen und die Funktion dann ein Bild des Fensters als JPG in dem Pfad abspeichert. Das wäre schon super...Das non-plus-ultra wäre noch wenn die funktion noch ein weiteren byte parameter akzeptieren würde, der die JPG Kompressions rate reguliert.

    MadDogg



  • MadDogg schrieb:

    Hi

    Bei der FAQ kriegte ich immer Permission Denied 301, keine Ahnung was dort los ist. Ich programmiere leider nicht im C++ hast du auch ein JPG Code für C?

    😕

    Hä ? ...also ich bekomme weder einen "Permission Denied 301"-Error, noch verstehe ich, dein C/C++ Problem...der Code ist doch C und selbst wenn nicht, ist das umschreiben eher ne Frage von fleiß 😃

    MadDogg schrieb:

    Hi nochmal

    Ausserdem ist das Code um JPG zu Laden ich suche ja nach einer Möglichkeit den gemachten Screenshot GLEICH mit JPG zu komprimieren.

    MadDogg

    Tja ... dann solltest du vllt mal einen Blick in die MSDN werfen...das umwandeln von BMP's in JPEG's ähnelt nämlich dem laden, speichern etc. sehr 👍



  • hm hi nochmal,

    ich krieg das voll nicht hin...probiere hier schon seit stunden rum, wär echt toll wenn du mir helfen könntest 😞



  • MadDogg schrieb:

    hm hi nochmal,

    ich krieg das voll nicht hin...probiere hier schon seit stunden rum, wär echt toll wenn du mir helfen könntest 😞

    Poste mal deinen Code.



  • BOOL SaveJPG(LPCTSTR szFile) {
            HANDLE hFile = CreateFile(szFile, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
            if(hFile == INVALID_HANDLE_VALUE) {
                return FALSE;
            }
    
            DWORD dwFileSize = GetFileSize(hFile, NULL);
            if(dwFileSize == -1) {
                return FALSE;
            }
    
            LPVOID pvData = NULL;
            HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
            if(hGlobal == NULL) {
                return FALSE;
            }
    
            pvData = GlobalLock(hGlobal);
            if(pvData == NULL) {
                return FALSE;
            }
    
            DWORD dwBytesRead = 0;
            BOOL bRead = WriteFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);
            if(bRead == FALSE) {
                return FALSE;
            }
            GlobalUnlock(hGlobal);
            CloseHandle(hFile);
    
            LPSTREAM pstm = NULL;
            // create IStream* from global memory
            HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);
    
            if(FAILED(hr) || pstm == NULL) {
                return FALSE;
            }
    
            // Create IPicture from image file
            if(pPicture) {
                pPicture->Release();
            }
            hr = ::OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID*)&pPicture);
            if(FAILED(hr) || pPicture == NULL) {
                return FALSE;
            }  
            pstm->Release();
    
            return TRUE;
        }
    


  • *push* 😞



  • LOL!!!, du willst mich echt verarschen, oder ? 😃 😃 Hätte ich mir aber n bisschen mehr Mühe gegeben...

    Das ist doch der Code außer FAQ... du kannst mir nicht erzählen, dass du daran irgwas geändert hast...ich werde bestimmt nicht deine Arbeit machen...du hast ganz bestimmt niemals (ernsthaft) versucht diesen Code zu kompilieren...und wenn doch ...und du weißt nicht, warum es nicht geht, kann ich dich nur an die Grundlagen von C bzw C++ verweisen...das ist so offensichtlich 👎

    ⚠ Wo ist bspw. die Variable pPicture deklariert ? ⚠

    richtig...hier:

    FAQ schrieb:

    [...]
    private:
        LPPICTURE pPicture;
    };
    [...]
    

    😡



  • GDI+



  • Hm Ich hab dich nett gefragt aber wenn du damit überfordert bist muss ich es wohl selbst machen....und ich dachte du wärst pro...hab ich mich wohl geirrt.



  • MadDogg schrieb:

    Hm Ich hab dich nett gefragt aber wenn du damit überfordert bist muss ich es wohl selbst machen....und ich dachte du wärst pro...hab ich mich wohl geirrt.

    🤡 👎



  • Na hör mal, MadDogg, "pro sein" (wofür eigentlich ? Oder meinst du "professionell"? 😕 ) bedeutet nicht, die Hausaufgaben ⚠ anderer Leute 👎 zu machen ! Wenn du das annahmst 😮, dann hast du dich darin gründlich geirrt. Hoffentlich hilft dir dies 💡.

    Mit freundlichen Grüßen

    WinAPI-User



  • MadDogg schrieb:

    Hm Ich hab dich nett gefragt aber wenn du damit überfordert bist muss ich es wohl selbst machen....und ich dachte du wärst pro...hab ich mich wohl geirrt.

    ⚠ 👎 lächerlich 👎 ⚠ ..."WinAPI-User" hats schon aufen Punkt gebracht 👍 , danke 😉

    Glaub wär sinnvoll wenn das hier mal geschlossen würde... 💡


Anmelden zum Antworten