Windows 7小工具 - 用于开发的编程语言

时间:2009-11-09 19:40:59

标签: windows-7 windows-desktop-gadgets

Windows 7小工具的首选开发语言是什么?

我知道小工具使用Xml,Html,CSS和脚本(Java / VB),但我需要一些高级功能,例如:

  1. 撰写/阅读文件
  2. 获取正在运行的进程列表
  3. 将密钥发送到活动应用程序
  4. 对于上述任务,我需要使用Windows API,如果可能,还需要使用.NET。是否可以在小工具中使用上述功能?

1 个答案:

答案 0 :(得分:4)

使用ActiveXObject类,JScript可以使用各种COM对象。您可以使用.NET编写自己的互操作程序集,但这会引入一些问题:

  • 程序集中的每个公共类都需要在使用前在主机上注册。在x64中写入和创建键时会出现问题,WScript.Shell对象在注册表的某些部分会遇到困难。但是,WMI适用于注册。
  • 从实例化开始,即使小工具已关闭,程序集dll也会被锁定,无法删除。当卸载/软件更新发挥作用时,这主要是一个问题。 sidebar.exe进程结束后,文件将解锁。
  • 即使使用WMI,取消注册似乎也存在问题。定时取消注册通常是一个问题(您是在卸载时还是在实例化后执行此操作?如果有多个小工具使用它打开怎么办?)。此外,如果他/她决定不保留您的小工具,则取消注册不会在用户的计算机上留下不需要的注册表项。
  • 如果小工具100%依赖于程序集,并且由于某种原因,程序集无法在用户的计算机上注册,则该小工具的整个体验对该用户不可用。为Windows Live Gallery上的一些评价较低的评论做好准备。

如果您确定需要编写程序集。我建议,如果您为小工具编写自己的程序集,它是小工具基本功能的扩展,并且如果用户无法使用程序集,则确保小工具具有可用功能。

我的公司有一个尚未发布的上述问题的解决方案,我们计划在不久的将来(即经过更多测试后)向所有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中使用WMI要困难得多,并且在互联网上找到的大多数示例都是针对VBScript的(这使得移植代码变得很麻烦)。

Windows脚本宿主外壳 WshShell Object为Windows桌面小工具的限制提供了另一个很好的扩展,包括SendKeys方法。虽然该方法不能用于专门向应用程序发送密钥,但可以使用AppActivate方法激活应用程序,然后使用SendKeys模拟激活的应用程序中的按键。

我希望有帮助: - )