private void buttonSendRemoteButton_Click(object sender, EventArgs e) { AddStatusLine("Send Remote Button"); try { if (_client == null) { AddStatusLine(" - Not connected"); return; } if (!_client.Connected) { AddStatusLine(" - Connecting..."); return; } byte[] bytes = IrssMessage.EncodeRemoteEventData(textBoxRemoteDevice.Text, textBoxRemoteCode.Text); IrssMessage message = new IrssMessage(MessageType.ForwardRemoteEvent, MessageFlags.Notify, bytes); _client.Send(message); } catch (Exception ex) { AddStatusLine(ex.Message); } }
private static IntPtr InternalHookDelegate(int code, int wParam, IntPtr lParam) { try { if (code >= 0 && wParam == 256) { KeyboardHookStruct khs = new KeyboardHookStruct(lParam); int keyCode = khs.virtualKey; AppCommands appCommand = KeyCodeToAppCommand((Keys)khs.virtualKey); if (appCommand == AppCommands.None) { if (khs.virtualKey == (int)Keys.LShiftKey || khs.virtualKey == (int)Keys.LControlKey || khs.virtualKey == (int)Keys.RShiftKey || khs.virtualKey == (int)Keys.RControlKey) { return(CallNextHookEx(_hookHandle, code, wParam, lParam)); } if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) { keyCode |= 0x00100000; } if ((Control.ModifierKeys & Keys.Control) == Keys.Control) { keyCode |= 0x01000000; } if ((Control.ModifierKeys & Keys.Alt) == Keys.Alt) { keyCode |= 0x10000000; } } else { keyCode |= (((int)appCommand) << 8); } if (_registered) { byte[] bytes = IrssMessage.EncodeRemoteEventData("Keyboard", String.Format("{0:X8}", keyCode)); IrssMessage message = new IrssMessage(MessageType.ForwardRemoteEvent, MessageFlags.Notify, bytes); _client.Send(message); } if (_stealAppCommands && appCommand != AppCommands.None) { return(new IntPtr(1)); } } } catch (Exception ex) { IrssLog.Error(ex); } return(CallNextHookEx(_hookHandle, code, wParam, lParam)); }
internal static void ButtonPress(string keyCode) { #if TRACE Trace.WriteLine("ButtonPress: " + keyCode); #endif if (!_registered) { return; } byte[] bytes = IrssMessage.EncodeRemoteEventData(_device, keyCode); IrssMessage message = new IrssMessage(MessageType.ForwardRemoteEvent, MessageFlags.Notify, bytes); SendMessage(message); }