如何打开设置页和程序页

czbever 2009-08-07 09:24:40
加精
打开设置页:

中文系统中:
HWND hwndSetting = FindWindow(_T("Worker"), _T("设置"));
SetForegroundWindow(hwndSetting);



英文系统中:
HWND hwndSetting = FindWindow(_T("Worker"), _T("Settings"));
SetForegroundWindow(hwndSetting);

说明:这种有个bug就是需要预先打开设置这个设置页面,而且打开后右上角的ok没掉了,点击界面后才会出现。 希望大家帮忙想一下办法。

以下方法测试没问题:


ctlpnl.exe

CreateProcess(_T("\\Windows\\ctlpnl.exe"), _T("cplmain.cpl, $Id\")……

如CreateProcess(L"\\Windows\\ctlpnl.exe", L"cplmain.cpl, 1", ...

$Id取值:
0 对比度
1 密码
2 主人信息
3 电源
4 内存
5 关于
6 背光
7 调整屏幕
8 输入
9 声音和提醒
10 删除程序
11 菜单
12 按键
13 今日
14
15 无线数据交换
16 时钟
17 配置网络适配器
18 区域设置
19 连接
20 拨号盘
21
22 证书管理
23 蓝牙
24 错误报告
25 GPS 设置
26 无线管理器
27 加密
28 由 USB 连接到 PC
29 客户反馈


Control panel applets can be started programmatically. The format of the command is:

'\windows\ctlpnl.exe cpl_filename.cpl,applet_name,applet_index,tab_index'


打开程序页:

中文系统中:
HWND hWnd = FindWindow(L"Explore",L"程序");
SetForegroundWindow(hWnd);


英文系统中:
HWND hWnd = FindWindow(L"Explore",L"Programs");
SetForegroundWindow(hWnd);

同样也是需要预先打开程序这个进程

因为系统开启时默认是不会调用设置和程序这两个的。 各位大侠有什么好方法吗?之前好象有人问过

...全文
1166 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadamoo 2010-07-01
  • 打赏
  • 举报
回复
不错 顶顶
oceanh 2010-01-04
  • 打赏
  • 举报
回复
关注 我也遇到设置界面无法出现的问题
金笛子 2009-09-27
  • 打赏
  • 举报
回复
void CXXXXDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
typedef BOOL (WINAPI * FPSTARTBROWSER)(LPCWSTR lpszFolderPath, INT nListViewStyle);
FPSTARTBROWSER StartBrowser;


HMODULE hModule;
hModule = LoadLibraryW(L"fbrowser.dll");
if (NULL != hModule)
{
StartBrowser = (FPSTARTBROWSER)GetProcAddressW(hModule, (LPCWSTR)10);
if (NULL != StartBrowser)
{
if (StartBrowser(L"\\Windows\\“开始”菜单\\设置\\", 0))//0表示Icon模式
{
MSG msg;

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
FreeLibrary(hModule);
}
}

这样调出来的设置界面是块白色的 这个是为什么呢?
金笛子 2009-09-27
  • 打赏
  • 举报
回复
按这种方式我这边为什么只能打开程序界面而设置界面却打不开?
还有就是这个打开的代码放到哪个地方比较合适呢?
金笛子 2009-09-27
  • 打赏
  • 举报
回复
为什么程序界面可以打开而设置界面却打不开?
czbever 2009-08-12
  • 打赏
  • 举报
回复
下面内容转自UMU先生http://hi.baidu.com/umu618/blog/item/796944c2d702243ce5dd3bc7.html

BOOL StartBrowser(LPCWSTR lpszFolderPath, INT nStyle);

  参数说明

nStyle

0 Icon 模式,类似 Shell32.exe 的“程序”界面

1 Report 模式,类似 File Explorer 的界面

2 Report 模式,打开 \My Documents

3 和 0 一样,其它值自己试看看

  例子

typedef BOOL (WINAPI * FPSTARTBROWSER)(LPCWSTR lpszFolderPath, INT nListViewStyle);
FPSTARTBROWSER StartBrowser;


HMODULE hModule;
hModule = LoadLibraryW(L"fbrowser.dll");
if (NULL != hModule)
{
StartBrowser = (FPSTARTBROWSER)GetProcAddressW(hModule, (LPCWSTR)10);
if (NULL != StartBrowser)
{
if (StartBrowser(L"\\", 0))//0表示Icon模式
{
MSG msg;

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
FreeLibrary(hModule);
}

GuanMingSoft 2009-08-11
  • 打赏
  • 举报
回复
mark
黑夜de星辰 2009-08-11
  • 打赏
  • 举报
回复
学习了
tvb5201314 2009-08-11
  • 打赏
  • 举报
回复
不错~~~学习了~
czbever 2009-08-10
  • 打赏
  • 举报
回复
收帖
beyondma 2009-08-10
  • 打赏
  • 举报
回复
精华!
ProgrammerNO1 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 itxixihaha 的回复:]
好东东!
帮了大忙
[/Quote]

怎么解决的,快捷方式成功创建了,可是链接不到exe ,咋回事?
yangcongbo123456 2009-08-10
  • 打赏
  • 举报
回复
不知道好不好用哦!
wudao1992 2009-08-09
  • 打赏
  • 举报
回复
zhi 到了
花爺 2009-08-09
  • 打赏
  • 举报
回复
好东东!
帮了大忙
ProgrammerNO1 2009-08-09
  • 打赏
  • 举报
回复
打开快捷方式或定位目标文件时出错,为什么会这样?
ProgrammerNO1 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 czbever 的回复:]
这个是系统快捷方式存放的地方 我们可以通过类似StartExeCute(L"\\Windows\\“开始”菜单\\联系人.lnk"); 这样子  就可以进联系人的界面
[/Quote]

这个函数是不是放在这里调用

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
nbaabc373760794 2009-08-09
  • 打赏
  • 举报
回复
山书生 2009-08-09
  • 打赏
  • 举报
回复
notice:)
javabizliuwei 2009-08-08
  • 打赏
  • 举报
回复
yes
加载更多回复(32)

7,656

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧