Results 1 to 1 of 1

Thread: Cross-Platform Process Information Library (UTF-8 Support)

  1. #1

    Thread Starter
    Junior Member
    Join Date
    Jan 2018

    Cross-Platform Process Information Library (UTF-8 Support)

    Too much code to fit the character limit, so I'll just be linking to the repository on GitHub:

    Features included are documented below:

    data types

    typedef DWORD process_t; // Win32-specific process identifier
    typedef pid_t process_t; // POSIX-specific process identifier
    typedef unsigned long long window_t; // cast from window handle
    typedef string wid_t; // window identifier - to_string from window_t


    // Execute process, returns process id
    process_t process_execute(string command);
    // Execute process outside main thread
    void process_execute_async(string command);
    // Return previous executed process id
    process_t process_previous();
    // Evaluate last process output string
    string process_evaluate();
    // Clears previous process id executed
    void process_clear_pid();
    // Clears previous process output text
    void process_clear_out();
    // Get process id from current process
    process_t pid_from_self();
    // Parent process id from this process
    process_t ppid_from_self();
    // Get executable path from process id
    string path_from_pid(process_t pid);
    // Get exe parent path from process id
    string dir_from_pid(process_t pid);
    // Get executable name from process id
    string name_from_pid(process_t pid);
    // Check for existence from process id
    bool pid_exists(process_t pid);
    // Check existence for given window id
    bool wid_exists(wid_t wid);
    // Kill an application from process id
    bool pid_kill(process_t pid);
    // Return window handle from window id
    window_t window_from_wid(wid_t wid);
    // Return window id from window handle
    wid_t wid_from_window(window_t window);
    // Get owner process id from window id
    process_t pid_from_wid(wid_t wid);
    // Return strings for every process id
    string pids_enum(bool trim_dir, bool trim_empty);
    // Get parent process id of process id
    process_t ppid_from_pid(process_t pid);
    // Get list of process ids from parent
    string pids_from_ppid(process_t ppid);
    // Get window id from frontmost window
    wid_t wid_from_top();
    // Get process id from topmost process
    process_t pid_from_top();
    // Bring window id to frontmost window
    void wid_to_top(wid_t wid);
    // Add a parent window id to window id
    void wid_set_pwid(wid_t wid, wid_t pwid);

    It's hosted in the same repository as my C++17 std::filesystem library, for those who might be interested in checking that out as well. No credit needed. Removing the credits header, if you want, and also, re-licensing the code to suit your needs are both permitted.

    Last edited by Samuel Venable; May 25th, 2020 at 10:18 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Click Here to Expand Forum to Full Width