GNU/Linux >> Belajar Linux >  >> Linux

C++ Linux:Dapatkan kecepatan refresh monitor

Gunakan XRandr API (man 3 Xrandr). Lihat di sini sebagai contoh:

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

Anda juga dapat melihat kode untuk xrandr(1).

Sunting1:Demi anak cucu:

Kode contoh sedikit disesuaikan sehingga lebih seperti demo:

#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);
}

Kompilasi dengan:

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

Keluaran:

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

Linux
  1. Linux – Bagaimana Cara Mendapatkan Nama Sistem Operasi yang Andal?

  2. Dapatkan alamat IP dari sebuah antarmuka di Linux

  3. Cara mendapatkan total penggunaan cpu di Linux menggunakan C++

  1. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  2. Bagaimana cara mendeteksi peluncuran program di Linux?

  3. Cara mengatur alamat IP dari C di linux

  1. 4 tips untuk membantu Anda mendapatkan hasil maksimal dari perintah df Linux

  2. Bagaimana cara mendapatkan jumlah CPU di Linux menggunakan C?

  3. Bagaimana cara mendapatkan path ke file saat ini (pwd) di Linux dari C?