' Control panel library for Rapid-Q!!!
' Version 1.0
' 3/25/01
' The name goes with the shell program name: control.exe
' I found out the arguments required to run the control panel applets!!!
' use: rundll32 <library (Shell32)>,Control_RunDLL <cplfile>
' (@)<which dialog>
' optional comma and index to display the desired tab on the dialog!
' NOTE: if you have a cpl file that dosen't take any arguments and you would like
' to display it's tabbed index, use @0, comma, <index>
' else, just use the above usage on lines 4-5.
' Not all dialogs of the Control Panel have arguments.
' If you see a sub/function that is prefixed with an 'n', it indicates that
' that dialog (applet) of the Control Panel has tabs, and the argument of the sub/function
' is the index of the tab (I think that indexing of any tab starts at 1).
' Thanks to Rudy Elyn (email: Rudy@vt4.net) for his Config program (and source);
' it served as a base to help me out in "cracking the command line".
' If you have any questions, comments, or just want to say hello, please email me at b_j0@yahoo.com :)
' It would be nice to email me if you like the library ;)
' It may not be all of them, but I did my best ;)
' The Control_RunDLL code in the shell command points out to me that there is an undocumented API
' sub/function called Control_RunDLL hiding in Shell32.dll and that it's argument(s) is/are:
'
' 1: the cpl file (located in the Windows System directory)
'
' 2: the number (tag) of the applet located in the cpl file that you wish to run (prefixed with an "@" (at) sign);
' the "tags" of each applet start at zero (I think!)
'
' 3: the tab to display when the applet is shown (if the applet has one)
'
'
' Oh yeah:
' - not all of the subs load applets, they can load folders too.
' - you need Windows in order for this library to work
' - I will refer to all of the applets that have tabs, as dialogs,
' so all of them will be suffixed with Dlg
'
' - more libraries are coming soon :)
sub nOpenMouseDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @0,"+str$(index), 5)
end sub
sub nOpenKeyboardDlg(index%)
if index%>1 then index%=0
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL __
main.cpl @1,"+str$(index%), 5))
end sub
sub OpenPrintersFolder
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @2", 5)
end sub
sub OpenFontsFolder
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @3", 5)
end sub
sub nOpenDisplayDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl @0,"+str$(index%), 5)
end sub
sub OpenTimeDlg
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl @0", 5)
end sub
sub nOpenDialingDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL telephon.cpl @0,"+str$(index%), 5)
end sub
sub nOpenSystemDialog(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @0"+str$(index%), 5)
end sub
sub OpenAddNewHardwareDlg
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1", 5)
end sub
sub nOpenScannerDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL sticpl.cpl @0", 5)
end sub
sub OpenThemesDlg
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL themes.cpl @0", 5)
end sub
sub nOpenAddRemoveProgramsDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl @0,"+str$(index%), 5)
end sub
sub nOpenPowerMgmtDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl @0,"+str$(index%), 5)
end sub
sub nOpenPasswordsDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL password.cpl @0,"+str$(index%), 5)
end sub
sub nOpenModemDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL modem.cpl @0,"+str$(index%), 5)
end sub
sub nOpenMMDeviceDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @0,"+str$(index), 5)
end sub
sub OpenSoundsDlg
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1", 5)
end sub
sub nOpenGamesDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL joy.cpl @0,"+str$(index%), 5)
end sub
sub nOpenRegionalDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl @0,"+str$(index%), 5)
end sub
sub nOpenInternetDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl @0,"+str$(index%), 5)
end sub
sub nOpenUsersDlg(index%)
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl @1,"+str$(index%), 5)
end sub
' Only if one has TweakUI98 (or greater?) installed
' this one is not configured to accept arguments to display tabs at index%
sub OpenTweakUIDlg
PID = Shell("rundll32.exe shell32.dll,Control_RunDLL tweakui.cpl @0", 5)
end sub