Suchergebnisse

Suchergebnisse 1-26 von insgesamt 26.

  • Benutzer-Avatarbild

    Hi CDs/DVDs brennen (Audio/Daten usw) oder ISOs davon erstellen/brennen usw usw, geht über die IMAPI-COM-Interfaces. -> docs.microsoft.com/en-us/windo…32/imapi/imapi-interfaces Für Audio-CDs brennen wirst Du evtl. noch die Media Foundation COM-Interfaces benötigen da die zu brennenden Audiodateien vorher zu Wave, PCM, 44,1kHz, 16bit, 2Ch (Daten ohne WaveHeader) konvertiert werden müssen. Dann müssten evtl noch PadBytes an die Wave angehangen werden da die Wave durch einen bestimmten Wert, ohne R…

  • Benutzer-Avatarbild

    @kafffee In der MS Doku ist so gut wie alles für C++ beschrieben. Das ist aber im Grunde egal. Ok, ein wenig C++ lesen können ist schon hilfreich. Ansonsten ist die Zielsprache egal solange diese mit COM-Interfaces umgehen kann. Mit der Bass.dll kenne ich mich nicht aus. Ich hab seiner Zeit die COM-Interfaces der Media Foundation für das konvertieren genutzt und die Wave RAW-Daten direkt in ein IStream geschrieben.

  • Benutzer-Avatarbild

    Hi Hab mal das Inet ein wenig durchsucht. Der WMP scheint doch eine Schnittstelle zum brennen von Audio-CDs zu haben -> docs.microsoft.com/en-us/windows/win32/wmp/burning-a-cd Brennt halt nur Audio-CDs von einer Playlist. Für mal eben fix eine Daten-CD brennen, kann man auch das Interface ICDBurn verwenden -> docs.microsoft.com/en-us/windo…bjidl/nn-shobjidl-icdburn

  • Benutzer-Avatarbild

    @kafffee Ich kenne mich mit NuGet-Paketen nicht aus. Hab noch nie eins verwendet. Ich bin ja eher für selbst programmieren anstatt Fremdpakete zu verwenden. Von daher würde ich direkt die COM-Interfaces verwenden. Ist zwar mehr Aufwand, aber am Ende weiß man wonach man suchen muss falls es Fehler gibt.

  • Benutzer-Avatarbild

    Zitat von kafffee: „früher mal tatsächlich so eine DB gab, der Betrieb aber eingestellt wurde. Weiss da jemand vielleicht was drüber?“ Jupp FreeDB. Der Betrieb ist glaub letztes, vorletztes?, Jahr eingestellt worden. Es gibt aber andere alternativen wie zB. musicbrainz.org Hier wird die Schnittstelle dazu beschrieben: musicbrainz.org/doc/MusicBrainz_API

  • Benutzer-Avatarbild

    Hi Hab mal überlegt was so mit dem WMP geht. Herausgekommen ist folgendes. AxWmp ist das WMP-Control auf der Form. Button1 listet nur die verfügbaren Brenner? auf. Button2 ist eher Pseudocode weil ich den WMP nicht nutze und daher dort auch keine Playlisten habe. Hinzukommt das ich schon seit Ewigkeiten keine CD-Rohlinge mehr habe und daher nicht testen kann. Den Rest müsst ihr Euch zusammen suchen. Ist ja alles unter docs.microsoft.com/en-us/windows/win32/wmp/burning-a-cd beschrieben. (Versteck…

  • Benutzer-Avatarbild

    Hi Zitat von kafffee: „Also dein Code scheint zu funktionieren. Bloss der tatsächliche Brennvorgang startet nicht“ Ich kann es nicht testen, hab keine CD-Rohlinge mehr. Was ich hier im Code ja nicht komplett zu stehen hatte, war eine Playlist zu erstellen/auszuwählen. Also entweder eine neue Playlist anlegen und dieser Elemente hinzufügen (den Teil hab ich ja nur angedeutet WMPPlaylist.appendItem/insertItem) oder eine vorhandene Playlist aus der IWMPPlaylistArray zu nehmen (auch nur angedeutet).…

  • Benutzer-Avatarbild

    @kafffee Hab mir mal einen CD-Rohling organisiert und den ganzen Code, nach etwas Recherche, etwas umgebaut. Hoffe es ist alles im Upload vorhanden (hab alles aus dem Bin- und Obj-Ordner gelöscht, auch die Interop-DLLs ). Wie auch immer. Hab mir im WMP eine Playlist erstellt und konnte diese jetzt auch brennen. Was jetzt noch fehlt sind die ganzen Events, Status, sonstige Infos usw.

  • Benutzer-Avatarbild

    Hi Da ich den einen CD-Rohling, den ich hatte, ja nun schon verwendet habe, kann ich hier nicht mehr weiter testen. Daher vllt nur ein paar Ideen dazu. Zitat von kafffee: „Leider habe ich (noch) keine Möglichkeit gefunden, die temporäre Playlist dann wieder zu entfernen...“ Müsste über IWMPPlaylistCollection::remove(IWMPPlaylist) gehen. Zitat von kafffee: „Leider bleibt diese Fortschrittsanzeige immer bei 99% oder so hängen, das finde ich bisschen komisch...“ Glaub man muss den burnProgress im Z…

  • Benutzer-Avatarbild

    @Elephant Vielen Dank für das Angebot. Denke aber das @kafffee ab hier allein weiter kommt. Das brennen ansich funktioniert ja jetzt per WMP. Es sind ja nur noch ein paar Feinheiten reinzuprogrammieren. Für mich sind die WMP-Interfaces nichts.

  • Benutzer-Avatarbild

    @kafffee Die Form ansich brauchst Du gar nicht. Erstelle eine ganz normale Klasse mit den benötigten Interfaces, Funktionen usw. und erstelle entsprechende Properties oder weitere Funktionen in der Klasse die Dir die benötigten Infos liefern. Naja und dann die Klasse halt verwenden wie jede andere Klasse auch. Da könnte man schon in der Klasse -> Sub New die vorhandenen CD-Brenner ermitteln (Name, Laufwerksbuchstabe, UniqueID und was man sonst noch so braucht). Ich würde da keine extra DLL drauß…

  • Benutzer-Avatarbild

    Zitat von kafffee: „ch frage mich bloss ob man einfach so eine Form aus dem Projekt entfernen kann so ohne Nebenwirkungen...“ Klar kannst Du die Form entfernen. In der sind ja nur Sachen enthalten um die Interfaces anzusprechen und die Ergebnisse anzuzeigen. Zitat von kafffee: „Was müsste ich denn alles umbauen wenn ich alle Interfaces in eine Klasse packen will?“ Ich hatte doch seiner Zeit zwei Test-Projekte in der ZIP. Einmal das IMAPI2 Projekt und das IMAPI Projekt. Das IMAPI Projekt ist im P…

  • Benutzer-Avatarbild

    @kafffee Ich hab da mal was fix zusammen gebaut. Allerdings ist da noch nicht alles enthalten was Du evtl. benötigst. Es soll Dir nur zeigen wie man das ganze in eine Klasse unterbringt und ausschließlich mit den Pointern der Interfaces und nur mit den benötigten Interface-Funktionen arbeitet. Denke das erklärt sich von selbst wie das ganze dann zu erweitern ist.

  • Benutzer-Avatarbild

    Hi Da musst Du Dich im Moment ein bissel gedulden. Bin derzeit im Urlaub. Sozusagen PC und Laptop freie Zeit. Danach kann ich gern etwas Licht ins Dunkle bringen. Denke aber das auch @RodFromGermany, @VaporiZed und vllt. auch andere schon was dazu sagen könnten wie das funktioniert.

  • Benutzer-Avatarbild

    @kafffee So, Urlaub zu Ende. Weiter gehts. Ich versuche das mal so einfach wie Möglich zu erklären. Ein Delegate beschreibt die Signatur einer Interface Funktion und zwar so wie diese in der C++ Headerdatei imapi2.h im Abschnitt "typedef struct [Interface]Vtbl" eines Interfaces steht. Hier mal das Interface IDiscMaster2 aus der C++ Headerdatei. (Versteckter Text) Die Funktion CreateInterface gibt Dir einen Pointer auf ein Interface zurück. Welches Interface es sein soll wird über die IID und CLS…

  • Benutzer-Avatarbild

    @kafffee @Takafusa hat es treffend beschrieben. Du kannst nach der Funktion über Google suchen. Oder auch nach dem Interface das die Funktion enthält. Jedenfalls steht dann in der MS-Doku in welchem C++ Headerfile das dann zu finden ist. Für Dich ist das die imapi2.h. Die suchst auf Deiner Platte oder über Google auf GitHub wobei Du auf GitHub drauf achten müsstest, das Du die für Windows anklickst. Auf der Platte kannst die Headerdatei auch einfach mit dem Notepad einsehen und darin entsprechen…

  • Benutzer-Avatarbild

    @kafffee Die imapi2.h hab ich mir irgendwann mal aus dem Internet gezogen. Sollte aber reichen. Ich kann leider gerade mein Visual Studio nicht starten um da nochmal nachzuschauen. Die Funktion get_FreeSectorsOnMedia gibt es in verschiedenen IMAPI2 Interfaces. Da Du hauptsächlich von Audio gesprochen hast, müsstest dann die Funktion aus dem IDiscFormat2TrackAtOnce Interface nehmen.

  • Benutzer-Avatarbild

    @Takafusa Die 3 Dateien dürften die imapi.h, die imapi2.h und die imapi2fs.h sein. Die imapi.h enthält ältere Interfaces mit den nan nur CDs (keine DVDs) und AudioCDs brennen kann. Die imapi2fs.h enthält zusätzliche Interfaces für die Interfaces in imapi2.h. Die braucht man wenn man zB. eine DatenCD brennen/auslesen oder auch wenn man ISO Dateien erstellen oder brennen möchte.

  • Benutzer-Avatarbild

    Hi Ah, ok. Habn wa trotzdem was dazu gelernt. Ich glaub da gibt es so gut wie keine Unterschiede. Wenn dann würde ich sowieso die aus dem neuesten SDK nehmen.

  • Benutzer-Avatarbild

    Hi Ich glaub da bist ein wenig durcheinander gekommen. IDiscRecorder2 besitzt so eine Funktion nicht. IDiscFormat2TrackAtOnce hat eine Funktion get_FreeSectorsOnMedia. Marshallen musst da nichts. Ich komme erst am Montag wieder dazu deinen Code zu checken.

  • Benutzer-Avatarbild

    @kafffee So, mal fix über Deinen Code geschaut und meine Vermutung war schon richtig. Ach weiste was, da ich weis das das, wenn man damit noch nie zu tun hatte, schon sehr verwirrend sein kann. Daher, bitte schön. Hoffe da ist alles drin was Du benötigst. Ist jetzt auch nur auf die schnelle zusammen gebastelt und müsstest evtl. an Deine Bedürfnisse anpassen.

  • Benutzer-Avatarbild

    Zitat von kafffee: „Hat dann halt so einige Nachkommastellen...“ In meinem anderen Testcode gebe ich das ganze per Math.Ceiling aus und komme auf folgendes bei einer neuen CD: TotalSectorsOnMedia: 359999 Sectors = 704 MB FreeSectorsOnMedia: 359847 Sectors = 703 MB UsedSectorsOnMedia: 0 Sectors = 0 MB Kommt auch gut hin bei einer 700MB CD-Rohling. Ein bissel mehr geht immer denke ich. CDBurnerXP gibt im Prinzip das gleiche aus wenn man eine AudioCD brennen wollte (siehe Screenshot). Von daher pas…

  • Benutzer-Avatarbild

    @kafffee Klar kannst den Code veröffentlichen. In meinem Code ist nichts geheimes drin, das man nicht auch in der MS-Doku nachlesen könnte.

  • Benutzer-Avatarbild

    Hi. Jupp, ist schon etwas her. Ob Du die Interop-DLLs mitliefern musst, kann ich Dir nicht beantworten. Wenn ja, könnte ich mir vorstellen das diese DLLs evtl. auf dem Zielsystem noch registriert werden müssen. Ach ja, es darf sich beim Zielsystem um keine Windows N-Version handeln. Denn da ist der WMP von Haus aus nicht vorhanden und das komplette Media-Zeugs müsste erst nachinstalliert werden. Wenn ich mich zurück erinnere, dann war ich seiner Zeit schon der Meinung das gleich per IMAPI2 zu re…

  • Benutzer-Avatarbild

    Auch erstenmal frohe Weihnachten zurück. Ich kann mir nicht vorstellen das es nur ein einziges NuGet-Paket im Zusammenhang mit IMAPI2 gibt. Den hier hatte ich glaub auch schon mal gepostet: github.com/awalsh128/IMAPI2 -> .NET wrapper for Windows IMAPI2 interface. Wer weis das schon ob es unter Win12/13 den alten WMP, und damit auch dessen Interfaces, überhaupt noch geben wird. Im Moment erklärt MS ja so einiges als deprecated. learn.microsoft.com/en-us/wind…s-new/deprecated-features

  • Benutzer-Avatarbild

    Leider kenne ich mich mit NuGet-Paketen wenig aus und noch weniger mit dem WMP. Ich nutze ja so gut wie keine NuGet-Pakete. Sorry.