C++を使用してLinux(OpenSuse)でCaps Lock、Scroll Lock、Num Lockをオン/オフする簡単な方法はありますか?ファイルを使用する必要がありますか? いくつかのデバイスシミュレートキーストロークを制御したい。このソリューションは、単にキーボードのLEDを点灯するので、あなたが解決策を参照、 funcionあまりにもロックキャップを有効にする必要がある場合Linux上でCaps Lock、Scroll Lock、Num Lockキーをプログラマチックにオン/オフする方法
答えて
ソリューションは、1
、頭を行ってください。2.
// Linux header, no portable source
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
int fd_console = open("/dev/console", O_WRONLY);
if (fd_console == -1) {
std::cerr << "Error opening console file descriptor\n";
exit(-1);
}
// turn on caps lock
ioctl(fd_console, 0x4B32, 0x04);
// turn on num block
ioctl(fd_console, 0x4B32, 0x02);
// turn off
ioctl(fd_console, 0x4B32, 0x0);
close(fd_console);
return 0;
}
覚えておいてください/dev/console
というファイルに書き込むためにスーパーユーザー権限でプログラムを起動する必要があります。この溶液は、X11ウィンドウシステムマネージャと動作
EDIT
溶液2
(Linuxのほぼ標準です)。
// X11 library and testing extensions
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
int main(int argc, char *argv[]) {
// Get the root display.
Display* display = XOpenDisplay(NULL);
// Get the keycode for XK_Caps_Lock keysymbol
unsigned int keycode = XKeysymToKeycode(display, XK_Caps_Lock);
// Simulate Press
XTestFakeKeyEvent(display, keycode, True, CurrentTime);
XFlush(display);
// Simulate Release
XTestFakeKeyEvent(display, keycode, False, CurrentTime);
XFlush(display);
return 0;
}
注:複数のキーシンボルがheaderで見つけることができます。
スーパーユーザーの特権は、Windowsのように馬鹿げているようです。あなたは何かを許さなければならないとき、セキュリティの反対です。デーモンプロセスまたはこれを行うことができるものを設計し、非特権プロセスにAPIを提供することは可能でしょうか? –
[xdotool](https://github.com/jordansissel/xdotool)はどうですか? –
アナログのKDSETLED/KDGETLEDはウィンドウにありますか? – MaysSpirit
- 1. Emacsでcaps lock、num lock、shiftキーの状態を表示
- 2. Caps Lockにバインドする
- 3. 仮想キーボードでcaps lockキーを切り替える方法
- 4. OS X 10.8でCaps LockキーをControlに再マップする方法は?
- 5. Vimrc関数でCaps Lockを検出する方法
- 6. C#\ Lock \ lockインスタンスメンバVSロックスタティックメンバ
- 7. VIMのvimrcファイルでCAPS LOCKを一致させる方法
- 8. C-bをアンバインドし、接頭キーをcaps lock + aに設定する方法は?
- 9. C#(asp.net)、クライアント側のCaps Lock状態を確認する方法
- 10. 平均スタックでのCaps Lock警告バルーンの設定方法
- 11. Python dict.get()Lock
- 12. CPythonとスレッドモジュールLock()
- 13. asp.net File.Copy Lock
- 14. Fair Reentrant Lock C++
- 15. ConcurrentHashMapのlock()メソッド
- 16. MKMapView "lock" userTrackingMode
- 17. Android App Lock
- 18. ManualResetEventSlimとLock
- 19. SQLSERVER-LOCKエラー
- 20. マルチスレッドプログラムのLock()
- 21. LockはLockよりも適切なデフォルトですか?
- 22. Qt 4.7.4:CAPS LOCKのステータスを調べる方法はありますか?
- 23. タップするとApplescriptがCaps Lockにマップされます。 (MacOS Sierra)を押すとCaps Lockに制御されますか?
- 24. .lockファイルの処理
- 25. Qt(または任意のmac API)のCaps Lock状態
- 26. Caps Lockパスワード保護された画像UITextField
- 27. FAB with Android lock ring
- 28. CodeIgniterのとLOCKテーブル
- 29. 非キャッシュメモリのLOCK CMPXCHG?
- 30. MIFARE Ultralight C OTP Lock
[This(http://stackoverflow.com/questions/2171408/how-to-change-caps-lock-status-without-key-press)質問はPythonに関係しますが、基本的には同じです多かれ少なかれ、言語に依存しません。私はそれがPOSIXか、他のUnixによってサポートされているかどうかわかりません。 – Downvoter