我的email: [email protected] 我给你源代码
解决方案 »
- 一个做linux开发的面试官告诉我'COM已死',该当场拆他的台吗?
- 播放流媒体的过程是怎样的?
- 有谁知道手写输入相关的实现方式吗?
- 对话框之间传值的小问题
- 急,怎样在静态控件上显示位图????
- 同情华为员工~~~
- 如何自定义控件的事件响应函数?
- d有C基础有C基础。才学c++.应该选什么.bc++5.0 还是 tc++. bc++有中文半的吗.或直接c++builder.vc++
- 关于数据库的小问题
- When maxmize a dialog, It corvered the taskbar and fulled the screen, How to make it displying as a normal dialog
- 为什么取得接口指针后,调用该接口方法错误?请各位救命。小弟刚注册,一共只有20分,先谢了
- 郁闷,想跳槽了。
WNDENUMPROC lpEnumFunc, // pointer to callback function
LPARAM lParam // application-defined value
);
hWnd = ::GetDesktopWindow();
if(!hWnd) return;
char str[1024] = {{0}};
while( hWnd = ::GetNextWindow(hWnd, GW_HWNDNEXT))//轮寻子窗口
{GetWindowText(hWnd, str, 1024);}
thank you very much
mail to:[email protected]
我使用::GetNextWindow(hWnd, GW_HWNDNEXT)时,它总是返回NULL。用这个办法我是不行了。
还是用EnumWindows函数?看了一下MSDN,这个函数使用好象有点麻烦?请教
FINDWINDOW
FINDWINDOWFROMPOINT
GETWINDOW
ENUMCHILDWINDOW
这些api组合起来用让你自由控制任何定层窗口和它们的子窗口或者控件窗口
WNDENUMPROC EnumWindowsProc,
LPARAM lParam)
和
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
String str;
::GetWindowText(hwnd,str);
}
#include <stdio.h>BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam);int main()
{
EnumWindows((WNDENUMPROC)EnumWindowsProc, 0); return 0;
}BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam)
{
char buf[255];
SendMessage(hwnd,WM_GETTEXT,254,(LPARAM)buf);
printf("%s\n",buf);
return TRUE;
}
用什么方法可以只列出有窗口的程序,后台程序不列出,怎么控制?
请教大家。
不懂就问,没有什么错吧?事必躬亲是很累的,呵呵!
我认为程序员最需要的就是多学习点,谦虚点,踏实点。你说我的时候表现出你比较浮躁哦。嘿嘿!
BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam)
{
char buf[255];
SendMessage(hwnd,WM_GETTEXT,254,(LPARAM)buf);
if(!GetParent(hwnd)&&IsWindowVisible(hwnd)&&strcmp(buf, "")!=0)
printf("%s\n",buf);
return TRUE;
}
我还是先回去学API吧!
#include "windows.h"BOOL _stdcall EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
char win_name[100];
if(IsWindowVisible(hwnd) && (GetParent(hwnd)==NULL) && GetWindow(hwnd,GW_OWNER)==NULL)
{
GetWindowText(hwnd,win_name,100);
if(win_name[0]!=0x0)
printf("The window is %s\n",win_name);
}
return TRUE;
}
void main ()
{
DWORD ThreadID=GetCurrentThreadId();
HDESK hDesk=GetThreadDesktop(ThreadID);
int result=EnumDesktopWindows(hDesk,&EnumWindowsProc,NULL);
}