6666|17

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问怎么控制Ce4.2系统的任务栏的显示和关闭? [复制链接]

   遇到一些使用ce4.2的一体机,有的机的方案把任务栏完全锁死,运行 explorer不会出来任务栏,也有的能出来,但一直在最下文隐藏,请问有没办法把任务栏调出来显示,显示后,又有什么办法能把它完全关闭(不是隐藏)应该是关闭explorer进程?

最新回复

还是不太清楚你想要怎么样。 在Explorer下去掉任务栏? 那只能隐藏了吧。 如果没有Explorer,那任务栏也就不会有了?  详情 回复 发表于 2008-1-14 12:05
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你到底想显示还是不想显示,,我看晕了
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
完全关闭,不好吧。隐藏就可以的!
但做应该是可以做的,不过不知道是否会有不好的后果。

CE4.2没有用来,在CE5.0下通过FindWindow()函数,得到任务栏窗体句柄。然后就可以进行隐藏或显示的操作,同理给句柄发DESTORY消息,应该可以关闭窗体。没有试过,LZ可以去试试。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
试了一下关闭explore后,机器就只能操作自己当前的程序了。
但是别的什么也干不了了。我用remote process viewer关闭的。

要显示任务栏是不是可以通过重设他的windows rect来实现呢。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
hTaskBar = ::FindWindow(TEXT("HHTaskBar"), NULL);
::ShowWindow(hTaskBar, SW_HIDE);

试试看。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢,这个有试过,有时不好用,还是显示不出来,不知道是否会有其它办法来锁定的
我想用程序控制它的显示和关闭(指完全关闭)
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
//显示
HWND hTaskBar   =   ::FindWindow(TEXT("HHTaskBar"),   NULL);
        ::ShowWindow(hTaskBar,   SW_RESTORE);

//隐藏
HWND hTaskBar   =   ::FindWindow(TEXT("HHTaskBar"),   NULL);
        ::ShowWindow(hTaskBar,   SW_HIDE);

在任务栏没有自动隐藏的情况下在wince 5.0 上是能正常控制显示和隐藏的。

在自动隐藏后,不能显示全部任务栏,只能显示一个小条。
使用MoveWindow也没能正常调出界面。


 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
据研究,任务栏的自动隐藏是根据注册表来判断的。
键值是
local_machine\software\microsoft\shell\autohide

设为空就取消了自动隐藏。在下次启动后生效。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
//显示
HWND   hTaskBar       =       ::FindWindow(TEXT("HHTaskBar"),       NULL);   
::ShowWindow(hTaskBar,       SW_RESTORE);   

//隐藏
HWND   hTaskBar       =       ::FindWindow(TEXT("HHTaskBar"),       NULL);   
::ShowWindow(hTaskBar,       SW_HIDE);  

因为不止这一个窗口,建议你看一下PUBLIC\SHELL\OAK\HPC\EXPLORER下taskbar.cpp和相关文件,能够找到相应的答案,具体的细节我也没研究过,我只做过把taskbar隐藏起来(不是显示一个小条),至于再显示出来没有试过.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
隐藏我是用
HWND hwndTaskBar = FindWindow(TEXT("HHTaskBar"), NULL);
if(hwndTaskBar)
{
    EnableWindow(hwndTaskBar, FALSE);
    ShowWindow(hwndTaskBar, SW_HIDE);
}

要在显示explorer,我是用如下的;
static SHELLEXECUTEINFO exeinfo;
memset(&exeinfo,0,sizeof(SHELLEXECUTEINFO));
exeinfo.cbSize = sizeof(SHELLEXECUTEINFO);
exeinfo.fMask = SEE_MASK_NOCLOSEPROCESS;
exeinfo.hwnd = NULL;
exeinfo.lpVerb = NULL;
exeinfo.lpParameters = NULL;
exeinfo.lpDirectory = NULL;
exeinfo.nShow = SW_SHOW;
exeinfo.hInstApp = NULL;                               
exeinfo.lpFile = TEXT("\\Windows\\explorer.exe");

if(!hwndTaskBar)
{
     hwndTaskBar = FindWindow(TEXT("HHTaskBar"), NULL);
     if(hwndTaskBar)
     {
               EnableWindow(hwndTaskBar, TRUE);
               ShowWindow(hwndTaskBar, SW_SHOW);
     }
}
  ShellExecuteEx(&exeinfo);
这样应该可以了。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

11
 
非常感谢各位的帮助,我试试
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
在不自动隐藏任务栏的情况下,用各位的办法是可以做到.

其实,我现在遇到的情况是,
1,有的机子用,exeinfo.lpFile   =   TEXT("\\Windows\\explorer.exe");
用执行explorer.exe的方法也不会出来任务栏;

2,在任务栏出来的情况下,有个程序会自动在托盘区显示个图标,如果任务栏没出来就不会显示,而这个图标的位置正好挡住输入法切换的图标,我是想要它不要出现在那个位置,只有个笨办法就是先把任务栏关闭. 问题就是怎么关闭它>就好比,
我要先调用,执行explorer.exe 任务栏出来,我现在是想怎么回到调用前的状态?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
你是想移掉任务栏的图标,
好象有个api,你可以用,
Shell_NotifyIcon(
  DWORD dwMessage,
  PNOTIFYICONDATA pnid
);
你自己去看下帮助。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

14
 
不好意思,可能是我表述问题,
图标不是在任务栏上,要不也不可能会挡住 输入法切换的图标
应该是它出现的位置在那里,
如果任务栏被关闭,它就不会出现在那个位置.

所以我要问的还是关闭任务栏.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 
问题还没解决,谢谢
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

16
 
//显示任务栏
void ShowTaskBar()
{
        HWND hwnd = ::FindWindow(_T("HHTaskBar"), NULL);
        ::ShowWindow(hwnd, SW_SHOW);
}

//隐藏任务栏
void HideTaskBar()
{
        HWND hwnd = ::FindWindow(_T("HHTaskBar"), NULL);
        ::ShowWindow(hwnd, SW_HIDE);
}

我一直是这么用的。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

17
 
问题并未解决,但要强制结贴了,郁闷
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

18
 
还是不太清楚你想要怎么样。
在Explorer下去掉任务栏?
那只能隐藏了吧。
如果没有Explorer,那任务栏也就不会有了?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表