2009-05-13 6 views
0

Ich brauche eine Schnittstelle mit einer Programm-Suite, die benannte verwendet. Win32-Ereignisse (z. B. CreateEvent() API) zur Kommunikation zwischen laufenden Prozessen.Zugriff auf Win32 CreateEvent/SetEvent von WSH oder anderen nativen Windows-Programm

Ich bin der Lage, dies mit einigen sehr einfachen C-Code

h = CreateEvent(NULL, FALSE, FALSE, argv[1]); 
if (h != INVALID_HANDLE_VALUE) SetEvent(h); 

jedoch aufgrund politischen Fragen zu tun, ich kann nicht benutzerdefinierte Binärdateien auf Produktionsmaschinen installiert werden!

Gibt es eine Möglichkeit, dies mit Windows Scripting Host zu tun?

Ich könnte möglicherweise signierte Binärdateien zur Produktionsumgebung hinzugefügt bekommen - so könnte andere Skriptsprache realisierbar sein. Empfehlungen sind willkommen.

+0

CreateEvent() gibt NULL, nicht INVALID_HANDLE_VALUE zurück, wenn es fehlschlägt. –

Antwort

1

Wenn Sie nur ein Win32-Ereignis für normale Zwecke benötigen, können Sie PowerShell verwenden. Dadurch erhalten Sie Zugriff auf das .Net-Framework. Dadurch können Sie indirekt auf die API zugreifen, indem Sie eine verwaltete Ereignisklasse wie ManualResetEvent verwenden. Dies ist nur ein dünner Wrapper über den normalen CreateEvent-APIs.

0

Python verfügt über eine PyWin32-Bibliothek, mit der Sie Windows-API-Funktionen, einschließlich CreateEvent/SetEvent, verwenden können.

Im Allgemeinen (und mit unterschiedlichem Komfort) können Sie jede Sprache verwenden, die das Definieren und Aufrufen externer Funktionen ermöglicht (in diesem Fall von kernel32.dll).

1

Ich kann keine benutzerdefinierten Binärdateien auf Produktionsmaschinen installieren! ... ich möglicherweise signierte Binaries in der Produktionsumgebung hinzugefügt bekommen konnte

Ihre eigenen Binärdateien Zeichen.

Wer auch immer eine solche Richtlinie eingeführt hat, mit der Sie beliebige WSH-Programme, aber keine Binärdateien ausführen können, sollte für Ihr Code-Signatur-Zertifikat bezahlen.

Verwandte Themen