私が間違っていなければ、フラッターは現時点で windows の win32 ライブラリで実装されています (フラッター ウィンドウは非常に初期の開発段階にあり、いつでも変更される可能性があるため、これは .NET または他のフレームワークに変更される可能性があると一部のドキュメント ページに記載されています)。後方互換性を維持しない場合)。現在のフラッター アプリの win32 ウィンドウ ハンドルを取得する方法はありますか?
質問する
839 次
2 に答える
4
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 で定義されているフラッターのウィンドウ クラス名です。ユーザーが複数のフラッター アプリケーションを実行している場合は、一意にすることができます。
toNativeUtf8 は dart ffi の関数です。
于 2021-06-28T11:50:21.517 に答える