我即将开始从事 Windows 的可访问性项目(针对 XP 到 7),并希望得到一些关于使用托管代码与非托管代码的优缺点的建议。基本上,该软件需要能够从打开的窗口、访问菜单和其他常见功能程序(如 JAWS 或其他屏幕阅读器)中读取文本。问题是,我可以用 C# 做到这一点,还是需要使用 C++?
在过去的两年中,我一直在开发大量 C# 代码,因此似乎最快的入门方法是使用 System.Windows.Automation 命名空间。另一方面,我已经有一段时间没有进行过多的 C++ 或 COM 编程了,在使用非托管代码之前必须花一些时间来刷新。
将 C# 代码用于辅助功能软件有哪些限制?它们是否严重到足以证明花大量时间来更新我的 C++ 和 COM 技能是合理的,因为我遇到了很多使用托管代码不可能(或更困难)的事情?自动化命名空间是否与旧应用程序兼容(不使用 .NET 或 WPF)?