哪种是 Windows 7 小工具的首选开发语言?
我知道小工具使用 Xml、Html、CSS 和脚本(Java/VB),但我需要一些高级功能,例如:
- 写入/读取文件
- 获取正在运行的进程列表
- 将密钥发送到活动应用程序
对于上述任务,我将需要使用 Windows API,或者如果可能的话,使用 .NET。是否可以在小工具中具有上述功能?
哪种是 Windows 7 小工具的首选开发语言?
我知道小工具使用 Xml、Html、CSS 和脚本(Java/VB),但我需要一些高级功能,例如:
对于上述任务,我将需要使用 Windows API,或者如果可能的话,使用 .NET。是否可以在小工具中具有上述功能?
使用ActiveXObject
该类的 JScript 可以使用各种 COM 对象。您可以使用 .NET 编写自己的互操作程序集,但这会带来几个问题:
如果你决定你真的需要编写一个程序集。我建议,如果您正在为小工具编写自己的程序集,那么它是对小工具基本功能的扩展,并且您确保该小工具具有在用户无法使用该程序集时可用的功能。
我的公司对上述问题有一个尚未发布的解决方案,我们计划在不久的将来(即经过更多测试)向所有 Windows 桌面小工具开发人员提供该解决方案。
至于您指定的高级功能,这些都可以使用一些内置的 Windows COM 对象来完成,这些对象已经注册并且不随您的小工具一起分发,因此它们不会遇到上述相同的问题。作为对您的特定要求的回答,这些示例包括:
FileSystemObject
可以使用FileSystemObject来完成写入/读取文件。用于读取文件的 FileSystemObject 的一个基本示例是:
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
var oFile = oFSO.OpenTextFile(System.Gadget.path+"\\test.txt", ForReading, true);
var sText = oFile.ReadAll();
window.prompt("", sText);
Windows Management Instrumentation (WMI)
WMI有很多用途。但是,它的某些部分需要管理权限(必须应用于 sidebar.exe)。WMI 中的类之一是Win32_Process,可用于遍历正在运行的进程。请注意,在 JScript 中使用 WMI 比在 VBScript 中要困难得多,并且您在 Internet 上找到的大多数示例都是针对 VBScript 的(这使得移植代码很痛苦)。
Windows 脚本宿主 Shell WshShell 对象为 Windows 桌面小工具的限制提供了另一个很好的扩展,包括 SendKeys方法。尽管该方法不能专门用于向应用程序发送密钥,但可以使用AppActivate方法激活应用程序,然后使用 SendKeys 模拟已激活应用程序中的击键。
我希望这会有所帮助:-)