本文整理汇总了C#中Device.SetEventNotification方法的典型用法代码示例。如果您正苦于以下问题:C# Device.SetEventNotification方法的具体用法?C# Device.SetEventNotification怎么用?C# Device.SetEventNotification使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Device
的用法示例。
在下文中一共展示了Device.SetEventNotification方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: gamePad
public gamePad(Guid gamepadInstanceGuid, bool autoPoll)
{
device = new Device(gamepadInstanceGuid);
device.SetDataFormat(DeviceDataFormat.Joystick);
if (autoPoll == true)//If autopoll is on then continuous poll the pad in a seperate thread and return the results every change
{
new Thread(new ThreadStart(PollPad)).Start();//Start polling gamepad for buttons
device.SetEventNotification(gamePadUpdate);
}
device.Acquire();
}
示例2: DInputHook
public DInputHook(IntPtr hWnd)
{
this.hWnd = hWnd;
keyboard = new Device(SystemGuid.Keyboard);
keyboardUpdated = new AutoResetEvent(false);
keyboard.SetCooperativeLevel(hWnd, CooperativeLevelFlags.NonExclusive | CooperativeLevelFlags.Background);
keyboard.SetEventNotification(keyboardUpdated);
appShutdown = new ManualResetEvent(false);
threadloop = new Thread(new ThreadStart(ThreadFunction));
keyboard.Acquire();
threadloop.Start();
}
示例3: AttachImpl
private void AttachImpl(IntPtr window, CooperativeLevelFlags cooperativeLevelFlags)
{
if (this.running) {
throw new InvalidOperationException("Already attached");
}
int index = 2;
this.running = true;
lock (this.syncRoot) {
List<AutoResetEvent> resets = new List<AutoResetEvent>();
foreach (DeviceInstance di in Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)) {
AutoResetEvent reset = new AutoResetEvent(false);
var d = new Device(di.InstanceGuid);
d.Properties.BufferSize = 10;
d.SetCooperativeLevel(window, cooperativeLevelFlags);
d.SetDataFormat(DeviceDataFormat.Joystick);
d.SetEventNotification(reset);
d.Acquire();
resets.Add(reset);
this.joysticks.Add(di.InstanceGuid, d);
this.joystickIndexes.Add(index++, di.InstanceGuid);
}
this.waits = new AutoResetEvent[this.joysticks.Count + 2];
this.waits[0] = new AutoResetEvent(false);
this.keyboard = new Device(SystemGuid.Keyboard);
this.keyboard.Properties.BufferSize = 10;
this.keyboard.SetCooperativeLevel(window, cooperativeLevelFlags);
this.keyboard.SetDataFormat(DeviceDataFormat.Keyboard);
this.keyboard.SetEventNotification(this.waits[0]);
this.keyboard.Acquire();
this.waits[1] = new AutoResetEvent(false);
this.mouse = new Device(SystemGuid.Mouse);
this.mouse.Properties.BufferSize = 10;
this.mouse.SetCooperativeLevel(window, cooperativeLevelFlags);
this.mouse.SetDataFormat(DeviceDataFormat.Mouse);
this.mouse.SetEventNotification(this.waits[1]);
this.mouse.Acquire();
resets.CopyTo(this.waits, 2);
}
(this.inputRunnerThread = new Thread(InputRunner) {
Name = "DirectInput Runner",
IsBackground = true
}).Start();
}