我有一个提供跨平台应用程序 UI 的 dll。对于 Windows,底层平台使用 Win 32 API。我正在尝试创建一个包含此 dll 的 Win UI 3 应用程序并添加其他功能。具体来说,在调用启动窗口的 DLL 后,我希望能够获取该窗口(DLL 调用不返回任何内容,仅启动窗口)并以编程方式向其添加菜单。是否有可能做到这一点?正在寻找 C# 解决方案。
尝试以下代码:
using System.Runtime.InteropServices; … // Import winapi function from dll [DllImport(User32.dll)] static extern Uint32 FindWindowW(String className, String windowName); // Use it Uint32 window=FindWindowW(className, windowName); // Some code painting on window…
它使用 P/Invoke 导入名为 FindWindowW 的 win32api 函数。您已经使用 winapi 在该 dll 中创建了窗口,因此您可能知道它的名称或类名,然后您可以使用 FindWindowW 找到它。该函数返回窗口的句柄,然后您可以在应用程序中使用它。
欲了解更多信息,请参阅:
从dll调用win32函数,
和FindWindowW。
我对C#不太熟悉,希望对你有帮助。