65.9K
CodeProject 正在变化。 阅读更多。
Home

轻松显示“任务栏和「开始」菜单属性”对话框

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.89/5 (8投票s)

2006年9月13日

CPOL
viewsIcon

38382

本文展示了从 VC++ 运行控制面板小程序的方法,即使这些小程序没有 cpl 扩展文件。

Sample Image - taskbarProperties.jpg

背景

在某个新闻组中,有人询问如何在 VC++ 中显示“任务栏和开始菜单属性”对话框。我将在这里展示从 VC++ 运行多个不同控制面板小程序的方法。

从“运行”框运行

从“运行”框运行小程序很简单,只需输入“control desk.cpl”并按“确定”。它将显示桌面属性对话框。

从 VC++ 运行

从您的代码运行小程序也很简单。

ShellExecute( this->m_hWnd, NULL, "desk.cpl", NULL, NULL, 0);

那么问题是什么?

显示“任务栏和开始菜单属性”小程序的问题在于,您找不到显示此对话框的“cpl”文件。

解决方案

为了寻求帮助,我搜索了 MSDN,它说“您可以使用任何脚本语言显示此对话框”。但是 VC++ 呢?以下是如何使用 IDispatch 方法显示此对话框的方法。

CString ss = ("TrayProperties");
BSTR szMember = ss.AllocSysString();
DISPID dispid;
COleDispatchDriver disp;
disp.CreateDispatch("Shell.Application");
disp.m_lpDispatch->GetIDsOfNames(IID_NULL,&szMember,1,LOCALE_USER_DEFAULT,&dispid);
disp.InvokeHelper(dispid, DISPATCH_METHOD, NULL,NULL,NULL); 
SysFreeString( szMember);

切记初始化和取消初始化 COM。

© . All rights reserved.