GNU/Linux >> Linux の 問題 >  >> Linux

C++ Linux:モニターのリフレッシュ レートを取得する

XRandr API (man 3 Xrandr) を使用します。例については、こちらを参照してください:

  • http://www.blitzbasic.com/Community/posts.php?topic=86911

xrandr(1) のコードも参照できます。

Edit1:後世のために:

サンプルコードは少し調整されているため、デモのようになります:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <iostream>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xrandr.h>

int main()
{
    int num_sizes;
    Rotation current_rotation;

    Display *dpy = XOpenDisplay(NULL);
    Window root = RootWindow(dpy, 0);
    XRRScreenSize *xrrs = XRRSizes(dpy, 0, &num_sizes);
    //
    //     GET CURRENT RESOLUTION AND FREQUENCY
    //
    XRRScreenConfiguration *conf = XRRGetScreenInfo(dpy, root);
    short current_rate = XRRConfigCurrentRate(conf);
    SizeID current_size_id = XRRConfigCurrentConfiguration(conf, &current_rotation);

    int current_width = xrrs[current_size_id].width;
    int current_height = xrrs[current_size_id].height;
    std::cout << "current_rate = " << current_rate << std::endl;
    std::cout << "current_width = " << current_width << std::endl;
    std::cout << "current_height = " << current_height << std::endl;

    XCloseDisplay(dpy);
}

コンパイル:

g++ 17797636.cpp -o 17797636 -lX11 -lXrandr

出力:

$ ./17797636 
current_rate = 50
current_width = 1920
current_height = 1080

Linux
  1. Linux でインターフェイスの IP アドレスを取得する

  2. C++ を使用して Linux で合計 CPU 使用率を取得する方法

  3. Linuxでキーボードの状態を取得するにはどうすればよいですか?

  1. Cを使用してLinuxでCPUの数を取得するには?

  2. Linux でプログラムの起動を検出する方法は?

  3. LinuxでCからIPアドレスを設定する方法

  1. Linuxdfコマンドを最大限に活用するための4つのヒント

  2. CからLinuxで現在のファイル(pwd)へのパスを取得する方法は?

  3. Linuxでファイルの物理サイズを取得するには?