Ich habe diese Funktion aus der ComDlg32.DLL gehookt, um den Download von ca. 20-70 PDF Dateien von einer HTTPS Seite automatisieren zu können. Dieser Hook erspart mir aus das Auswählen von Verzeichnis und Dateinamen.
Sollte er jedenfalls machen. Der Hook funktioniert einwandfrei und wenn ich einen Link auf der entsprechenden HTML-Seite anklicke, wird auch meine gehookte Funktion aufgerufen (steckt in einer DLL), welche testweise so aussieht:
***
function NewGetSaveFileNameW(var OpenFile: TOpenFilenameW): Bool; stdcall;
var
FLen: integer;
FExtLen: integer;
FileName: WideString;
begin
FileName := 'C:\TESTFILE.ZIP';
FLen := Length(FileName);
FExtLen := Length(ExtractFileExt(FileName));
OpenFile.nFileOffset := FLen-Length(ExtractFileName(FileName));
if FExtLen = 0 then
OpenFile.nFileExtension := 0
else
OpenFile.nFileExtension := FLen-FExtLen+1;
OpenFile.lpstrFile := PWideChar(FileName);
Result := True;
end;
***
Seltsamerweise wird der neue Dateiname aber nicht angenommen.
Wo liegt der Fehler? Quäle mich heute schon den ganzen Tag damit rum :-(
Sollte er jedenfalls machen. Der Hook funktioniert einwandfrei und wenn ich einen Link auf der entsprechenden HTML-Seite anklicke, wird auch meine gehookte Funktion aufgerufen (steckt in einer DLL), welche testweise so aussieht:
***
function NewGetSaveFileNameW(var OpenFile: TOpenFilenameW): Bool; stdcall;
var
FLen: integer;
FExtLen: integer;
FileName: WideString;
begin
FileName := 'C:\TESTFILE.ZIP';
FLen := Length(FileName);
FExtLen := Length(ExtractFileExt(FileName));
OpenFile.nFileOffset := FLen-Length(ExtractFileName(FileName));
if FExtLen = 0 then
OpenFile.nFileExtension := 0
else
OpenFile.nFileExtension := FLen-FExtLen+1;
OpenFile.lpstrFile := PWideChar(FileName);
Result := True;
end;
***
Seltsamerweise wird der neue Dateiname aber nicht angenommen.
Wo liegt der Fehler? Quäle mich heute schon den ganzen Tag damit rum :-(
Comment