Dan*_*ing 2 winapi ui-automation
我正在使用C#Excel VSTO加载项,该加载项利用user32.dll与excel UI进行一些黑魔法.我在使用Win32方面不是很有经验,我想知道:
我是否需要担心确保应用程序适用于XP及之后的所有Windows版本?或者假设我的Win32调用将在所有这些版本中一致地工作是否合理?
编辑:这是我正在使用的电话:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static public extern IntPtr FindWindowEx(IntPtr hWnd, IntPtr hChild, string strClassName, string strName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static public extern bool IsWindowVisible(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static public extern bool IsWindowEnabled(IntPtr hWnd);
Run Code Online (Sandbox Code Playgroud)
好的,你正在使用的电话不会像这样消失,它们会留在这里.但是,特别是FindWindowEx具有非常特定的功能,因此很可能您正在尝试在Excel GUI中查找子窗口,其名称和/或窗口类可以随时更改(包括通过次要更新),由Microsoft自行决定.
所以回答你的问题:不用担心你正在使用的API函数,但是你必须进行防御性编码,以确保你的代码在不满足期望的Excel版本上没有行为错误(关于在您的代码中存在特定的子窗口.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |