MuldeR's Utilities for Qt
MUtilities
Namespaces | Typedefs | Enumerations | Functions
MUtils::OS Namespace Reference

MUtils OS-specific functions namespace. More...

Namespaces

 Version
 OS version information namespace.
 

Typedefs

typedef QMap< QString, QString > ArgumentMap
 
typedef bool(* progress_callback_t) (const double &progress, void *const userData)
 

Enumerations

enum  os_arch_t { ARCH_X86 = 1, ARCH_X64 = 2 }
 This enumeration specifies possible operating system architectures. More...
 
enum  known_folder_t {
  FOLDER_PROFILE_USER = 1, FOLDER_PROFILE_PUBL = 2, FOLDER_APPDATA_ROAM = 3, FOLDER_APPDATA_LOCA = 4,
  FOLDER_DOCS_USER = 5, FOLDER_DOCS_PUBL = 6, FOLDER_DESKTOP_USER = 7, FOLDER_DESKTOP_PUBL = 8,
  FOLDER_PICTURES_USER = 9, FOLDER_PICTURES_PUBL = 10, FOLDER_MUSIC_USER = 11, FOLDER_MUSIC_PUBL = 12,
  FOLDER_VIDEO_USER = 13, FOLDER_VIDEO_PUBL = 14, FOLDER_PROGRAMS_DEF = 15, FOLDER_PROGRAMS_X86 = 16,
  FOLDER_PROGRAMS_X64 = 17, FOLDER_SYSROOT = 18, FOLDER_SYSTEM_DEF = 19, FOLDER_SYSTEM_X86 = 20
}
 This enumeration specifies "known" folder identifiers. More...
 
enum  network_type_t { NETWORK_TYPE_ERR = 0, NETWORK_TYPE_NON = 1, NETWORK_TYPE_YES = 2 }
 This enumeration specifies network connection types. More...
 
enum  drive_type_t {
  DRIVE_TYPE_ERR = 0, DRIVE_TYPE_FDD = 1, DRIVE_TYPE_HDD = 2, DRIVE_TYPE_NET = 3,
  DRIVE_TYPE_OPT = 4, DRIVE_TYPE_RAM = 5
}
 This enumeration specifies drive types. More...
 

Functions

MUTILS_API void system_message_nfo (const wchar_t *const title, const wchar_t *const text)
 
MUTILS_API void system_message_wrn (const wchar_t *const title, const wchar_t *const text)
 
MUTILS_API void system_message_err (const wchar_t *const title, const wchar_t *const text)
 
MUTILS_API const QStringList crack_command_line (const QString &command_line=QString())
 
MUTILS_API const ArgumentMap & arguments (void)
 
MUTILS_API bool copy_file (const QString &sourcePath, const QString &outputPath, const bool &overwrite=true, const progress_callback_t callback=NULL, void *const userData=NULL)
 
MUTILS_API bool get_file_version (const QString fileName, quint16 *const major=NULL, quint16 *const minor=NULL, quint16 *const patch=NULL, quint16 *const build=NULL)
 
MUTILS_API const Version::os_version_tos_version (void)
 
MUTILS_API const char * os_friendly_name (const MUtils::OS::Version::os_version_t &os_version)
 
MUTILS_API const bool & running_on_wine (void)
 
MUTILS_API const os_arch_tos_architecture (void)
 
MUTILS_API const QString & known_folder (const known_folder_t folder_id)
 
MUTILS_API QDate current_date (void)
 
MUTILS_API quint64 current_file_time (void)
 
MUTILS_API bool is_elevated (bool *bIsUacEnabled=NULL)
 
MUTILS_API bool user_is_admin (void)
 
MUTILS_API int network_status (void)
 Check the network status. More...
 
MUTILS_API bool handle_os_message (const void *const message, long *result)
 
MUTILS_API void sleep_ms (const size_t &duration)
 Suspend calling thread. More...
 
MUTILS_API bool is_executable_file (const QString &path)
 
MUTILS_API bool is_library_file (const QString &path)
 
MUTILS_API bool is_hibernation_supported (void)
 
MUTILS_API bool shutdown_computer (const QString &message, const unsigned long timeout, const bool forceShutdown, const bool hibernate)
 
MUTILS_API bool free_diskspace (const QString &path, quint64 &freeSpace)
 
MUTILS_API drive_type_t get_drive_type (const QString &path, bool *fast_seeking=NULL)
 Detect drive type. More...
 
MUTILS_API bool shell_open (const QWidget *parent, const QString &url, const bool explore=false)
 
MUTILS_API bool shell_open (const QWidget *parent, const QString &url, const QString &parameters, const QString &directory, const bool explore=false)
 
MUTILS_API bool open_media_file (const QString &mediaFilePath)
 
MUTILS_API bool change_process_priority (const int priority)
 
MUTILS_API bool change_process_priority (const QProcess *proc, const int priority)
 
MUTILS_API quint32 process_id (void)
 
MUTILS_API quint32 process_id (const QProcess *const proc)
 
MUTILS_API quint32 thread_id (void)
 
MUTILS_API quint32 thread_id (const QProcess *const proc)
 
MUTILS_API bool suspend_process (const QProcess *proc, const bool suspend)
 
MUTILS_API bool setup_timer_resolution (const quint32 &interval=1)
 
MUTILS_API bool reset_timer_resolution (const quint32 &interval=1)
 
MUTILS_API bool set_file_time (const QFile &file, const QDateTime &created=QDateTime(), const QDateTime &modified=QDateTime(), const QDateTime &accessed=QDateTime())
 
MUTILS_API bool set_file_time (const QString &path, const QDateTime &created=QDateTime(), const QDateTime &modified=QDateTime(), const QDateTime &accessed=QDateTime())
 
MUTILS_API bool check_key_state_esc (void)
 
MUTILS_API void shell_change_notification (void)
 
MUTILS_API QString get_file_path (const int &fd)
 
MUTILS_API bool wow64fsredir_disable (uintptr_t &oldValue)
 
MUTILS_API bool wow64fsredir_revert (const uintptr_t oldValue)
 
MUTILS_API QString get_envvar (const QString &name)
 
MUTILS_API bool set_envvar (const QString &name, const QString &value)
 
MUTILS_API const QLatin1String & null_device (void)
 
MUTILS_API void check_debugger (void)
 
MUTILS_API void fatal_exit (const wchar_t *const errorMessage)
 

Detailed Description

MUtils OS-specific functions namespace.

Enumeration Type Documentation

§ drive_type_t

This enumeration specifies drive types.

Enumerator
DRIVE_TYPE_ERR 

The drive type cannot be determined.

DRIVE_TYPE_FDD 

Floppy Drive, or Flash Card reader.

DRIVE_TYPE_HDD 

Hard Disk drive or Solid-State Drive.

DRIVE_TYPE_NET 

Remote/Network drive.

DRIVE_TYPE_OPT 

Optical disk srive, e.g. CD or DVD.

DRIVE_TYPE_RAM 

RAM disk.

§ known_folder_t

This enumeration specifies "known" folder identifiers.

Enumerator
FOLDER_PROFILE_USER 

The user's profile folder.

FOLDER_PROFILE_PUBL 

The "all users" profile folder.

FOLDER_APPDATA_ROAM 

Application-specific data.

FOLDER_APPDATA_LOCA 

Local application data (non-roaming)

FOLDER_DOCS_USER 

The user's Documents directory.

FOLDER_DOCS_PUBL 

The "all users" Documents directory.

FOLDER_DESKTOP_USER 

The user's Desktop directory.

FOLDER_DESKTOP_PUBL 

The "all users" Desktop directory.

FOLDER_PICTURES_USER 

The user's Music directory.

FOLDER_PICTURES_PUBL 

The user's Music directory.

FOLDER_MUSIC_USER 

The user's Music directory.

FOLDER_MUSIC_PUBL 

The "all users" Music directory.

FOLDER_VIDEO_USER 

The user's Video directory.

FOLDER_VIDEO_PUBL 

The "all users" Video directory.

FOLDER_PROGRAMS_DEF 

Program files.

FOLDER_PROGRAMS_X86 

Program files.

FOLDER_PROGRAMS_X64 

Program files.

FOLDER_SYSROOT 

System "root" directory.

FOLDER_SYSTEM_DEF 

System directory.

FOLDER_SYSTEM_X86 

System directory for x86 (32-Bit)

§ network_type_t

This enumeration specifies network connection types.

Enumerator
NETWORK_TYPE_ERR 

Network connection is unknown.

NETWORK_TYPE_NON 

Computer is not connected to a network.

NETWORK_TYPE_YES 

Computer is connected to a network.

§ os_arch_t

This enumeration specifies possible operating system architectures.

Enumerator
ARCH_X86 

Intel x86 or compatible [32-bit].

ARCH_X64 

x86-64, aka AMD64, aka Intel 64 [64-bit]

Function Documentation

§ get_drive_type()

MUTILS_API drive_type_t MUtils::OS::get_drive_type ( const QString &  path,
bool *  fast_seeking = NULL 
)

Detect drive type.

This function detetcs the type of the drive to which the given path is pointing.

Parameters
pathThe path to the drive whose type is to be detected. On the Windows platform, only the drive letter is relevant.
fast_seekingPointer to a variable that will be set to TRUE, if the drive supports "fast" seeking (e.g. SSD or similar device), or to FALSE otherwise. This parameter is optional and may be NULL.
Returns
The function returns the type of the drive as a OS::drive_type_t value. In case of error, the value DRIVE_TYPE_ERR will be returned.

§ network_status()

MUTILS_API int MUtils::OS::network_status ( void  )

Check the network status.

Checks whether the computer is currently connected to a network. Note that an existing network connection does not necessarily imply actual Internet access!

Returns
The function returns the current network status as a OS::network_type_t value.

§ sleep_ms()

MUTILS_API void MUtils::OS::sleep_ms ( const size_t &  duration)

Suspend calling thread.

This function suspends the calling thread. The thread will give up its current time-slice and enter "sleeping" state. The thread will remain in "sleeping" for the specified duration. After the specified duration has elapsed, the thread will be resumed.

Note that it depends on the operating system's scheduling decisions, when the thread will actually be allowed to execute again! While the thread is still in "sleeping" state, it can not be selected for execution by the operating system's scheduler. Once the thread is no longer in "sleeping" state, i.e. the specified period has elapsed, the thread can be selected for execution by the operating system's scheduler again - but this does not need to happen immediately! The scheduler decides which thread is allowed to execute next, taking into consideration thread priorities.

Parameters
durationThe amount of time that the thread will be suspended, in milliseconds. A value of 0 means that the thread will not actually enter "sleeping" state, but it will still give up its current time-slice!