我需要与使用named的程序套件接口。 Win32事件(例如,CreateEvent()
API)在正在运行的进程之间进行通信。
我可以用一些非常简单的C代码
来做到这一点 h = CreateEvent(NULL, FALSE, FALSE, argv[1]);
if (h != INVALID_HANDLE_VALUE) SetEvent(h);
但是,由于政策问题,我无法在生产机器上安装自定义二进制文件!
有没有办法在Windows Scripting Host中执行此操作?
我可能会将已签名的二进制文件添加到生产环境中 - 因此其他脚本语言可能是可行的。欢迎提出建议。
答案 0 :(得分:1)
如果您只需要Win32事件用于正常事件,则可以使用PowerShell。这将使您可以访问.Net框架。这将允许您使用托管事件类(如ManualResetEvent)间接访问API。这只是普通CreateEvent API之上的一个瘦包装器。
答案 1 :(得分:1)
我无法在生产机器上安装自定义二进制文件! ... 我可能会将已签名的二进制文件添加到生产环境中
签署您自己的二进制文件。
无论是谁制定了允许您运行任意WSH程序但不运行二进制文件的策略,都应支付代码签名证书。
答案 2 :(得分:0)
Python有一个PyWin32库,允许您使用Windows API函数,包括CreateEvent / SetEvent。
一般情况下(并且具有不同的便利程度),您可以使用任何允许定义和调用外部函数的语言(在本例中来自kernel32.dll)。