如果我没记错的话,flutter 目前是使用 win32 库在 Windows 上实现的(尽管一些文档页面指出这可能会更改为 .NET 或其他一些框架,因为 flutter windows 处于非常早期的开发阶段,并且可能随时更改)时间而不保持向后兼容性)。有没有办法获取当前 flutter 应用程序的 win32 窗口句柄?
static final _user32 = DynamicLibrary.open('user32.dll');
static final findWindowA = _user32.lookupFunction<
Int32 Function(Pointer<Utf8> _lpClassName, Pointer<Utf8> _lpWindowName),
int Function(Pointer<Utf8> _lpClassName,
Pointer<Utf8> _lpWindowName)>('FindWindowA');
int hWnd = findWindowA('FLUTTER_RUNNER_WIN32_WINDOW'.toNativeUtf8(), nullptr);
print(hWnd);
'FLUTTER_RUNNER_WIN32_WINDOW' 是在 windows/runner/win32_window.cpp 中定义的 flutter 窗口类名称,您可以使其唯一,以防用户运行多个 flutter 应用程序。
toNativeUtf8 是 dart ffi 的一个函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)