AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Abfragen ob Excel Datei einen Passwortschutz hat

Abfragen ob Excel Datei einen Passwortschutz hat

Ein Thema von ferby · begonnen am 6. Jul 2012 · letzter Beitrag vom 6. Jul 2012
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Abfragen ob Excel Datei einen Passwortschutz hat

  Alt 6. Jul 2012, 19:54
Hallo,

ich habe die Aufgabe bei ca. 5000 Excels automatisch bestimmte Zeilen zu ändern, wenn die Excel Datei NICHT geschützt ist (ich meine die Passworteingabe gleich beim öffnen des Excels).

Jetzt habe ich herausgefunden, dass einige der hundert Parameter bei der Funktion excel.Workbooks.Open für das Passwort ist.

excel.Workbooks.Open("meinedatei.xls", EmptyParam, False, EmptyParam, "Passwort",
"SchreibPasswort", EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);

Aber leider hilft mir das auch nicht weiter, da ich das Passwort ja gar nicht kenne...
Wenn ich bei "Passwort" einen EmptyParam übergebe, dann öffnet sich von Excel ein Fenster mit der Passworteingabe (--> manueles Eingreifen benötigt)

Ich will Excels mit Passwort Schutz einfach ignorieren... Aber wie finde ich heraus ob es geschützt ist??? Es müsste vor
excel.Workbooks.Open passieren, da hier schon das Popup von Excel aufgeht... Aber davor kann ich auf Excel überhaupt nicht zugreifen.

Weiß jemand Rat?

lg,
Ferby
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Abfragen ob Excel Datei einen Passwortschutz hat

  Alt 6. Jul 2012, 20:58
Hallo,

ich habe fürs erste eine Lösung als Holzhammermethode gefunden.
Wenn als Passwort ein Leerstring übergeben wird, funktioniert es wenn das Excel keinen PW Schutz hat und ansonsten bekomme ich eine Exception. So kann ich herausfinden ob ein Excel einen Passwortschutz hat ohne das der User manuelle eingaben machen muss. Für besser Vorschläge bin ich offen.
Delphi-Quellcode:
      try
        Excel.Workbooks.Open(ListBox_XLS_Errors.Items[i], emptyParam, emptyParam, emptyParam,
        '', emptyParam, emptyParam, emptyParam, emptyParam, emptyParam,
        emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, _lcid);
      except
        on E : Exception do
        if Pos(E.Message, 'Das eingegebene Kennwort ist ungültig.') = 0 then
        begin
          showmessage('Hat PW schutz!');
          Continue;
        end
        else
        begin
          ShowMessage('Anderer Fehler: '+E.Message);
          Halt;
        end;
      end;
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Abfragen ob Excel Datei einen Passwortschutz hat

  Alt 6. Jul 2012, 21:48
Hier noch ein kleiner Trick zur besseren Lesbarkeit.
Mit einer Konstanten wird die Absicht gleich viel klarer:
Delphi-Quellcode:
const
  EMPTY_PASSWORD = '';
begin
try
  Excel.Workbooks.Open(ListBox_XLS_Errors.Items[i], emptyParam, emptyParam, emptyParam,
        EMPTY_PASSWORD, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam,
        emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, _lcid);
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz