ここにあるJava HIDAPIラッパーを使用して、Javaプログラムを介してHIDパケットをRGBキーボードに送信することにより、RGBキーボードのLEDを設定しようとしています。
これまでのところ成功していますが、Linux ラップトップでのみです。Windows でコードを実行しようとすると、「無効な関数」というエラーが表示されます。これは、システム エラー 0x1, ERROR_INVALID_FUNCTIONと同等であると想定しています。
このサンプル コードは Windows では動作しませんが、Linux では動作します。(コマンドの先頭に「sudo」を付けて端末から実行した場合。)
// Device is found prior to this...
if (device != null) {
device.disableBlocking();
// Initialise the buffer, and send it. PACKET_SIZE is 264
byte[] buffer = new byte[PACKET_SIZE];
for (int i = 0; i < PACKET_SIZE; i++) { buffer[i] = (byte)0x00; }
// These bytes are required for it to actually change the LED's.
buffer[0] = 0x07;
buffer[1] = 0x0E;
buffer[2] = 0x01;
buffer[3] = 0x01;
try {
// Actually send the data.
device.sendFeatureReport(buffer);
}
// Handle I/O exceptions
catch (IOException e) {
e.printStackTrace();
}
// Close the device.
device.close();
}
else {
System.err.println("DEVICE IS NULL");
}
管理者として実行してみましたが、残念ながら違いはありません...
私の質問が十分に明確でない場合は、お知らせください。さらに明確にするよう努めます。
どんな助けでも大歓迎です!私はこれに対する解決策を見つけるために必死になっています!:)
OS のバージョン (重要な場合):
Linux Ubuntu 18.04
Windows 8.1