2

私は、user32.dll を利用して Excel UI でブラック マジックを実行する C# Excel VSTO アドインに取り組んでいます。私は 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);
4

1 に答える 1

5

さて、あなたが使用している通話は、そのように消えることはありません、彼らはここにとどまります。ただし、特にFindWindowEx非常に特殊な機能があるため、Microsoftの裁量でいつでも(マイナーアップデートを含む)名前やウィンドウクラスを変更できる子ウィンドウをExcelGUIで見つけようとしている可能性があります。

したがって、質問に答えるには、使用しているAPI関数について心配する必要はありませんが、期待を満たさないExcelバージョンでコードが誤動作しないようにするために、防御的にコーディングする必要があります(コード内の特定の子ウィンドウの存在)。

于 2012-07-03T20:25:16.817 に答える