好的,所以我有一个 Microsoft Access 表单,其中包含一个我试图从 .Net 处理的文本框
我的表格如下:
使用 Spy++,我找到了我的文本框句柄。屏幕显示如下:
这个手柄是我的 PC 或 frmTest 独有的吗?例如,如果我在另一台计算机上打开 frmTest,我的文本框的句柄是否仍然是 001E1A6E?
谢谢
窗口句柄在创建窗口时分配。如果你多次运行一个应用程序,一个应用程序窗口每次都会获得一个新的窗口句柄。如果应用程序销毁并重新创建窗口,它也会获得一个新句柄。
句柄在进程中是唯一的。即您可以将窗口句柄传递给另一个应用程序,它仍然有效(与内核句柄不同)。我不确定它们是否在每个桌面或每个运行的 Windows 实例中都是唯一的。
您应该使用来自 Spy++ 的信息来创建一系列FindWindow(Ex)
调用,以获取所需控件的句柄。
它仅对于此窗口的此实例是唯一的。如果您完全退出 MS Access,然后再次启动您的应用程序,您将获得另一个句柄。