使用 JScript 读取按键

发布于 2024-10-27 13:38:49 字数 316 浏览 6 评论 0原文

我正在尝试使用 Windows 脚本宿主(在任何浏览器之外,这是我的意图)做一个简单的 JScript 来读取用户按键,但找不到一种方法来完成以下操作:

function tap(e) {
    ...code...
}
document.onkeypress = tap;

我不是 Windows 系统编程人员(但是一个经验丰富的程序员),所以我不熟悉 ActiveX 小工具和服务等。 WScript 或 WSShell 没有提供打开窗口(而不是“文档”)的方法吗?

或者我是否被迫从浏览器运行它才能使其工作?看来太过分了...

I am trying to do a simple JScript using the Windows Script Host (outside any browser, was my intent) to read users keypresses, but can't find a way to do what amounts to:

function tap(e) {
    ...code...
}
document.onkeypress = tap;

I'm no Windows systems programming guy (but a seasoned programmer) so I'm unfamiliar with ActiveX gadgets and services and the like. Doesn't WScript or WSShell provide a way to open a window (instead of the 'document')?

Or am I forced to run this from a browser to make it work? Seems overkill...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

﹏半生如梦愿梦如真 2024-11-03 13:38:49

Windows Scripting Host 不提供任何 UI,至少不提供 GUI。

如果您使用 CScript.exe,则可以使用 StdIn、StdOut 等。请参阅 Wscript.StdIn.Read 方法

这些是可用于 Windows 脚本主机的大多数对象: main WSH 对象、字典和 FileSystem 对象派上用场:字典和文件系统对象

但是,如果您想要 GUI,那么您可以在 MSHTA.exe 中运行 HTA 文件,并使用 HTML/CSS/JavaScript 来处理您的 UI 需求,同时仍然使用 WSH 对象。

矫枉过正?好吧,列出您想要从 UI 中获得的内容。现在,您必须提供一种访问所有这些功能的机制。您的示例代码表明您希望以类似于 HTML-DOM-via-JavaScript 的方式来完成此操作。因此,您需要 HTML 解析器和 DOM 支持。看起来您希望访问浏览器此时提供的大部分内容。

Windows Scripting Host doesn't provide any UI, well, not a GUI at least.

If you use CScript.exe then you can use StdIn, StdOut, etc. See Wscript.StdIn.Read method.

These are most of the objects available for Windows Scripting Host: main WSH objects, the dictionary and FileSystem objects come in handy: Dictionary and FileSystem objects

But if you want a GUI, then you can run an HTA file in MSHTA.exe and use HTML/CSS/JavaScript to handle your UI needs and still use the WSH objects.

Overkill? Well, list what you want from your UI. Now, you'd have to provide a mechanism for accessing all those features. And your example code shows you'd want to do it in a HTML-DOM-via-JavaScript-like manner. So, you'd need an HTML parser and DOM support. Looks like you want access to most of what a browser provides at that point.

最偏执的依靠 2024-11-03 13:38:49

尝试

var tap = function (e) {
  ...code...
}

document.onkeypress = tap;

Try

var tap = function (e) {
  ...code...
}

document.onkeypress = tap;
手心的海 2024-11-03 13:38:49

我不认为 Windows 脚本宿主为键盘挂钩提供 API。最可靠的方法可能是创建一个实现键盘挂钩的 COM 组件(例如,在 C#/C++ 中)并根据需要在 JScript 中使用该对象的实例。

I don't think the Windows Script Host provides an API for keyboard hooks. The most reliable way to do this may be to create a COM component that implements a keyboard hook (in C#/C++, for example) and use an instance of that object in JScript as needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文