Ist Word-Dokument passwort-geschützt?



  • Hallo,

    woran kann ich beim Auslesen eines Word-Dokuments erkennen, ob es passwort-geschützt ist?

    Gruß
    Leo



  • Das dürfte in nicht unerheblichem Maße davon abhängen, wie du "ausliest". Das hast du aber leider nicht verraten.



  • MFK schrieb:

    Das dürfte in nicht unerheblichem Maße davon abhängen, wie du "ausliest". Das hast du aber leider nicht verraten.

    Mein bisheriger Ansatz sieht so aus, dass ich das Dokument in einen char-Buffer einlese, um darin suchen zu können. Wenn es jetzt idealerweise ein Unterscheidungskriterium gäbe, das in passwort-geschützer und nicht passwort-geschützter Version unterschiedlich ist, wäre ich am Ziel. Aber genau das ist die Frage: Welches Kriterium könnte das sein.

    bool __fastcall TDM::sub_suche_in_Datei(AnsiString asSuchWort, AnsiString asPfadUndDatei)
    {
        bool bResult = false;
        int iFileHandle;
        int iFileLength;
        int iBytesRead;
        char *pszBuffer;
        if(FileExists(asPfadUndDatei))
        {
            try
            {
                iFileHandle = FileOpen(asPfadUndDatei, fmOpenRead);
                iFileLength = FileSeek(iFileHandle, 0, 2);
                FileSeek(iFileHandle, 0, 0);
                pszBuffer = new char[iFileLength+1];
                iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
                FileClose(iFileHandle);
                if( SearchBuf(pszBuffer, iFileLength, 0, 0, asSuchWort, TStringSearchOptions() << soDown) != NULL  ){
                    bResult = true;
                }
                delete [] pszBuffer;
            }
            catch(...)
            {
                Application->MessageBox("Eine der folgenden Dateioperationen kann nicht durchgeführt werden: Öffnen, Suchen, Lesen, Schließen.", "Dateifehler", IDOK);
            }
        }
        return bResult;
    }
    

    Gruß
    Leo



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • Leo Freitag schrieb:

    MFK schrieb:

    Das dürfte in nicht unerheblichem Maße davon abhängen, wie du "ausliest". Das hast du aber leider nicht verraten.

    Mein bisheriger Ansatz sieht so aus, dass ich das Dokument in einen char-Buffer einlese, um darin suchen zu können. Wenn es jetzt idealerweise ein Unterscheidungskriterium gäbe, das in passwort-geschützer und nicht passwort-geschützter Version unterschiedlich ist, wäre ich am Ziel. Aber genau das ist die Frage: Welches Kriterium könnte das sein.

    bool __fastcall TDM::sub_suche_in_Datei(AnsiString asSuchWort, AnsiString asPfadUndDatei)
    {
        bool bResult = false;
        int iFileHandle;
        int iFileLength;
        int iBytesRead;
        char *pszBuffer;
        if(FileExists(asPfadUndDatei))
        {
            try
            {
                iFileHandle = FileOpen(asPfadUndDatei, fmOpenRead);
                iFileLength = FileSeek(iFileHandle, 0, 2);
                FileSeek(iFileHandle, 0, 0);
                pszBuffer = new char[iFileLength+1];
                iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
                FileClose(iFileHandle);
                if( SearchBuf(pszBuffer, iFileLength, 0, 0, asSuchWort, TStringSearchOptions() << soDown) != NULL  ){
                    bResult = true;
                }
                delete [] pszBuffer;
            }
            catch(...)
            {
                Application->MessageBox("Eine der folgenden Dateioperationen kann nicht durchgeführt werden: Öffnen, Suchen, Lesen, Schließen.", "Dateifehler", IDOK);
            }
        }
        return bResult;
    }
    

    Gruß
    Leo

    Ist das dein Ernst, das du so in einer Word-Datei suchst. 😮 😮 😮
    Das es sich bei Word um kein Text-Format, sondern ein Binär-Format inkl.
    aller möglichen Sonderzeichen und Null-Bytes handelt, weisst du aber schon.
    So wie du da suchst scheint der Erfolg ja mehr oder weniger ein Glücksspiel
    zu sein, ausser es gelingt dir den Anwender davon zu überzeugen all seine
    Texte im Text-Format abzuspeichern. Dann kann er allerdings auch gleich das
    Notepad verwenden.



  • Hallo Redhead,

    was soll das werden? Ne Ohrfeige oder ne Hilfe?
    Versuch's doch mal ein bisschen konstruktiver!

    By the way: Die oben dargestellte Methode, ist ein erster Versuch herauszufinden, ob ein Passwortschutz vorliegt. Zum Auslesen des Textes benutze ich entsprechende Word-Komponenten des C-Builders.

    Gruß
    Leo


Anmelden zum Antworten