私は同じ行で作業していますが、C#で作業しています。
システムにアプリケーションを登録する必要があります(RegisterHidNotification()関数を参照)。鉱山は、次のようになります。 `
void RegisterHidNotification() //Register this application to recieve all USB device notices
{
BroadcastHeader dbi = new BroadcastHeader();
int size = Marshal.SizeOf(dbi);
dbi.Size = size;
dbi.Type = DeviceType.DeviceInterface;
**dbi.Classguid = GUID_DEVINTERFACE_USB_DEVICE**;
dbi.Name = 0;
IntPtr buffer = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(dbi, buffer, true);
IntPtr r = RegisterDeviceNotification(this.Handle, buffer, (int)DeviceEvents.regWindowHandle);
if (r == IntPtr.Zero)
statusLabel.Text = GetLastError().ToString();
}`
機能の最も重要な部分は私が太字で強調しましたビットである(または少なくともしようとしました)。定義済み:public Guid GUID_DEVINTERFACE_USB_DEVICE = new Guid("A5DCBF10-6530-11D2-901F-00C04FB951ED");
あなたはあなたのアプリケーションにそれを適応させることができますように。
これは面白いです! – AndreasT
@AndreasT - ありがとう! – Skilldrick
まだあなたのプロジェクトがあるのかどうかは分かりませんが、参考のためにコピーを入手できれば疑問に思っていました。私はまだwndProcプロシージャをオーバーライドする方法を知らず、まだ良い例は見ていません。私はQtのためにプラットフォーム呼び出しのために良いものを見たことはありません。 ありがとうございます。 –