![]() |
Abfragen ob Excel Datei einen Passwortschutz hat
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 |
AW: Abfragen ob Excel Datei einen Passwortschutz hat
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; |
AW: Abfragen ob Excel Datei einen Passwortschutz hat
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); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz