MuldeR's Utilities for Qt: MUtils::OS Namespace Reference

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_t & | os_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_t & | os_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

enum MUtils::OS::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

enum MUtils::OS::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

enum MUtils::OS::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

enum MUtils::OS::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

  path | The path to the drive whose type is to be detected. On the Windows platform, only the drive letter is relevant.
  fast_seeking | Pointer 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

  duration | The 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!