Archive: Nero Burning ROM plug-in


Nero Burning ROM plug-in
This project is still in the development stage. I am going to start the coding this afternoon. If anyone has any ideas on what could go into the plugin, I would like to hear about them. Options I have so far:

NeroBR::GetDrives
Gets the current drives that can be used to record on. This is called internally if /target is omitted.

NeroBR::SetOptions /NOUNLOAD
Used to set the options for the burn operation.

/disctype CDDA | DATACD | CDDATA | DVD | DATADVD | IMAGE
Used to set the destination type for the disc. Only one of the above options is allowed. CDDATA is an audio cd with data at the end. If omitted, default is DATACD.

/files "C:\path\files\*.*"
Tells the plugin what files to burn. Required.

/target IMAGE
Specifies the recorder to use. IMAGE is to make an image, or use D or G or whatever the letter your recorder is (letter and colon only at this stage). If omitted, the default is the first recorder returned by GetDrives.

/label "Label of CD"
Specifies the label. I think letters, numbers, underscores and hyphens can only be used, and I think it is only sixteen characters long (any longer and the text will be truncated). If omitted, the default is the current date.

/verify YES | NO
Whether to verify the burnt disc. If omitted, the default is YES.

/postaction LOGOFF | SHUTDOWN | RESTART
Does either action when the burn is finished. Only one value is allowed. Optional.

NeroBR::Burn
Burns with the options specified with SetOptions.

Ideas and comments welcome.


Nice, I love new plugins, but what is it used for in an installer?


@onad: there are people (like me) who love NSIS for its ability to build small applets, not only installers. What about an explorer extension: burn this folder with nero ?


@onad
This plugin is a bit specialised in one area, for automating burning of a cd or sets of files (mostly to accompany the CABSetup plugin by Mr Inches). It won't really be used in an installer.

@niteflyer
I may make a simple app to register the command onto the right click menu and implement the burning of folders into it.

I still have to read all the documentation for the NeroAPI before coding the required functions. I have made a simple NSIS interface, and I still need to code the option parser. This project may take a couple of months to code (almost no free time), although the break between semesters one and two should help alot (three weeks away).


I have finally managed to compile and link the source code successfully, but has almost no code in it. This is the beginnings of my plugin.

I would like you to test the attached .exe on your system. All it does is run the Init function from NeroBR.dll. It tells you if you cannot connect with the Nero runtime dlls. If it has connected, it will show you a MessageBox containing your version numbers.

At the moment, I still have to code the rest of the plugin, but this example .exe is half of the hard work done (getting it to compile and link successfully).


Technically it worked, although I do not think the version recognition routines are fine just yet...


Yeah, I already know that. I have to look over the sample code that came with the SDK to fix it.

Note: What version are you running? It appears you are running 6.6.0.16. The numbers look the same as mine.


Whoops. The version had only one var being displayed, instead of four being displayed. My fault.

This plugin has now decided to crash on me, which (I just relized this morning) was because I am using the wrong library for the Nero function linking.

The attachment has fixed the version dialog, and now it should give a series of message boxes telling you the available drives. Then it will crash. The next two weeks are a great opportunity to work on my plugin. Might even be finished in two weeks :D, doubt it though :(.


Just found out this morning I have three weeks of holiday, not two :D. And I didn't touch the source of this plug-in :(. Just updating. I have been working on other stuff during the holidays (a new plug-in and another release of InstallSpiderUI).

[edit]Forgot to add, I am using the right library version. I think Nero dosen't like me continuing after the plugin returns, I think it prefers calling exit() to exit the Nero library.[/edit]