public void PlayMacro() { if (!Events.Any()) { return; } var eventsWrappedWithReleasingModKeys = ReleaseModifierKeys.ReleaseModKeysEvents .Concat(Events).Concat(ReleaseModifierKeys.ReleaseModKeysEvents); var serializedEventsByteArray = SerializeEventsToByteArray(eventsWrappedWithReleasingModKeys); InjectAndCaptureDll.InjectEvents(serializedEventsByteArray); }
private void PlayEvents_Click(object sender, RoutedEventArgs e) { if (!EventsObsColl.Any()) { return; } var serializedEventsByteArray = SerializeEventsToByteArray(EventsObsColl); var sizeOfCppBuffer = Marshal.SizeOf(serializedEventsByteArray[0]) * serializedEventsByteArray.Length; var cppBuffer = Marshal.AllocHGlobal(sizeOfCppBuffer); try { Marshal.Copy(serializedEventsByteArray, 0, cppBuffer, sizeOfCppBuffer); InjectAndCaptureDll.InjectEvents(cppBuffer, sizeOfCppBuffer); } finally { Marshal.FreeHGlobal(cppBuffer); } }