Mega Code Archive

 
Categories / Delphi / Examples
 

Calling control panel applets from your programs and scripts

Looking for a way to open Control Panel applets from your programs without opening the Control Panel? Whether you want your users to change the system date/time properties, add a new modem or change joystick settings, there's an easy way to call all such Control Panel applets (icons) without opening the Control Panel folder. The good news is that you can use this method in any Windows programming environment or even in a simple BATch file. Running the following command from your program will do the trick (CPL being the file name of the Control Panel applet to open. a list of such applets can be found at the bottom of this document): rundll32.exe shell32.dll,Control_RunDLL CPL For example, to bring up the "Date/Time Properties" dialog box, run: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl To open a Control Panel applet from a Windows BATch file, simply include the above command in a line by itself. Since we're using a regular executable file, rundll32.exe, you can include the above command in any location you can execute a program, such as a shortcut icon, Intranet web page anchor, script, etc. Although the concept is simple enough, let's look at some code samples on how to ease calling the above command from a C/C++ or Delphi program. Note that you can use any "WinExec()" equivalent function to achieve the same effect. C Language / C++ / C++Builder code sample Include the following code in your program and call "RunControlPanelApplet()". Example call: RunControlPanelApplet("timedate.cpl"); #include<stdio.h> #include<windows.h> int RunControlPanelApplet( char*sAppletFileName) { char s[1024]; sprintf(s, "rundll32.exe shell32.dll," "Control_RunDLL %s", sAppletFileName); return WinExec(s, SW_SHOWNORMAL); } Delphi / C++Builder code sample Include the following unit into your project and call "RunControlPanelApplet()" with the name of the applet to open. Example: RunControlPanelApplet( 'timedate.cpl' ); unit open_cpl; interface function RunControlPanelApplet( sAppletFileName : string) : integer; implementation uses Windows; function RunControlPanelApplet( sAppletFileName : string) : integer; begin Result := WinExec( PChar('rundll32.exe shell32.dll,'+ 'Control_RunDLL '+sAppletFileName), SW_SHOWNORMAL); end; end. How to find the names of the applet files Control Panel applet files have the extension CPL. To get a list of applets installed on your system, go to your Windows SYSTEM (Windows 95) or SYSTEM32 (Windows NT) directory and look for files with the CPL extension. Example: DIR C:\WINDOWS\SYSTEM\*.CPL Following is a list of applets common to Windows 95 and Windows NT: access.cpl: Accessibility Properties appwiz.cpl: Add/Remove Programs Properties desk.cpl: Display Properties intl.cpl: Regional Settings Properties joy.cpl: Joystick Properties main.cpl: Mouse Properties mmsys.cpl: Multimedia Properties modem.cpl: Modems Properties sysdm.cpl: System Properties timedate.cpl: Time/Date Properties Applicable Keywords : C Language, C++, C++Builder, C++Builder 1.x, C++Builder 3.x, Delphi, Delphi 2.x, Delphi 3.x, Functions, Windows NT, Windows NT 4.x, Programming, Source Code, Windows, Win32, Windows 95