请教:不用API能不能调用控制面板里的选项

时间:2022-09-11 17:09:05
我想直接shell

打开控制面板的程序是control.exe

可是要具体打开里面的每一个选项,比如输入法,或者时间等等,应当怎么用呢

能不能在control.exe上加参数,敬请指点,多谢!!!!

4 个解决方案

#1


gz

#2



225、如何完全模拟系统的控制面板?

在上一个主题:如何呼叫系统的控制面板?中,我们告诉您如何直接叫用系统的控制面板,但是,如果您只是想要叫用控制面板中的某一个单一功能设定画面的话,您也可以做到的!

其实,控制面板的那么多的功能,是分别叫用您电脑中的一些扩展文件名为 .CPL 的文件,这些文件在 Windows 95/98/NT 中存放的位置有一些不同,分别说明如下:

Windows 95/98:文件位置在 c:\windows\system
Windows NT:文件位置在 c:\winnt\system32

下面的程序码以 Windows98 为例来说明,如果您是在 Windows NT 中,请自行稍微修改。在表单上放一个 CommandButton 及一个 FileListBox,程序码如下:

Private Sub Form_Load()
File1.Pattern = "*.CPL"
File1.FileName = "C:\WINdows\SYSTEM" '若是 NT 的话请改这里
End Sub

Private Sub Command1_Click()
Shell "rundll32.exe shell32.dll,Control_RunDLL " & File1.FileName, vbNormalFocus
End Sub

好了,别惊讶,程序码就是这么短而已!请先在 FileListBox 中选择一个文件,每一个文件分别代表控制面板中的某一个功能设定程序,然后按下 Command1 就可以执行了!

以上是抄来的:)

--------------------------

File1.FileName = "C:\WINdows\SYSTEM" '若是 NT 的话请改这里

用下面代码找到系统目录更好
'查找系统目录
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Const MAX_PATH = 260

'取得system目录
Function GetSystemPath()
Dim strFolder As String
Dim lngResult As Long
    strFolder = String(MAX_PATH, 0)
    lngResult = GetSystemDirectory(strFolder, MAX_PATH)
    If lngResult <> 0 Then
        GetSystemPath = Left(strFolder, InStr(strFolder, Chr(0)) - 1)
    Else
        GetSystemPath = ""
    End If
End Function

#3


OK,多谢!!!

#4


好象有点问题

#1


gz

#2



225、如何完全模拟系统的控制面板?

在上一个主题:如何呼叫系统的控制面板?中,我们告诉您如何直接叫用系统的控制面板,但是,如果您只是想要叫用控制面板中的某一个单一功能设定画面的话,您也可以做到的!

其实,控制面板的那么多的功能,是分别叫用您电脑中的一些扩展文件名为 .CPL 的文件,这些文件在 Windows 95/98/NT 中存放的位置有一些不同,分别说明如下:

Windows 95/98:文件位置在 c:\windows\system
Windows NT:文件位置在 c:\winnt\system32

下面的程序码以 Windows98 为例来说明,如果您是在 Windows NT 中,请自行稍微修改。在表单上放一个 CommandButton 及一个 FileListBox,程序码如下:

Private Sub Form_Load()
File1.Pattern = "*.CPL"
File1.FileName = "C:\WINdows\SYSTEM" '若是 NT 的话请改这里
End Sub

Private Sub Command1_Click()
Shell "rundll32.exe shell32.dll,Control_RunDLL " & File1.FileName, vbNormalFocus
End Sub

好了,别惊讶,程序码就是这么短而已!请先在 FileListBox 中选择一个文件,每一个文件分别代表控制面板中的某一个功能设定程序,然后按下 Command1 就可以执行了!

以上是抄来的:)

--------------------------

File1.FileName = "C:\WINdows\SYSTEM" '若是 NT 的话请改这里

用下面代码找到系统目录更好
'查找系统目录
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Const MAX_PATH = 260

'取得system目录
Function GetSystemPath()
Dim strFolder As String
Dim lngResult As Long
    strFolder = String(MAX_PATH, 0)
    lngResult = GetSystemDirectory(strFolder, MAX_PATH)
    If lngResult <> 0 Then
        GetSystemPath = Left(strFolder, InStr(strFolder, Chr(0)) - 1)
    Else
        GetSystemPath = ""
    End If
End Function

#3


OK,多谢!!!

#4


好象有点问题