void CBrowserDlgDlg::OnButton1()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
CWnd *pWnd = NULL;
HWND hWnd;
// hWnd = ::FindWindow(NULL, _T("\\C\\index.htm"));
hWnd = ::FindWindow(NULL, _T("\\C\\七仔.txt"));
if(!hWnd)
{
AfxMessageBox( _T("FindWindow 失败") );
return;
}
pWnd = (CWnd*)GetWindowLong(hWnd, GWL_WNDPROC);
GetCurrentPermissions();
SetProcPermissions(0xFFFFFFFF);
}
我明明index.htm和七仔.txt已经打开,但是还是出现("FindWindow 失败") ,为什么啊?
13 个解决方案
#1
你窗体名有问题吧,用SPY++看看倒底是什么名称的窗体名。
#2
不好意思,什么是SPY++啊?
#3
打开你的开始菜单在VS2005/vs2003下都有一个REMOTE TOOLS的选项,打开SPY++和你的终端连上,看看窗口的名称.呵呵.
#4
我知道了,如果用SPY++的话,是不是就要先打开index.htm和七仔.txt窗口,然后用SPY++里面的Search\Find Window对话框里面的那个十字坐标,把它移动到我要找的已经打开的窗口上,看看窗口名称阿?
如果是的话,我现在遇到两个问题:
一来我的终端设备(一台WinCE5.0的开发板)和我的PC机连接上以后,就算在我的终端设备上打开文件窗口,在我的PC机上也是看不见的,怎么用SPY++里面的那个Find Window的十字坐标呢?
二来我把终端设备的index.htm和七仔.txt复制到PC的桌面上,用SPY++的Search\Find Window,把十字坐标移到指定的窗口上,按OK出现的是:Cannot find window which matchs search criteria。难道在PC机上还有看的到的窗口,而查不到窗口信息的窗口吗?
如果是的话,我现在遇到两个问题:
一来我的终端设备(一台WinCE5.0的开发板)和我的PC机连接上以后,就算在我的终端设备上打开文件窗口,在我的PC机上也是看不见的,怎么用SPY++里面的那个Find Window的十字坐标呢?
二来我把终端设备的index.htm和七仔.txt复制到PC的桌面上,用SPY++的Search\Find Window,把十字坐标移到指定的窗口上,按OK出现的是:Cannot find window which matchs search criteria。难道在PC机上还有看的到的窗口,而查不到窗口信息的窗口吗?
#5
Find Window的参数是你打开窗口的标题名(左上角)或者是对应的类名,你的程序参数有误,
#6
这个函数,错误肯定是参数传的不对啦!
啊!在PC上Find终端上的,LZ真强!!!要找终端上的窗体,只能运行终端上的程序。
啊!在PC上Find终端上的,LZ真强!!!要找终端上的窗体,只能运行终端上的程序。
#7
没有用过这个函数,学习一下
#8
你把你的程序放到wince上运行
#9
晕啊!!!我现在已经在PC机上创建了一个txt文档,名字就为AT.txt,就用英文名字试试看,结果在CE调试板上,随便我执行:
hWnd = ::FindWindow(NULL, _T("\\C\\AT.txt"));
或者
hWnd = ::FindWindow(NULL, _T("\\C\\AT"));
if(!hWnd)
{
AfxMessageBox( _T("FindWindow 失败") );
return;
}
结果都是显示:"FindWindow 失败"的对话框。
晕!这是为什么啊?
难道AT文件名还不对?
hWnd = ::FindWindow(NULL, _T("\\C\\AT.txt"));
或者
hWnd = ::FindWindow(NULL, _T("\\C\\AT"));
if(!hWnd)
{
AfxMessageBox( _T("FindWindow 失败") );
return;
}
结果都是显示:"FindWindow 失败"的对话框。
晕!这是为什么啊?
难道AT文件名还不对?
#10
"\\C\\AT"中的C是什么啊?目录名吗?
我认为:你的参数还是错的,
比如在xp下,打开at.txt文件,它的标题应该是“at.txt - 记事本”
这才是你应该使用的参数,你写的这两个不像啊。
我认为:你的参数还是错的,
比如在xp下,打开at.txt文件,它的标题应该是“at.txt - 记事本”
这才是你应该使用的参数,你写的这两个不像啊。
#11
对的,“C”是目录名字,难道不用加目录名吗?
#12
我刚才试过了,确实是盘符路径错了,是不需要加盘符路径“C”的。这样的话,就不会弹出("FindWindow 失败") 对话框报错了。谢谢高手,非常感谢!!!
#13
请问,终端上有那些程序可以查找wince上的类名呢
#1
你窗体名有问题吧,用SPY++看看倒底是什么名称的窗体名。
#2
不好意思,什么是SPY++啊?
#3
打开你的开始菜单在VS2005/vs2003下都有一个REMOTE TOOLS的选项,打开SPY++和你的终端连上,看看窗口的名称.呵呵.
#4
我知道了,如果用SPY++的话,是不是就要先打开index.htm和七仔.txt窗口,然后用SPY++里面的Search\Find Window对话框里面的那个十字坐标,把它移动到我要找的已经打开的窗口上,看看窗口名称阿?
如果是的话,我现在遇到两个问题:
一来我的终端设备(一台WinCE5.0的开发板)和我的PC机连接上以后,就算在我的终端设备上打开文件窗口,在我的PC机上也是看不见的,怎么用SPY++里面的那个Find Window的十字坐标呢?
二来我把终端设备的index.htm和七仔.txt复制到PC的桌面上,用SPY++的Search\Find Window,把十字坐标移到指定的窗口上,按OK出现的是:Cannot find window which matchs search criteria。难道在PC机上还有看的到的窗口,而查不到窗口信息的窗口吗?
如果是的话,我现在遇到两个问题:
一来我的终端设备(一台WinCE5.0的开发板)和我的PC机连接上以后,就算在我的终端设备上打开文件窗口,在我的PC机上也是看不见的,怎么用SPY++里面的那个Find Window的十字坐标呢?
二来我把终端设备的index.htm和七仔.txt复制到PC的桌面上,用SPY++的Search\Find Window,把十字坐标移到指定的窗口上,按OK出现的是:Cannot find window which matchs search criteria。难道在PC机上还有看的到的窗口,而查不到窗口信息的窗口吗?
#5
Find Window的参数是你打开窗口的标题名(左上角)或者是对应的类名,你的程序参数有误,
#6
这个函数,错误肯定是参数传的不对啦!
啊!在PC上Find终端上的,LZ真强!!!要找终端上的窗体,只能运行终端上的程序。
啊!在PC上Find终端上的,LZ真强!!!要找终端上的窗体,只能运行终端上的程序。
#7
没有用过这个函数,学习一下
#8
你把你的程序放到wince上运行
#9
晕啊!!!我现在已经在PC机上创建了一个txt文档,名字就为AT.txt,就用英文名字试试看,结果在CE调试板上,随便我执行:
hWnd = ::FindWindow(NULL, _T("\\C\\AT.txt"));
或者
hWnd = ::FindWindow(NULL, _T("\\C\\AT"));
if(!hWnd)
{
AfxMessageBox( _T("FindWindow 失败") );
return;
}
结果都是显示:"FindWindow 失败"的对话框。
晕!这是为什么啊?
难道AT文件名还不对?
hWnd = ::FindWindow(NULL, _T("\\C\\AT.txt"));
或者
hWnd = ::FindWindow(NULL, _T("\\C\\AT"));
if(!hWnd)
{
AfxMessageBox( _T("FindWindow 失败") );
return;
}
结果都是显示:"FindWindow 失败"的对话框。
晕!这是为什么啊?
难道AT文件名还不对?
#10
"\\C\\AT"中的C是什么啊?目录名吗?
我认为:你的参数还是错的,
比如在xp下,打开at.txt文件,它的标题应该是“at.txt - 记事本”
这才是你应该使用的参数,你写的这两个不像啊。
我认为:你的参数还是错的,
比如在xp下,打开at.txt文件,它的标题应该是“at.txt - 记事本”
这才是你应该使用的参数,你写的这两个不像啊。
#11
对的,“C”是目录名字,难道不用加目录名吗?
#12
我刚才试过了,确实是盘符路径错了,是不需要加盘符路径“C”的。这样的话,就不会弹出("FindWindow 失败") 对话框报错了。谢谢高手,非常感谢!!!
#13
请问,终端上有那些程序可以查找wince上的类名呢