解题思路(API):
(1)通过枚举句柄把所有窗口都列出来,EnumWindows或者FindWindow都可以。
(枚举出来窗体的是所有的进程的,任务栏中不一定可视。)
(2)查找符合下面条件的窗口句柄
a是窗口, IsWindow(hWnd)
b窗口是可见 IsWindowVisible(hWnd)
c有任务栏标题 GetWindowLong(hWnd, GWL_EXSTYLE) 和 WS_EX_TOOLWINDOW)!=WS_EX_TOOLWINDOW
d不存在父窗口 GetWindowLong(hWnd, GWL_HWNDPARENT)==0
(3)通过该句柄,随你怎么 *** 作了。
先用findwindow获取任务栏的句柄,然后调用getwindowrect获得高度。高度为0就是隐藏了。
也可以根据屏幕高度减去当前可用高度得到任务栏高度。
HWND hWnd = FindWindow("Shell_TrayWnd", NULL);RECT rc;
::GetWindowRect(hWnd, &rc);
int iHeight = rcbottom -rctop;
CMenu menu; BOOL b_test = menuCreatePopupMenu(); if(!b_test) return 0; menuAppendMenu(0, IDM_CLEAN, _T("clean")); menuAppendMenu(0, IDM_EXIT, _T("exit")); menuEnableMenuItem(IDM_CLEAN, MF_BYCOMMAND); menuEnableMenuItem(IDM_EXIT, MF_BYCOMMAND); SetForegroundWindow(); menuTrackPopupMenu(TPM_RIGHTBUTTON, ptx, pty, this);
use Win32::OLE;
$wmi = Win32::OLE->GetObject("winmgmts:\\\\\\root\\cimv2");
$procs = $wmi->ExecQuery("Select from Win32_Process");
foreach $m(in $procs)
{
print $m->name, "\n";
}
默认状态下Windows 7的任务栏预览窗口太小了,无法清晰地预览到某些文件或程序的大体内容。其实,只须调整一下Windows 7的任务栏预览窗口的大小,即可解决这一问题!
先单击“开始/运行”,在d出的“运行”对话框中输入Regedit,然后按下回车键,打开注册表编辑器并定位到 “HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer Taskband”分支下;接着在右边的空白区域,选择“新建/DWORD(32-位)值”,按照提示新建一个名为“MinThumbSizePx”的 DWORD值;再右击新建的该DWORD值,选择“修改”以打开“编辑DWORD(32位)值”对话框;最后勾选该对话框中的“十进制”单选框并在文本框输入具体数值(建议大家输入450),单击“确定”按钮即可。
告诉你几个重要参数
SystemParametersWorkAreaWidth;
SystemParametersWorkAreaHeight;
SystemParametersPrimaryScreenWidth;
SystemParametersPrimaryScreenHeight;
你要的参数这样算
SystemParametersPrimaryScreenHeight - SystemParametersWorkAreaHeight;
可以用SPY+抓取源头托盘程序试试看。
或者d出这个通知的肯定有一个源头的,用API定位到那个源头的程序,比如QQ的托盘图标等等,找到这个窗体的类,获取句柄,再截获这个程序的消息。应该是能办到的。
以上就是关于怎么用"VB"获取任务栏窗口标题列表到"List1"全部的内容,包括:怎么用"VB"获取任务栏窗口标题列表到"List1"、如何得到windows任务栏当前的停靠状态以及高度、VC++程序中如何获取任务栏关闭程序消息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)