打开手机系统界面总结(转)

来源:互联网 发布:花千骨器灵进阶数据 编辑:程序博客网 时间:2024/05/21 15:03
打开设置页:

中文系统中:
        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错误报告
25GPS 设置
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);

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

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

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
回复次数:49

 

  • ppc_2008用户头像
  • ppc_2008
  • (ppc_2008)
  • 等 级:
#1楼 得分:1回复于:2009-08-07 09:37:01
UP
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:【推荐】09年中国软件企业最应该投资的5大技术~~
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#2楼 得分:0回复于:2009-08-07 09:46:44
补充一下 如果要打开设置里的某项比如说对比关于里的  tabcontrol , 可以多加一个  值
参考http://www.pocketpcdn.com/articles/controlpanel.html

如:
C/C++ code


TCHAR szParam[
100];
wsprintf(szParam,L
"cplmain.cpl,%d,%d",5,2);

PROCESS_INFORMATION pi;
if (!::CreateProcess(_T("//Windows//ctlpnl.exe"),
szParam, NULL, NULL, FALSE,
0, NULL, NULL, NULL, &pi))
{
//Cannot start Control Panel process
}




但是打开  设置这个不知道如何解决那个  bug
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:急求用过funambol的同仁,请教一些问题。
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#3楼 得分:0回复于:2009-08-07 09:53:09
C/C++ code

HWND SettingWnd
= ::FindWindow(L"Dialog",L"");
if(!::IsWindow(SettingWnd))
{
HWND StartMenuhWnd;
HWND HHTASK
= ::FindWindow(L"HHTaskBar",NULL);
::PostMessage(HHTASK,WM_KEYDOWN,VK_LWIN,
0xC0600001);
::PostMessage(HHTASK,WM_KEYUP,VK_LWIN,
0xC0600001);
while(1)
{
StartMenuhWnd
= ::FindWindow(L"MNU",L"");
if(::IsWindow(StartMenuhWnd))
{
break;
}
}
::ShowWindow(StartMenuhWnd,SW_HIDE);
::PostMessage(StartMenuhWnd,WM_KEYDOWN,
0x26,0);
::PostMessage(StartMenuhWnd,WM_KEYUP,
0x26,0);
::PostMessage(StartMenuhWnd,WM_KEYDOWN,
0x26,0);
::PostMessage(StartMenuhWnd,WM_KEYUP,
0x26,0);
::PostMessage(StartMenuhWnd,WM_KEYDOWN,
0x0d,0);
}
else
{
::SetForegroundWindow(SettingWnd);
}



  这种方法是可以打开设置页,但是感觉效率很低
  • 对我有用[1]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:想成为嵌入式程序员应知道的0x10个基本问题——转贴 经典!
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#4楼 得分:0回复于:2009-08-07 10:01:31
设置窗口只要被打开过,就不再关闭了,只是隐藏了。以后只要FindWindow就可以找的到,主要是第一次如何打开它,我就模拟了一次进入它的情况,先找到上方的HHTaskBar,然后发送键盘消息给它,让它选中Setting的窗口。 设置窗口的class 名称为 “Dialog”, 所以第二次执行就直接
SetForegroundWindow
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:如何在程序中创建快捷方式的图标
  • okadler0518用户头像
  • okadler0518
  • (与群人共进!成长...)
  • 等 级:
#5楼 得分:1回复于:2009-08-07 10:29:03
顶你个肺啊
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:呕血整理个个精华,推荐观看!
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#6楼 得分:0回复于:2009-08-07 10:29:17
通过remote spy 我看到这个窗口的坐标位置:



所以我断定是MNU这个窗口,接着我们向这个窗口发虚拟键

我们看一下这个窗口的特点:


Settings的位置是处于第二个,所以我们需要发两次WM_KEYDOWN和WM_KEYUP来模拟用户输入,移动到 Settings这个位置上,然后再调用VK_RETURN。

::ShowWindow(StartMenuhWnd,SW_HIDE); //将MNU这个窗口隐藏
                ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYUP,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYUP,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x0d,0);//VK_RETURN
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • okadler0518用户头像
  • okadler0518
  • (与群人共进!成长...)
  • 等 级:
#7楼 得分:1回复于:2009-08-07 10:29:26
再次顶你个肺啊
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#8楼 得分:0回复于:2009-08-07 10:33:48
上面的再多个移动虚拟键,就可以打开程序页面了

::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYUP,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYUP,0x26,0);//VK_UP
              ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x26,0);//VK_UP
              ::PostMessage(StartMenuhWnd,WM_KEYUP,0x26,0);//VK_UP
              ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x26,0);//VK_UP
                ::PostMessage(StartMenuhWnd,WM_KEYDOWN,0x0d,0);//VK_RETURN
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • okadler0518用户头像
  • okadler0518
  • (与群人共进!成长...)
  • 等 级:
#9楼 得分:1回复于:2009-08-07 10:34:11
这小子不错,有前途。帮顶。。希望顶到胃出血。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#10楼 得分:0回复于:2009-08-07 10:34:48
解决 虽然不是什么好办法 期待更好的办法
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • nihao38用户头像
  • nihao38
  • (有问必答,有分必给)
  • 等 级:
#11楼 得分:1回复于:2009-08-07 10:37:15
关注
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#12楼 得分:0回复于:2009-08-07 11:23:51
顺便把所以打开页面的都总结一下:

打开电话的页面:
C/C++ code

PROCESS_INFORMATION pi;
if (!::CreateProcess(_T("//Windows//cprog.exe"),
NULL, NULL, NULL, FALSE,
0, NULL, NULL, NULL, &pi))
{

}


打开短信收件箱页面:
C/C++ code

PROCESS_INFORMATION pi;
if (!::CreateProcess(_T("//Windows//tmail.exe"),
L
"-service /"SMS/"", NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi))
{
}



这里我用的是createProcess,更安全的还是建议用ShellExecuteEx,如果超出32个进程,shell会自动释放无用的进程
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#13楼 得分:0回复于:2009-08-07 11:29:47
进入图片与视频:
//英文环境:
CProcessExecute::StartExeCute(L"//Windows//Start Menu//Programs//Pictures & Videos.lnk");


//中文环境:
CProcessExecute::StartExeCute(L"//Windows//“开始”菜单//程序//图片和视频.lnk");

其中
void CProcessExecute::StartExeCute(LPCTSTR lpFileName)
{
    SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = lpFileName;

ShExecInfo.lpParameters = L"";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
    ShellExecuteEx(&ShExecInfo);
}
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • okadler0518用户头像
  • okadler0518
  • (与群人共进!成长...)
  • 等 级:
#14楼 得分:1回复于:2009-08-07 11:36:11
C/C++ code

其中
void CProcessExecute::StartExeCute(LPCTSTR lpFileName)
{
SHELLEXECUTEINFO ShExecInfo
= {0};
ShExecInfo.cbSize
= sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask
= SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd
= NULL;
ShExecInfo.lpVerb
= NULL;
ShExecInfo.lpFile
= lpFileName;

ShExecInfo.lpParameters
= L"";
ShExecInfo.lpDirectory
= NULL;
ShExecInfo.nShow
= SW_SHOW;
ShExecInfo.hInstApp
= NULL;
ShellExecuteEx(
&ShExecInfo);
}



这个应该是照相摄像功能的调用!
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#15楼 得分:0回复于:2009-08-07 11:37:13
引用 14 楼 okadler0518 的回复:
C/C++ code
其中void CProcessExecute::StartExeCute(LPCTSTR lpFileName)
{
    SHELLEXECUTEINFO ShExecInfo= {0};
ShExecInfo.cbSize=sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask= SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd= NULL;
ShExecInfo.lpVerb= NULL;
ShExecInfo.lpFile= lpFileName;

ShExecInfo.lpParameters= L"";
ShExecInfo.lpDirectory= NULL;
ShExecInfo.nShow= SW_SHOW;
ShExecInfo.hInstApp= NULL;
    ShellExecuteEx(&ShExecInfo);
}

这个应该是照相摄像功能的调用!


哈哈 不是的 你小子真是太菜了
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • gahyyai用户头像
  • gahyyai
  • (冰岛男孩)
  • 等 级:
#16楼 得分:0回复于:2009-08-07 11:56:15
mark
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • dkling866用户头像
  • dkling866
  • (dkling866)
  • 等 级:
#17楼 得分:0回复于:2009-08-07 12:02:00
学习!~
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • r11222用户头像
  • r11222
  • (r11222)
  • 等 级:
#18楼 得分:0回复于:2009-08-07 12:03:20
UYYYYYYYYYYYYYYYYYY
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • pysjp用户头像
  • pysjp
  • (咖啡恋人)
  • 等 级:
#19楼 得分:0回复于:2009-08-07 12:27:56
mark
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • infsafe用户头像
  • infsafe
  • (Def Of ArT)
  • 等 级:
#20楼 得分:0回复于:2009-08-07 12:30:13
必须顶一下.
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • sachengtime用户头像
  • sachengtime
  • (sachengtime)
  • 等 级:
#21楼 得分:0回复于:2009-08-07 12:36:32
这个必须的
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • iabswfg858用户头像
  • iabswfg858
  • 等 级:
#22楼 得分:0回复于:2009-08-07 12:37:49
很好哦,这个都没做过呢。学习
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • hezulin用户头像
  • hezulin
  • (hezulin)
  • 等 级:
#23楼 得分:0回复于:2009-08-07 12:37:56
顶一下.好
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#24楼 得分:0回复于:2009-08-07 12:47:55
一些调用程序的方法可以用调用lnk或者exe的方法,可以通过remote spy 和 remote process来查看

然后直接ShellExecuteEx

其他方面的再继续研究 我再帖出来。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • okadler0518用户头像
  • okadler0518
  • (与群人共进!成长...)
  • 等 级:
#25楼 得分:0回复于:2009-08-07 13:00:10
引用 15 楼 czbever 的回复:
引用 14 楼 okadler0518 的回复:
C/C++ code
其中void CProcessExecute::StartExeCute(LPCTSTR lpFileName)
{
    SHELLEXECUTEINFO ShExecInfo= {0};
ShExecInfo.cbSize=sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask= SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd= NULL;
ShExecInfo.lpVerb= NULL;
ShExecInfo.lpFile= lpFileName;

ShExecInfo.lpParameters= L"";
ShExecInfo.lpDirectory= NULL;
ShExecInfo.nShow= SW_SHOW;
ShExecInfo.hInstApp= NULL;
    ShellExecuteEx(&ShExecInfo);
}

这个应该是照相摄像功能的调用!


哈哈 不是的 你小子真是太菜了


看错了,这个是ShellExecuteEx。。。。哎。。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#26楼 得分:0回复于:2009-08-07 13:04:09


这个是系统快捷方式存放的地方 我们可以通过类似StartExeCute(L"//Windows//“开始”菜单//联系人.lnk"); 这样子  就可以进联系人的界面
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#27楼 得分:0回复于:2009-08-07 13:45:42
找到一种更好的办法,反汇编fbrowser.dll,然后取得里面的函数,然后这样子就可以进任意的路径了,
之前不是有人问如何进入游戏这个页面吗,可以用这种方法:

C/C++ code

typedef BOOL (WINAPI
* FPSTARTBROWSER)( LPCWSTR lpszPath, INT i );
FPSTARTBROWSER StartBrowser;


HMODULE hInst;
hInst
= LoadLibraryW( L"fbrowser.dll" );
StartBrowser
= (FPSTARTBROWSER)GetProcAddressW( hInst, (LPCWSTR)10 );
if( StartBrowser )
{
if( StartBrowser( L"//Windows//“开始”菜单//程序//游戏", 0 ) ) //此路径可以是任意路径,但设置这个例外
{
MSG msg;

while ( GetMessage(&msg, NULL, 0, 0) ) //对该目录的消息循环进行处理,如果预先已经打开了shell32.exe,则消息循环在shell32.exe中,此时不需要处理消息循环,GetMessage直接返回NULL
{
TranslateMessage(
&msg);
DispatchMessage(
&msg);
}


}
}
FreeLibrary( hInst );


  • 对我有用[1]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#28楼 得分:0回复于:2009-08-07 14:19:44
消息循环在那边是为了响应非消息队列消息
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • funwell用户头像
  • funwell
  • (饭碗儿)
  • 等 级:
#29楼 得分:0回复于:2009-08-07 17:04:41
mark
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • javabizliuwei用户头像
  • javabizliuwei
  • (javabizliuwei)
  • 等 级:
#30楼 得分:0回复于:2009-08-08 00:43:49
yes
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • UMU用户头像
  • UMU
  • (小开)
  • 等 级:
#31楼 得分:14回复于:2009-08-08 15:51:55
进入图片与视频:

ShellExecuteEx ":MSPIMG"

:MSPIMG == pimg.exe
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • uteryu用户头像
  • uteryu
  • (uteryu)
  • 等 级:
#32楼 得分:0回复于:2009-08-08 17:40:04
哇呜哇呜哇呜哇呜
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • a404794938用户头像
  • a404794938
  • (a404794938)
  • 等 级:
#33楼 得分:0回复于:2009-08-08 17:43:53
行不行的啊???
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • wudao1992用户头像
  • wudao1992
  • (wudao1992)
  • 等 级:
#34楼 得分:0回复于:2009-08-09 00:59:00
zhi 到了
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • lvsss575用户头像
  • lvsss575
  • (lvsss575)
  • 等 级:
#35楼 得分:0回复于:2009-08-09 17:09:43

该回复于2009-08-09 23:17:57被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • taizans用户头像
  • taizans
  • (书生)
  • 等 级:
#36楼 得分:0回复于:2009-08-09 18:33:38
notice:)
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • nbaabc373760794用户头像
  • nbaabc373760794
  • (nbaabc373760794)
  • 等 级:
#37楼 得分:0回复于:2009-08-09 18:45:29
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • ProgrammerNO1用户头像
  • ProgrammerNO1
  • (dapong)
  • 等 级:
#38楼 得分:0回复于:2009-08-09 19:10:42
引用 26 楼 czbever 的回复:
这个是系统快捷方式存放的地方 我们可以通过类似StartExeCute(L"//Windows//“开始”菜单//联系人.lnk"); 这样子  就可以进联系人的界面


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

int WINAPI WinMain(HINSTANCE hInstance,
                  HINSTANCE hPrevInstance,
                  LPTSTR    lpCmdLine,
                  int      nCmdShow)
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • ProgrammerNO1用户头像
  • ProgrammerNO1
  • (dapong)
  • 等 级:
#39楼 得分:0回复于:2009-08-09 19:46:51
打开快捷方式或定位目标文件时出错,为什么会这样?
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • ITxixihaha用户头像
  • ITxixihaha
  • (xixihaha)
  • 等 级:
#40楼 得分:0回复于:2009-08-09 22:16:04
好东东!
帮了大忙
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • egceo用户头像
  • egceo
  • (郑广智)
  • 等 级:
#41楼 得分:0回复于:2009-08-10 02:11:06
mark
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • ProgrammerNO1用户头像
  • ProgrammerNO1
  • (dapong)
  • 等 级:
#42楼 得分:0回复于:2009-08-10 04:56:17
引用 40 楼 itxixihaha 的回复:
好东东!
帮了大忙


怎么解决的,快捷方式成功创建了,可是链接不到exe ,咋回事?
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • BEYONDMA用户头像
  • BEYONDMA
  • (beyond)
  • 等 级:
  • 3

#43楼 得分:0回复于:2009-08-10 07:05:37
精华!
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#44楼 得分:0回复于:2009-08-10 12:33:15
收帖 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • yangcongbo123456用户头像
  • yangcongbo123456
  • (yangcongbo123456)
  • 等 级:
#45楼 得分:0回复于:2009-08-10 14:37:09
不知道好不好用哦!
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • tvb5201314用户头像
  • tvb5201314
  • (tvb5201314)
  • 等 级:
#46楼 得分:0回复于:2009-08-11 13:27:58
不错~~~学习了~
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • daisuixin520用户头像
  • daisuixin520
  • (daisuixin520)
  • 等 级:
#47楼 得分:0回复于:2009-08-11 18:05:08
学习了
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • GuanMingSoft用户头像
  • GuanMingSoft
  • (GuanMingSoft)
  • 等 级:
#48楼 得分:0回复于:2009-08-11 23:51:50
mark
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • czbever用户头像
  • czbever
  • (骑着蜗牛看世界)
  • 等 级:
#49楼 得分:0回复于:2009-08-12 10:41:40
下面内容转自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);
}