如何判断IE是否首次运行 我最近需要做一个程序,需要在【新的】IE窗口启动的时候进行操作。比如:我现在启动了IE,我的程序就执行一个函数。 然后我又打开了一个IE,我的程序就又执行这个函数。问题:我如何判断当前的IE是否是新打开的,不是已经函数处理过的IE窗口。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SetProp 函数功能:该函数在指定窗口的属性表中增加一个新项,或者修改一个现有项。如果指定的字符串不在属性表中,那么就增加该新的项,新项中包含该字符串和句柄,否则就用指定的句柄替换该字符串的全前句柄。 函数原型:BOOL SetProp(HWND hWnd,LPCTSTR lpString,HANDLE hData); 参数: hWnd:指向窗口的句柄,该窗口的属性表要接收一个新项。 lpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,么它必须是以前使用GlobalAddAtom函数创建的。原子是16位的数据值,它必须是放置在lpstring参数低位字中,而高位字必须为O。 hData:指向要拷贝到属性表中的数据的句柄。该数据句柄可以标识任何对应用程序有用的值。 返回值:如果该数据句柄和字符串以加到属性表中,那么返回值为非零。如果该函数失败,那么返回为零。若想获得更多错误信息,请调用GetLastError函数。GetProp 函数功能:该函数从给定窗口的属性列表中检索数据句柄。给定的字符串标识了要检索的句柄。该字符串和句柄必须在前一次调用SetProp函数时已经加到属性表中。 函数原型:HANDLE GetProp(HWND hWnd,LPCTSTR lpString); 参数: hWnd:指向要搜索属性表的窗口。 LpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,那么它必须是使用GlobalAddAtom函数创建的。原子是16位的数据值,它必须是放置在lpstring参数的低位率中,而高位字必须为O。 返回值:如果属性表中包含了给定的字符串,那么返回值为相关的数据句柄。否则,返回值为NULL。 TO 1楼:如果保存起来的话,一直用IE上网的话,句柄最后太多,数量不好把握,最终CPU受不了。 TO 2楼:BOOL SetProp(HWND hWnd,LPCTSTR lpString,HANDLE hData); 最后一个参数HANDLE hData ,我需要传递一个什么值,我的程序是控制台程序,没有this指针。 随便写什么数据,强制转换成HANDLE就成。我说,你不会Google啊? TO 5楼:我设定了 : SetProp(hIEhwnd,"abababab",(HANDLE)1); SetIeUrl(hIEhwnd);然后我读取: char szStr[256] = {0}; GetProp(hIEhwnd,szStr); cout<<szStr<<endl; 结果:读取回来的szStr就不是"abababab"。 可以用全局WH_SHELL钩子,在Shell启动一个进程时,判断该进程是否IE进程,然后再调用你的相关操作.详细信息可见msdn的 SetWindowsHookEx 函数 句柄强制转换成一个DWORD来保存就行了。 从.txt文件画波形的算法。谢谢! 收藏功能是不是不支持繁體? 如何编一个全线程快捷键(类似系统快捷键) 请问Active控件使用问题 如何改变ListBox的背景色 有关FTP.(在线等待,来者有分,5分钟结贴) 读取远端电脑XML文件 我的VC++6.0哪里出问题了 为什么用Media Player 播放avi文件的时候没法出图象? 请问如何用winpcap里面的“设置过滤器”功能?谢谢 SetFocus:输入焦点问题! vs2008 ado 连接 sql2000的问题,急
函数原型:BOOL SetProp(HWND hWnd,LPCTSTR lpString,HANDLE hData);
参数:
hWnd:指向窗口的句柄,该窗口的属性表要接收一个新项。
lpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,么它必须是以前使用GlobalAddAtom函数创建的。原子是16位的数据值,它必须是放置在lpstring参数低位字中,而高位字必须为O。
hData:指向要拷贝到属性表中的数据的句柄。该数据句柄可以标识任何对应用程序有用的值。
返回值:如果该数据句柄和字符串以加到属性表中,那么返回值为非零。如果该函数失败,那么返回为零。若想获得更多错误信息,请调用GetLastError函数。GetProp 函数功能:该函数从给定窗口的属性列表中检索数据句柄。给定的字符串标识了要检索的句柄。该字符串和句柄必须在前一次调用SetProp函数时已经加到属性表中。
函数原型:HANDLE GetProp(HWND hWnd,LPCTSTR lpString);
参数:
hWnd:指向要搜索属性表的窗口。
LpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,那么它必须是使用GlobalAddAtom函数创建的。原子是16位的数据值,它必须是放置在lpstring参数的低位率中,而高位字必须为O。
返回值:如果属性表中包含了给定的字符串,那么返回值为相关的数据句柄。否则,返回值为NULL。
BOOL SetProp(HWND hWnd,LPCTSTR lpString,HANDLE hData);
最后一个参数HANDLE hData ,我需要传递一个什么值,我的程序是控制台程序,没有this指针。
我设定了 :
SetProp(hIEhwnd,"abababab",(HANDLE)1);
SetIeUrl(hIEhwnd);然后我读取:
char szStr[256] = {0};
GetProp(hIEhwnd,szStr);
cout<<szStr<<endl; 结果:读取回来的szStr就不是"abababab"。
详细信息可见msdn的 SetWindowsHookEx 函数