public unsafe DirectMouse(Form form) { _form = form; _hWnd = form.Handle; if (_device == null) { using (var dinput = new DirectInput8W()) { _device = dinput.CreateDevice(SysGuid.GUID_SysMouse, null); } _device.SetDataFormat(DIDATAFORMAT.c_dfDIMouse).CheckError(); form.Deactivate += WndDeactivate; } }
public unsafe DirectKeyboard(Form form) { if (form == null) { throw new ArgumentNullException("form"); } _form = form; _hWnd = form.Handle; using (var dinput = new DirectInput8W()) { _device = dinput.CreateDevice(SysGuid.GUID_SysKeyboard, null); } _device.SetDataFormat(DIDATAFORMAT.c_dfDIKeyboard).CheckError(); _device.SetCooperativeLevel(_hWnd, DISCL.NONEXCLUSIVE | DISCL.FOREGROUND).CheckError(); form.Deactivate += WndDeactivate; TryAcquire(); _mapper.LoadMapFromString( global::ZXMAK2.Host.WinForms.Properties.Resources.Keyboard_Mdx); }
public MainWindow(MainWindowViewModel viewModel, CommandRunner commandRunner, ConfigurationManager configurationManager, TranslationService translationService, DynamicHttpClientProvider dynamicHttpClientProvider, InputDeviceManager inputDeviceManager) { this.viewModel = viewModel; this.commandRunner = commandRunner; this.configurationManager = configurationManager; DataContext = viewModel; InitializeComponent(); var helper = new WindowInteropHelper(this); WindowHandleStore.Handle = helper.EnsureHandle(); appConfig = configurationManager.Load(() => new AppConfig(translationService.DefaultLanguage)); if (!translationService.Load(appConfig.Language)) { translationService.Load(translationService.DefaultLanguage); } ViewModel.Model.MainContent = ApplicationContext.Global.Resolve <GeneralPanel>(); if (appConfig.ServerUrl != null) { var uri = new Uri($"http://{appConfig.ServerUrl}/api/"); dynamicHttpClientProvider.SetBaseAddress(uri); if (appConfig.AutoConnect) { // TODO autoconnect } } if (!appConfig.Minimized) { Show(); } IntPtr value; var hinst = DInput8.GetModuleHandle(null); var guid = IID.IID_IDirectInput8W; var x = DInput8.DirectInput8Create(hinst, 0x00000800, guid, out value, IntPtr.Zero); var err = System.Runtime.InteropServices.Marshal.GetLastWin32Error(); var directInput8W = new DirectInput8W(value); directInput8W.GetLifetimeService(); inputDeviceManager.Start(); }