![]() |
Assistent zum CD Brennen unter Vista aufrufen
Moin zusammen,
ich habe vor einigen Jahren eine Anwendung geschrieben mit der meine Kunden diverse Dateien auf CD brennen können. Ich habe damals die Komponente TCDBurner ( ![]() Nun hat mein Kunde auf Vista umgestellt und da gibt es das Problem, daß der Brennassistent zwar startet, jedoch meldet es wären keine Dateien zum Brennen vorhanden. Definitiv sind sie das aber, ich kann auch mit dem Explorer den Brennassistenten manuell starten und dann funktioniert es problemlos. Der Komponentenautor bestätigt das auch auf der o.g. Homepage mit "5/20/2007 -- Note: The code provided here does not generally appear to work on Windows Vista. While the ICDBurn interface still exists, launching the Wizard always appears to return "There are no files to burn" despite the files appearing in the staging area. Investigation continues..." Offensichtlich gibt es noch keinen Fix für das Problem. Gibt es denn eine andere Möglichkeit wie ich den Brennassistenten aus der Anwendung heraus aufrufen kann? Mit einer Nachbildung eines eigenen "Assistenten" via IMAPI-Aufrufe ist mein Kunde nicht einverstanden, da die Anwendung in verschiedensten Sprachen läuft und es keinen Sinn macht eine multlinguale Oberfläche zu bauen, wenn es im Betriebssystem diese schon gibt. Ich würde mich freuen, wenn es eine Lösung für mein Problem gibt. Schönen Gruß Groundcontrol |
Re: Assistent zum CD Brennen unter Vista aufrufen
Mich irritiert hierbei, dass einerseits das Vista SDK keinerlei Einschränkungen von ICDBurn erwähnt, andererseits dass
![]() |
Re: Assistent zum CD Brennen unter Vista aufrufen
Zitat:
Aber danke für den Tipp schonmal. |
Re: Assistent zum CD Brennen unter Vista aufrufen
Hallo,
leider kann ich Dir auch nicht helfen... Aber ich bemerkte (leider erst durch Deine Frage), dass ich das gleiche Problem habe. Es wäre also sehr nett, solltest Du zu einer Lösung kommen, wenn Du diese dann mal kurz vorstellst... |
Re: Assistent zum CD Brennen unter Vista aufrufen
Ich hätte da noch eine Idee.
Gibt es eine Möglichkeit den Windows Explorer von Vista von Delphi aus quasi "fernzusteuern"? Ich bräuchte ja nur einen Klick im Explorer auf "Daten auf CD brennen" (oder wie auch immer der Button heißt)... |
Re: Assistent zum CD Brennen unter Vista aufrufen
Buttons fernzusteuern ist eine schlechte Idee. Sonst wirst du schon bald wieder ein Update machen müssen, wenn der Button plötzlich anders heißt o.ä.
Ich nehme an, es ist keine Option, einfach den CD-Ordner zu öffnen und in den Vordergrund zu holen, so dass der Benutzer dort selbst auf "CD brennen" klicken kann? |
Re: Assistent zum CD Brennen unter Vista aufrufen
Leider nicht, die Anwendergruppe ist damit teilweise überfordert.
Ich dachte auch weniger an eine echte Fernsteuerung, sondern eher an einen API-Befehl (dem es dann auch egal wäre, welche Caption der Button hat). Ich tummel mich aber eher selten in solch tiefen Delphi- rsp. Windowsschichten, von daher frag ich halt hier. |
Re: Assistent zum CD Brennen unter Vista aufrufen
Hi,
hab noch ein bisschen geforscht... Das Problem scheint allerdings ganz woanders zu liegen! Ich habe von TCDBurner eine oder mehrere Dateien ins "Brennverzeichnis" kopieren lassen, dann raus aus der Prozedur, rein in den Explorer und auf brennen... Keine Chance, der sagt dann auch, dass nicht vorhanden ist! Ist es möglich, das der der Explorer evtl. eine "Verzeichnisüberwachung" benutzt und somit nur das kennt, was er selbst kopiert hat? Das würde allerdungs bedeuten, dass noch woanders eine Dateiliste liegen müsste... |
Re: Assistent zum CD Brennen unter Vista aufrufen
Mahlzeit zusammen,
ich hätte da eine Lösung: ![]() Damit konnte ich meine Anwendung umschreiben. Schöne Grüße |
Re: Assistent zum CD Brennen unter Vista aufrufen
Hallo,
ist zwar etwas spät, aber besser spät als nie!! oder?? :mrgreen: Es ist ganz einfach: Man lasse in StartBurn das TBurnThread.Create(self) weg und ruft ohne Thread ExecuteCopies und iiCDBurn.Burn((Owner as TForm).Handle) auf. Sieht dann so aus:
Delphi-Quellcode:
Vielleicht hilft es noch jemand.
procedure TCDBurner.StartBurn;
begin if (not fIsBurning) and fInitialized then begin fIsBurning := True; // TBurnThread.Create(self); // ab hier bis end neu, damit es auch mit vista geht ExecuteCopies; iiCDBurn.Burn((Owner as TForm).Handle); FIsBurning := False; if Assigned(fOnBurnDone) then fOnBurnDone(0); end else if Assigned(fOnBurnDone) then fOnBurnDone(-1); end; Meine Frage wäre allerdings: Warum funktioniert das Ganze im Thread nicht??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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-2025 by Thomas Breitkreuz