I wrote a small test program to test out the rindll32.exe interface. It starts control panel apps from the listbox. I thought someone may like this toy. Only tested on win98se, don't know if it runs on other versions.


Posted on 2003-04-10 07:15:21 by hutch--

Runs good, winXP pro.
Posted on 2003-04-10 07:54:40 by david
why not use LoadLibrary+GetProcAddress+call instead?
Posted on 2003-04-10 08:03:55 by f0dder
works on NT4SP6. kewl :alright:
Posted on 2003-04-10 08:13:31 by TBD
Works on win2k sp3 :alright: Btw, hutch your code look weird with the marcos you use :grin:
Posted on 2003-04-10 08:21:09 by roticv

Nice work:alright:


Posted on 2003-04-10 10:57:06 by Vortex
it might come in handy :)
Nice job :alright:
Posted on 2003-04-10 11:54:51 by Axial
Ah sorry. It takes a tiny bit more programming than just LoadLibrary+GetProcAddress+call to invoke a .cpl...
Posted on 2003-04-10 12:30:17 by f0dder

hmod = LoadLibrary("desk.cpl");
proc = (applet_p) GetProcAddress(hmod, "CPlApplet");
proc(GetDesktopWindow(), CPL_DBLCLK, 0, 0);

look up CPlApplet in PlatformSDK. By doing it this way, you also get the chance to handle .CPLs that export multiple applets, as well as you don't need the extra overhead of launching a new process for invoking the control panel applet.
Posted on 2003-04-10 12:37:59 by f0dder

Thanks, an interesting idea. What I was testing was the command line style interface that can be used with RUNDLL32, I found it in a system file left over from the original installation and it works from the DOS prompt.


Posted on 2003-04-10 20:16:00 by hutch--