Qt初学者,求教 FindWindow用法
Qt菜鸟,求教 FindWindow用法我在windows下面做desktop程序,需要获取其他程序的窗口句柄,在使用FindWindow
Qt菜鸟,求教 FindWindow用法
我在windows下面做desktop程序,需要获取其他程序的窗口句柄,在使用FindWindow函数的使用,老是无法编译通过。
C/C++ codeint MainWindow::getIJPASFreq(){ HWND hwind = ::FindWindowW(NULL,QString::fromUtf8("IJPAS").toStdWString().c_str()); if(!hwind) QMessageBox::information(this,tr("Warning"),tr("can't get IJPAS Window Handle!")); return 0;}
报错内容为:
mainwindow.obj : error LNK2019: 无法解析的外部符号 __imp__FindWindowW@8,该符号在函数 "private: int __thiscall MainWindow::getIJPASFreq(void)" (?getIJPASFreq@MainWindow@@AAEHXZ) 中被引用
[解决办法]这是Windows SDK的内容。估计是忘了包含头文件windows.h的原因。
[解决办法]直接使用FindWindow
[解决办法]窗口构造的时候调用: setAccessibleName(strName)
下面是需要查找的地方:
QWidget* GetWidgetPtrByName(QString strWidget)
{
QWidgetList widgetLst;
QWidget *pWidget = NULL;
QString strName;
widgetLst = qApp->allWidgets();
for(int i = 0; i < widgetLst.size(); i++)
{
pWidget = widgetLst.at(i);
strName = pWidget->accessibleName();
if(strName == strWidget)
{
break;
}
}
return pWidget;
}
我这个是在linux下面这样做的,windows下应该也可以的,试试看。。