Also ich habe mir mal schnell die MSDN Dok angeschaut und Dein ursprünglicher Code war definitief falsch konfiguriert.
MSDN sagt dazu:
Code:
VOID WINAPI keybd_event(
__in BYTE bVk,
__in BYTE bScan,
__in DWORD dwFlags,
__in ULONG_PTR dwExtraInfo
);
Man müsste also die Parameter als folgt definieren:
U8
U8
U32
Pointer sized integer
Die ursprüngliche Konfiguration verhaut durch die unterschiedlichen Parametergrössen den Stack, und WINAPI kann damit absolut nicht umgehen (wenn LabVIEW dazu nicht noch einen extra Stackframe und weitere Protection hinzufügt, was man in LAbVIEW 2010 mit dem Maximum Debug Level bei der Call Library Node erreicht), wobei die Funktion dann aber einen Fehler zurückgibt, da der Stack eigentlich zerschossen wurde. Und wenn man Pech hat kracht es auch trotz der extra Protection. Eigentlich ist das nicht Pech sondern Glück, denn auch wenn es auf der Entwickelmaschine in der CLN nur einen Fehler generiert statt zu krachen, kann das auf einem anderen System plötzlich doch in einen Crash enden.