16,466
社区成员
发帖
与我相关
我的任务
分享
HINSTANCE hNewExe=ShellExecute(NULL,"open",GetAppPath()+"VideoPlay\\video1.exe",NULL,GetAppPath()+"VideoPlay\\",SW_SHOW );
HWND hStartMenuIcon=::FindWindow("Button",NULL); //find startmenu icons
::ShowWindow(hStartMenuIcon,SW_HIDE);
但是这样的话退出程序,任务栏和开始菜单按钮还是隐藏状态
最终找到方法——设置任务栏自动隐藏
void AutoHideTaskBar(BOOL bHide)
{
//这三句视情况加于不加
#ifndef ABM_SETSTATE
#define ABM_SETSTATE 0x0000000a
#endif
LPARAM lParam;
if(bHide == TRUE)
{
lParam = ABS_AUTOHIDE;//自动隐藏
}
else
{
lParam = ABS_ALWAYSONTOP;//取消自动隐藏
}
APPBARDATA apBar;
memset(&apBar,0,sizeof(apBar));
apBar.cbSize = sizeof(apBar);
apBar.hWnd = ::FindWindow("Shell_TrayWnd", NULL);
if(apBar.hWnd != NULL)
{
apBar.lParam = lParam;
SHAppBarMessage(ABM_SETSTATE,&apBar); //设置任务栏自动隐藏
}
}
HWND hWnd = ::FindWindow(_T("shell_TrayWnd"),NULL);
if(hWnd) { ::ShowWindow(hWnd, bHide ? SW_HIDE:SW_SHOW); }