![]() |
Re: Wie DVD Transfer mit ShrinkTo5.DLL?
Zitat:
|
Re: Wie DVD Transfer mit ShrinkTo5.DLL?
Habe es jetzt mit StrPCopy versucht. Es hat aber nichts genutzt.
So bekomme ich einen Ordner VIDEO_TS und die VIDEO_TS.VOB wird angelegt:
Delphi-Quellcode:
Und so bekomme ich nur den Ordner:
function TShrinkTo5.GetExecute: Integer;
var StopFlag : String; begin StopFlag := '0'; Result := FNTransferPath(PChar(fTransferPath), PChar(stopFlag)); end;
Delphi-Quellcode:
:wall:
function TShrinkTo5.GetExecute: Integer;
type TThreadParams = record TransferPath : String; end; PThreadParams = ^TThreadParams; var ThreadParams : PThreadParams; hThread : THandle; ThreadID : Cardinal; lResult : Cardinal; function Thread(p: PThreadParams): Cardinal; var PTransferPath : PAnsiChar; PStopFlag : PAnsiChar; lResult : Integer; begin PTransferPath := PAnsiChar(PThreadParams(p)^.TransferPath); PStopFlag := PAnsiChar('0'); lResult := FNTransferPath(PTransferPath, PStopFlag); FreeMem(p, sizeof(TThreadParams)); if lResult < 0 then Result := $0FFFFFFF - lResult else Result := lResult; end; begin Result := 0; hThread := 0; if DirectoryExists(fTransferPath) then try { * Den Arbeitsthread erstellen } GetMem(ThreadParams, sizeof(TThreadParams)); ThreadParams.TransferPath := fTransferPath; hThread := BeginThread(nil, 0, @Thread, ThreadParams, 0, ThreadID); if hThread <> INVALID_HANDLE_VALUE then begin while WaitForSingleObject(hThread, 300) = WAIT_TIMEOUT do Application.ProcessMessages; { * return codes for TransferPath * >0 success - number of MegaBytes written * 0 user aborted (stopFlag == 1) * -2 if stream is scrambled and either descrambling failed or is disabled * -5 source was not opened with "Open" * -6 cannot authorize driveend; } end; finally GetExitCodeThread(hThread, lResult); end; if lResult > $0FFFfff0 then Result := lResult - $0FFFFFFF else Result := lResult;} end; |
Re: Wie DVD Transfer mit ShrinkTo5.DLL?
In beiden Fällen wird die VIDEO_TS.IFO gelesen und der Fehler geschieht beim Lesen der VIDEO_TS.VOB. Die Original-GUI verarbeitet die DVD.
Bei der Original-GUI werden keine Einsprungpunkte der Exports, welche mein Projekt verwendet, angesprungen. Ich weiß allerdings nicht, ob dies auf die unterschiedlichen Programmiersprachen zurück zu führen ist. Beim Start der Original-GUI wird ein TransferAlert gesetzt und ein paar Voreinstellungen vorgenommen. Beim Öffnen passiert bei beiden im Prinzip dasselbe. Bevor der Transfer gestartet wird, werden noch einmal ein paar Einstellungen vorgenommen, welche nicht ins Gewicht fallen dürften. Nach Start des Transfer werden die Pfad- und Dateinamen mehrfach hin- und hergeschubst. Vielleicht liegt es an dem TransferAlert!? Damit wird auch eine Änderung der zu verarbeitenden Datei gemeldet. |
Re: Wie DVD Transfer mit ShrinkTo5.DLL?
Beim Erstellen der Original-GUI werden noch die Proceduren
Code:
aufgerufen. Das sind zwei Klassen. Die Funktionen, welche genutzt werden, gehören zur Klasse Transfer.
1000CEF0 - ??0Transfer@@QAE@XZ
1000E4B0 - ??0TransferAlert@@Q |
Re: Wie DVD Transfer mit ShrinkTo5.DLL?
Ich frage mich, ob es richtig war, nur die C Exports zu nehmen:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 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