对于C ++,我还是一个极端的菜鸟。我目前讨厌的事情之一(到目前为止)是winAPI中的1,000,000,000种不同类型的变量。我制作的这个用于检查窗口是否存在的小程序很快就制成了。但是最难的部分是什么?只需将“字符串”进行比较,看看是否匹配。最简单的部分是最难的部分!
不管怎么说,我的问题:我怎么能比一个要找到相当,看它们是否匹配?
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lparam){
TCHAR a[260];
string toFind = "Google Chrome";
hwnd = GetParent(hwnd);
GetWindowText(hwnd, a, sizeof(a));
if(strcmp(a,toFind) == 0){ //doesn't work
cout << "found the window";
}
return TRUE;
}
string
在这种情况下,您不应该使用a TCHAR[]
,然后将其与适当的包装器函数进行比较:
TCHAR toFind[] = _T("Google Chrome");
...
if (_tcscmp(a, toFind) == 0)
TCHAR
可能是char
或wchar_t
,取决于是否UNICODE
被定义(我当然希望它是在你的情况,这也可以解释为什么它不是直接的工作定义)。因此,如果您决定使用它(我绝对不会再为Windows 9x / ME编写软件,或者通常不支持Unicode的软件),那么您还必须遵守其规则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句