diff --git a/docs/annotated.html b/docs/annotated.html index 88491a3..511b78e 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -70,9 +70,9 @@ $(function() {  C_cpu_info_tStruct to hold information about the CPU. See _cpu_info_t for details!  NHash  CHashThis abstract class specifies the generic interface for all support hash algorithms - NOS - NVersion - C_os_version_t + NOSMUtils OS-specific functions namespace + NVersionOS version information namespace + C_os_version_tThis struct contains version information about the underlaying operating system. See _os_version_t for details!  NRegistry  CRegistryKey  CIPCChannel diff --git a/docs/classes.html b/docs/classes.html index 17d594a..3279e2d 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -72,7 +72,7 @@ $(function() { _cpu_info_t (MUtils::CPUFetaures)   IPCChannel (MUtils)   RegistryKey (MUtils::Registry)   UpdateChecker (MUtils)    -_os_version_t (MUtils::OS::Version)   
  j  
+_os_version_t (MUtils::OS::Version)   
  j  
  t  
UpdateCheckerInfo (MUtils)   
  h  
diff --git a/docs/d1/d7d/namespace_m_utils_1_1_o_s_1_1_version.html b/docs/d1/d7d/namespace_m_utils_1_1_o_s_1_1_version.html new file mode 100644 index 0000000..ed999e6 --- /dev/null +++ b/docs/d1/d7d/namespace_m_utils_1_1_o_s_1_1_version.html @@ -0,0 +1,317 @@ + + + + + + + +MuldeR's Utilities for Qt: MUtils::OS::Version Namespace Reference + + + + + + + + + +
+
+ + + + + + +
+
MuldeR's Utilities for Qt +
+
MUtilities
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+Classes | +Typedefs | +Enumerations | +Variables
+
+
MUtils::OS::Version Namespace Reference
+
+
+ +

OS version information namespace. +More...

+ + + + + +

+Classes

struct  _os_version_t
 This struct contains version information about the underlaying operating system. See _os_version_t for details! More...
 
+ + + + +

+Typedefs

+typedef struct MUtils::OS::Version::_os_version_t os_version_t
 This struct contains version information about the underlaying operating system. See _os_version_t for details!
 
+ + + + +

+Enumerations

enum  os_type_t { OS_UNKNOWN = 0, +OS_WINDOWS = 1 + }
 This enumeration specifies the type of the underlaying operating system. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

MUTILS_API const os_version_t WINDOWS_WIN2K
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_WINXP
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_XPX64
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_VISTA
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_WIN70
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_WIN80
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_WIN81
 Operating system version constant. More...
 
MUTILS_API const os_version_t WINDOWS_WN100
 Operating system version constant. More...
 
MUTILS_API const os_version_t UNKNOWN_OPSYS
 Operating system version constant. More...
 
+

Detailed Description

+

OS version information namespace.

+

Enumeration Type Documentation

+ +

§ os_type_t

+ +
+
+ +

This enumeration specifies the type of the underlaying operating system.

+ + + +
Enumerator
OS_UNKNOWN 

Unknown operating system.

+
OS_WINDOWS 

Microsoft(R) Windows.

+
+ +
+
+

Variable Documentation

+ +

§ UNKNOWN_OPSYS

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::UNKNOWN_OPSYS
+
+ +

Operating system version constant.

+

Unknown operating system version

+ +
+
+ +

§ WINDOWS_VISTA

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_VISTA
+
+ +

Operating system version constant.

+

Microsoft(R) Windows Vista

+ +
+
+ +

§ WINDOWS_WIN2K

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN2K
+
+ +

Operating system version constant.

+

Microsoft(R) Windows 2000

+ +
+
+ +

§ WINDOWS_WIN70

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN70
+
+ +

Operating system version constant.

+

Microsoft(R) Windows 7

+ +
+
+ +

§ WINDOWS_WIN80

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN80
+
+ +

Operating system version constant.

+

Microsoft(R) Windows 8

+ +
+
+ +

§ WINDOWS_WIN81

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN81
+
+ +

Operating system version constant.

+

Microsoft(R) Windows 8.1

+ +
+
+ +

§ WINDOWS_WINXP

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WINXP
+
+ +

Operating system version constant.

+

Microsoft(R) Windows XP

+ +
+
+ +

§ WINDOWS_WN100

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WN100
+
+ +

Operating system version constant.

+

Microsoft(R) Windows 10

+ +
+
+ +

§ WINDOWS_XPX64

+ +
+
+ + + + +
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_XPX64
+
+ +

Operating system version constant.

+

Microsoft(R) Windows XP x64-edition

+ +
+
+
+ + + + diff --git a/docs/d2/df4/namespace_m_utils_1_1_o_s.html b/docs/d2/df4/namespace_m_utils_1_1_o_s.html new file mode 100644 index 0000000..6d19ea6 --- /dev/null +++ b/docs/d2/df4/namespace_m_utils_1_1_o_s.html @@ -0,0 +1,363 @@ + + + + + + + +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  known_folder_t { FOLDER_LOCALAPPDATA = 0, +FOLDER_PROGRAMFILES = 2, +FOLDER_SYSTEMFOLDER = 3, +FOLDER_SYSTROOT_DIR = 4 + }
 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...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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 QString & known_folder (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 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 (void *oldValue)
 
+MUTILS_API bool wow64fsredir_revert (void *oldValue)
 
+MUTILS_API QString get_envvar (const QString &name)
 
+MUTILS_API bool set_envvar (const QString &name, const QString &value)
 
+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

+ +

§ known_folder_t

+ +
+
+ + + + +
enum MUtils::OS::known_folder_t
+
+ +

This enumeration specifies "known" folder identifiers.

+ + + + + +
Enumerator
FOLDER_LOCALAPPDATA 

Local application data (non-roaming)

+
FOLDER_PROGRAMFILES 

Program files.

+
FOLDER_SYSTEMFOLDER 

System directory.

+
FOLDER_SYSTROOT_DIR 

System "root" directory.

+
+ +
+
+ +

§ 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.

+
+ +
+
+

Function Documentation

+ +

§ 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!
+
+
+ +
+
+
+ + + + diff --git a/docs/d3/da6/namespace_m_utils.html b/docs/d3/da6/namespace_m_utils.html index ff31992..1972cfe 100644 --- a/docs/d3/da6/namespace_m_utils.html +++ b/docs/d3/da6/namespace_m_utils.html @@ -77,6 +77,9 @@ Namespaces  CPUFetaures  This namespace contains functions and constants for detecting CPU information.
  +  OSMUtils OS-specific functions namespace.
+  diff --git a/docs/d3/dc1/_o_s_support_8h.html b/docs/d3/dc1/_o_s_support_8h.html new file mode 100644 index 0000000..9a83793 --- /dev/null +++ b/docs/d3/dc1/_o_s_support_8h.html @@ -0,0 +1,321 @@ + + + + + + + +MuldeR's Utilities for Qt: include/MUtils/OSSupport.h File Reference + + + + + + + + + +
+
+

Classes

+ + + + + +
+
MuldeR's Utilities for Qt +
+
MUtilities
+
+ + + + + + + + + +
+
+ + +
+ +
+ + + +
+
+Classes | +Namespaces | +Typedefs | +Enumerations | +Functions | +Variables
+
+
OSSupport.h File Reference
+
+
+ +

This file contains function that wrap OS-specific functionality in a platform-independent way. +More...

+
#include <MUtils/Global.h>
+#include <QString>
+#include <QMap>
+#include <QDate>
+#include <QWidget>
+
+

Go to the source code of this file.

+ + + + + +

+Classes

struct  MUtils::OS::Version::_os_version_t
 This struct contains version information about the underlaying operating system. See _os_version_t for details! More...
 
+ + + + + + + + + + +

+Namespaces

 MUtils
 Global MUtils namespace.
 
 MUtils::OS
 MUtils OS-specific functions namespace.
 
 MUtils::OS::Version
 OS version information namespace.
 
+ + + + + + + + +

+Typedefs

+typedef struct MUtils::OS::Version::_os_version_t MUtils::OS::Version::os_version_t
 This struct contains version information about the underlaying operating system. See _os_version_t for details!
 
+typedef QMap< QString, QString > MUtils::OS::ArgumentMap
 
+typedef bool(* MUtils::OS::progress_callback_t) (const double &progress, void *const userData)
 
+ + + + + + + + + + +

+Enumerations

enum  MUtils::OS::Version::os_type_t { MUtils::OS::Version::OS_UNKNOWN = 0, +MUtils::OS::Version::OS_WINDOWS = 1 + }
 This enumeration specifies the type of the underlaying operating system. More...
 
enum  MUtils::OS::known_folder_t { MUtils::OS::FOLDER_LOCALAPPDATA = 0, +MUtils::OS::FOLDER_PROGRAMFILES = 2, +MUtils::OS::FOLDER_SYSTEMFOLDER = 3, +MUtils::OS::FOLDER_SYSTROOT_DIR = 4 + }
 This enumeration specifies "known" folder identifiers. More...
 
enum  MUtils::OS::network_type_t { MUtils::OS::NETWORK_TYPE_ERR = 0, +MUtils::OS::NETWORK_TYPE_NON = 1, +MUtils::OS::NETWORK_TYPE_YES = 2 + }
 This enumeration specifies network connection types. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+MUTILS_API void MUtils::OS::system_message_nfo (const wchar_t *const title, const wchar_t *const text)
 
+MUTILS_API void MUtils::OS::system_message_wrn (const wchar_t *const title, const wchar_t *const text)
 
+MUTILS_API void MUtils::OS::system_message_err (const wchar_t *const title, const wchar_t *const text)
 
+MUTILS_API const QStringList MUtils::OS::crack_command_line (const QString &command_line=QString())
 
+MUTILS_API const ArgumentMap & MUtils::OS::arguments (void)
 
+MUTILS_API bool MUtils::OS::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 MUtils::OS::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 & MUtils::OS::os_version (void)
 
+MUTILS_API const char * MUtils::OS::os_friendly_name (const MUtils::OS::Version::os_version_t &os_version)
 
+MUTILS_API const bool & MUtils::OS::running_on_wine (void)
 
+MUTILS_API const QString & MUtils::OS::known_folder (known_folder_t folder_id)
 
+MUTILS_API QDate MUtils::OS::current_date (void)
 
+MUTILS_API quint64 MUtils::OS::current_file_time (void)
 
+MUTILS_API bool MUtils::OS::is_elevated (bool *bIsUacEnabled=NULL)
 
+MUTILS_API bool MUtils::OS::user_is_admin (void)
 
MUTILS_API int MUtils::OS::network_status (void)
 Check the network status. More...
 
+MUTILS_API bool MUtils::OS::handle_os_message (const void *const message, long *result)
 
MUTILS_API void MUtils::OS::sleep_ms (const size_t &duration)
 Suspend calling thread. More...
 
+MUTILS_API bool MUtils::OS::is_executable_file (const QString &path)
 
+MUTILS_API bool MUtils::OS::is_library_file (const QString &path)
 
+MUTILS_API bool MUtils::OS::is_hibernation_supported (void)
 
+MUTILS_API bool MUtils::OS::shutdown_computer (const QString &message, const unsigned long timeout, const bool forceShutdown, const bool hibernate)
 
+MUTILS_API bool MUtils::OS::free_diskspace (const QString &path, quint64 &freeSpace)
 
+MUTILS_API bool MUtils::OS::shell_open (const QWidget *parent, const QString &url, const bool explore=false)
 
+MUTILS_API bool MUtils::OS::shell_open (const QWidget *parent, const QString &url, const QString &parameters, const QString &directory, const bool explore=false)
 
+MUTILS_API bool MUtils::OS::open_media_file (const QString &mediaFilePath)
 
+MUTILS_API bool MUtils::OS::change_process_priority (const int priority)
 
+MUTILS_API bool MUtils::OS::change_process_priority (const QProcess *proc, const int priority)
 
+MUTILS_API quint32 MUtils::OS::process_id (void)
 
+MUTILS_API quint32 MUtils::OS::process_id (const QProcess *const proc)
 
+MUTILS_API quint32 MUtils::OS::thread_id (void)
 
+MUTILS_API quint32 MUtils::OS::thread_id (const QProcess *const proc)
 
+MUTILS_API bool MUtils::OS::suspend_process (const QProcess *proc, const bool suspend)
 
+MUTILS_API bool MUtils::OS::setup_timer_resolution (const quint32 &interval=1)
 
+MUTILS_API bool MUtils::OS::reset_timer_resolution (const quint32 &interval=1)
 
+MUTILS_API bool MUtils::OS::set_file_time (const QFile &file, const QDateTime &created=QDateTime(), const QDateTime &modified=QDateTime(), const QDateTime &accessed=QDateTime())
 
+MUTILS_API bool MUtils::OS::set_file_time (const QString &path, const QDateTime &created=QDateTime(), const QDateTime &modified=QDateTime(), const QDateTime &accessed=QDateTime())
 
+MUTILS_API bool MUtils::OS::check_key_state_esc (void)
 
+MUTILS_API void MUtils::OS::shell_change_notification (void)
 
+MUTILS_API QString MUtils::OS::get_file_path (const int &fd)
 
+MUTILS_API bool MUtils::OS::wow64fsredir_disable (void *oldValue)
 
+MUTILS_API bool MUtils::OS::wow64fsredir_revert (void *oldValue)
 
+MUTILS_API QString MUtils::OS::get_envvar (const QString &name)
 
+MUTILS_API bool MUtils::OS::set_envvar (const QString &name, const QString &value)
 
+MUTILS_API void MUtils::OS::check_debugger (void)
 
+MUTILS_API void MUtils::OS::fatal_exit (const wchar_t *const errorMessage)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN2K
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WINXP
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_XPX64
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_VISTA
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN70
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN80
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WIN81
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::WINDOWS_WN100
 Operating system version constant. More...
 
MUTILS_API const os_version_t MUtils::OS::Version::UNKNOWN_OPSYS
 Operating system version constant. More...
 
+

Detailed Description

+

This file contains function that wrap OS-specific functionality in a platform-independent way.

+
+ + + + diff --git a/docs/d3/dc1/_o_s_support_8h_source.html b/docs/d3/dc1/_o_s_support_8h_source.html index 9da46c9..a71995c 100644 --- a/docs/d3/dc1/_o_s_support_8h_source.html +++ b/docs/d3/dc1/_o_s_support_8h_source.html @@ -67,9 +67,38 @@ $(function() {
OSSupport.h
-
1 // MuldeR's Utilities for Qt
3 // Copyright (C) 2004-2017 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 //
19 // http://www.gnu.org/licenses/lgpl-2.1.txt
21 
22 #pragma once
23 
24 //MUtils
25 #include <MUtils/Global.h>
26 
27 //Qt
28 #include <QString>
29 #include <QMap>
30 #include <QDate>
31 #include <QWidget>
32 
33 //Forward declaration
34 class QFile;
35 
37 
38 namespace MUtils
39 {
40  namespace OS
41  {
42  namespace Version
43  {
44  //Supported OS types
45  typedef enum
46  {
47  OS_UNKNOWN = 0,
48  OS_WINDOWS = 1
49  }
50  os_type_t;
51 
52  //OS version struct
53  typedef struct _os_version_t
54  {
55  unsigned int type;
56  unsigned int versionMajor;
57  unsigned int versionMinor;
58  unsigned int versionBuild;
59  bool overrideFlag;
60 
61  MUTILS_API bool operator== (const _os_version_t &rhs) const;
62  MUTILS_API bool operator!= (const _os_version_t &rhs) const;
63  MUTILS_API bool operator> (const _os_version_t &rhs) const;
64  MUTILS_API bool operator>= (const _os_version_t &rhs) const;
65  MUTILS_API bool operator< (const _os_version_t &rhs) const;
66  MUTILS_API bool operator<= (const _os_version_t &rhs) const;
67  }
69 
70  //Known Windows NT versions
71  MUTILS_API extern const os_version_t WINDOWS_WIN2K; // 2000
72  MUTILS_API extern const os_version_t WINDOWS_WINXP; // XP
73  MUTILS_API extern const os_version_t WINDOWS_XPX64; // XP_x64
74  MUTILS_API extern const os_version_t WINDOWS_VISTA; // Vista
75  MUTILS_API extern const os_version_t WINDOWS_WIN70; // 7
76  MUTILS_API extern const os_version_t WINDOWS_WIN80; // 8
77  MUTILS_API extern const os_version_t WINDOWS_WIN81; // 8.1
78  MUTILS_API extern const os_version_t WINDOWS_WN100; // 10
79 
80  //Unknown OS
81  MUTILS_API extern const os_version_t UNKNOWN_OPSYS; // N/A
82  }
83 
84  //Known Folders IDs
85  typedef enum
86  {
87  FOLDER_LOCALAPPDATA = 0,
88  FOLDER_PROGRAMFILES = 2,
89  FOLDER_SYSTEMFOLDER = 3,
90  FOLDER_SYSTROOT_DIR = 4
91  }
92  known_folder_t;
93 
94  //Network connection types
95  typedef enum
96  {
97  NETWORK_TYPE_ERR = 0, /*unknown*/
98  NETWORK_TYPE_NON = 1, /*not connected*/
99  NETWORK_TYPE_YES = 2 /*connected*/
100  }
101  network_type_t;
102 
103  //System message
104  MUTILS_API void system_message_nfo(const wchar_t *const title, const wchar_t *const text);
105  MUTILS_API void system_message_wrn(const wchar_t *const title, const wchar_t *const text);
106  MUTILS_API void system_message_err(const wchar_t *const title, const wchar_t *const text);
107 
108  //CLI Arguments
109  typedef QMap<QString,QString> ArgumentMap;
110  MUTILS_API const QStringList crack_command_line(const QString &command_line = QString());
111  MUTILS_API const ArgumentMap &arguments(void);
112 
113  //Copy file
114  typedef bool (*progress_callback_t)(const double &progress, void *const userData);
115  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);
116 
117  //Get file version
118  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);
119 
120  //Get the OS version
121  MUTILS_API const Version::os_version_t &os_version(void);
122  MUTILS_API const char *os_friendly_name(const MUtils::OS::Version::os_version_t &os_version);
123  MUTILS_API const bool &running_on_wine(void);
124 
125  //Get known Folder
126  MUTILS_API const QString &known_folder(known_folder_t folder_id);
127 
128  //Current Date & Time
129  MUTILS_API QDate current_date(void);
130  MUTILS_API quint64 current_file_time(void);
131 
132  //Check for process elevation
133  MUTILS_API bool is_elevated(bool *bIsUacEnabled = NULL);
134  MUTILS_API bool user_is_admin(void);
135 
136  //Network Status
137  MUTILS_API int network_status(void);
138 
139  //Message handler
140  MUTILS_API bool handle_os_message(const void *const message, long *result);
141 
142  //Sleep
143  MUTILS_API void sleep_ms(const size_t &duration);
144 
145  //Is executable/library file?
146  MUTILS_API bool is_executable_file(const QString &path);
147  MUTILS_API bool is_library_file(const QString &path);
148 
149  //Shutdown & Hibernation
150  MUTILS_API bool is_hibernation_supported(void);
151  MUTILS_API bool shutdown_computer(const QString &message, const unsigned long timeout, const bool forceShutdown, const bool hibernate);
152 
153  //Free diskspace
154  MUTILS_API bool free_diskspace(const QString &path, quint64 &freeSpace);
155 
156  //Shell open
157  MUTILS_API bool shell_open(const QWidget *parent, const QString &url, const bool explore = false);
158  MUTILS_API bool shell_open(const QWidget *parent, const QString &url, const QString &parameters, const QString &directory, const bool explore = false);
159 
160  //Open media file
161  MUTILS_API bool open_media_file(const QString &mediaFilePath);
162 
163  //Process priority
164  MUTILS_API bool change_process_priority(const int priority);
165  MUTILS_API bool change_process_priority(const QProcess *proc, const int priority);
166 
167  //Process ID
168  MUTILS_API quint32 process_id(void);
169  MUTILS_API quint32 process_id(const QProcess *const proc);
170 
171  //Thread ID
172  MUTILS_API quint32 thread_id(void);
173  MUTILS_API quint32 thread_id(const QProcess *const proc);
174 
175  //Suspend or resume processv
176  MUTILS_API bool suspend_process(const QProcess *proc, const bool suspend);
177 
178  //System timer resolution
179  MUTILS_API bool setup_timer_resolution(const quint32 &interval = 1);
180  MUTILS_API bool reset_timer_resolution(const quint32 &interval = 1);
181 
182  //Set file time
183  MUTILS_API bool set_file_time(const QFile &file, const QDateTime &created = QDateTime(), const QDateTime &modified = QDateTime(), const QDateTime &accessed = QDateTime());
184  MUTILS_API bool set_file_time(const QString &path, const QDateTime &created = QDateTime(), const QDateTime &modified = QDateTime(), const QDateTime &accessed = QDateTime());
185 
186  //Keyboard support
187  MUTILS_API bool check_key_state_esc(void);
188 
189  //Shell notification
190  MUTILS_API void shell_change_notification(void);
191 
192  //Get file path from descriptor
193  MUTILS_API QString get_file_path(const int &fd);
194 
195  //WOW64 redirection
196  MUTILS_API bool wow64fsredir_disable(void *oldValue);
197  MUTILS_API bool wow64fsredir_revert (void *oldValue);
198 
199  //Environment variables
200  MUTILS_API QString get_envvar(const QString &name);
201  MUTILS_API bool set_envvar(const QString &name, const QString &value);
202 
203  //Check if debugger is present
204  MUTILS_API void check_debugger(void);
205 
206  //Error handling
207  MUTILS_API void fatal_exit(const wchar_t* const errorMessage);
208  }
209 }
210 
This file contains miscellaneous functions that are generally useful for Qt-based applications...
-
Definition: OSSupport.h:53
+Go to the documentation of this file.
1 // MuldeR's Utilities for Qt
3 // Copyright (C) 2004-2017 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 //
19 // http://www.gnu.org/licenses/lgpl-2.1.txt
21 
27 #pragma once
28 
29 //MUtils
30 #include <MUtils/Global.h>
31 
32 //Qt
33 #include <QString>
34 #include <QMap>
35 #include <QDate>
36 #include <QWidget>
37 
38 //Forward declaration
39 class QFile;
40 
42 
46 namespace MUtils
47 {
51  namespace OS
52  {
56  namespace Version
57  {
61  typedef enum
62  {
63  OS_UNKNOWN = 0,
65  }
66  os_type_t;
67 
71  typedef struct _os_version_t
72  {
73  unsigned int type;
74  unsigned int versionMajor;
75  unsigned int versionMinor;
76  unsigned int versionBuild;
77  bool overrideFlag;
78 
79  MUTILS_API bool operator== (const _os_version_t &rhs) const;
80  MUTILS_API bool operator!= (const _os_version_t &rhs) const;
81  MUTILS_API bool operator> (const _os_version_t &rhs) const;
82  MUTILS_API bool operator>= (const _os_version_t &rhs) const;
83  MUTILS_API bool operator< (const _os_version_t &rhs) const;
84  MUTILS_API bool operator<= (const _os_version_t &rhs) const;
85  }
87 
88  //Known Windows NT versions
89  MUTILS_API extern const os_version_t WINDOWS_WIN2K;
90  MUTILS_API extern const os_version_t WINDOWS_WINXP;
91  MUTILS_API extern const os_version_t WINDOWS_XPX64;
92  MUTILS_API extern const os_version_t WINDOWS_VISTA;
93  MUTILS_API extern const os_version_t WINDOWS_WIN70;
94  MUTILS_API extern const os_version_t WINDOWS_WIN80;
95  MUTILS_API extern const os_version_t WINDOWS_WIN81;
96  MUTILS_API extern const os_version_t WINDOWS_WN100;
97 
98  //Unknown OS
99  MUTILS_API extern const os_version_t UNKNOWN_OPSYS;
100  }
101 
105  typedef enum
106  {
111  }
113 
117  typedef enum
118  {
122  }
124 
125  //System message
126  MUTILS_API void system_message_nfo(const wchar_t *const title, const wchar_t *const text);
127  MUTILS_API void system_message_wrn(const wchar_t *const title, const wchar_t *const text);
128  MUTILS_API void system_message_err(const wchar_t *const title, const wchar_t *const text);
129 
130  //CLI Arguments
131  typedef QMap<QString,QString> ArgumentMap;
132  MUTILS_API const QStringList crack_command_line(const QString &command_line = QString());
133  MUTILS_API const ArgumentMap &arguments(void);
134 
135  //Copy file
136  typedef bool (*progress_callback_t)(const double &progress, void *const userData);
137  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);
138 
139  //Get file version
140  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);
141 
142  //Get the OS version
143  MUTILS_API const Version::os_version_t &os_version(void);
144  MUTILS_API const char *os_friendly_name(const MUtils::OS::Version::os_version_t &os_version);
145  MUTILS_API const bool &running_on_wine(void);
146 
147  //Get known Folder
148  MUTILS_API const QString &known_folder(known_folder_t folder_id);
149 
150  //Current Date & Time
151  MUTILS_API QDate current_date(void);
152  MUTILS_API quint64 current_file_time(void);
153 
154  //Check for process elevation
155  MUTILS_API bool is_elevated(bool *bIsUacEnabled = NULL);
156  MUTILS_API bool user_is_admin(void);
157 
165  MUTILS_API int network_status(void);
166 
167  //Message handler
168  MUTILS_API bool handle_os_message(const void *const message, long *result);
169 
179  MUTILS_API void sleep_ms(const size_t &duration);
180 
181  //Is executable/library file?
182  MUTILS_API bool is_executable_file(const QString &path);
183  MUTILS_API bool is_library_file(const QString &path);
184 
185  //Shutdown & Hibernation
186  MUTILS_API bool is_hibernation_supported(void);
187  MUTILS_API bool shutdown_computer(const QString &message, const unsigned long timeout, const bool forceShutdown, const bool hibernate);
188 
189  //Free diskspace
190  MUTILS_API bool free_diskspace(const QString &path, quint64 &freeSpace);
191 
192  //Shell open
193  MUTILS_API bool shell_open(const QWidget *parent, const QString &url, const bool explore = false);
194  MUTILS_API bool shell_open(const QWidget *parent, const QString &url, const QString &parameters, const QString &directory, const bool explore = false);
195 
196  //Open media file
197  MUTILS_API bool open_media_file(const QString &mediaFilePath);
198 
199  //Process priority
200  MUTILS_API bool change_process_priority(const int priority);
201  MUTILS_API bool change_process_priority(const QProcess *proc, const int priority);
202 
203  //Process ID
204  MUTILS_API quint32 process_id(void);
205  MUTILS_API quint32 process_id(const QProcess *const proc);
206 
207  //Thread ID
208  MUTILS_API quint32 thread_id(void);
209  MUTILS_API quint32 thread_id(const QProcess *const proc);
210 
211  //Suspend or resume processv
212  MUTILS_API bool suspend_process(const QProcess *proc, const bool suspend);
213 
214  //System timer resolution
215  MUTILS_API bool setup_timer_resolution(const quint32 &interval = 1);
216  MUTILS_API bool reset_timer_resolution(const quint32 &interval = 1);
217 
218  //Set file time
219  MUTILS_API bool set_file_time(const QFile &file, const QDateTime &created = QDateTime(), const QDateTime &modified = QDateTime(), const QDateTime &accessed = QDateTime());
220  MUTILS_API bool set_file_time(const QString &path, const QDateTime &created = QDateTime(), const QDateTime &modified = QDateTime(), const QDateTime &accessed = QDateTime());
221 
222  //Keyboard support
223  MUTILS_API bool check_key_state_esc(void);
224 
225  //Shell notification
226  MUTILS_API void shell_change_notification(void);
227 
228  //Get file path from descriptor
229  MUTILS_API QString get_file_path(const int &fd);
230 
231  //WOW64 redirection
232  MUTILS_API bool wow64fsredir_disable(void *oldValue);
233  MUTILS_API bool wow64fsredir_revert (void *oldValue);
234 
235  //Environment variables
236  MUTILS_API QString get_envvar(const QString &name);
237  MUTILS_API bool set_envvar(const QString &name, const QString &value);
238 
239  //Check if debugger is present
240  MUTILS_API void check_debugger(void);
241 
242  //Error handling
243  MUTILS_API void fatal_exit(const wchar_t* const errorMessage);
244  }
245 }
246 
MUTILS_API int network_status(void)
Check the network status.
+
MUTILS_API const os_version_t UNKNOWN_OPSYS
Operating system version constant.
+
Local application data (non-roaming)
Definition: OSSupport.h:107
+
unsigned int versionMinor
The minor version of the underlaying operating system.
Definition: OSSupport.h:75
+
Program files.
Definition: OSSupport.h:108
+
unsigned int versionBuild
The build number of the underlaying operating system.
Definition: OSSupport.h:76
+
System "root" directory.
Definition: OSSupport.h:110
+
Definition: Version.h:34
+
This file contains miscellaneous functions that are generally useful for Qt-based applications...
+
MUTILS_API void sleep_ms(const size_t &duration)
Suspend calling thread.
+
struct MUtils::OS::Version::_os_version_t os_version_t
This struct contains version information about the underlaying operating system. See _os_version_t fo...
+
unsigned int versionMajor
The major version of the underlaying operating system.
Definition: OSSupport.h:74
+
MUTILS_API const os_version_t WINDOWS_WIN70
Operating system version constant.
+
MUTILS_API const os_version_t WINDOWS_WIN80
Operating system version constant.
+
MUTILS_API const os_version_t WINDOWS_WIN2K
Operating system version constant.
+
Unknown operating system.
Definition: OSSupport.h:63
+
MUTILS_API const os_version_t WINDOWS_WN100
Operating system version constant.
+
os_type_t
This enumeration specifies the type of the underlaying operating system.
Definition: OSSupport.h:61
+
MUTILS_API const os_version_t WINDOWS_WIN81
Operating system version constant.
+
This struct contains version information about the underlaying operating system. See _os_version_t fo...
Definition: OSSupport.h:71
+
MUTILS_API const os_version_t WINDOWS_VISTA
Operating system version constant.
Global MUtils namespace.
Definition: CPUFeatures.h:37
+
Computer is not connected to a network.
Definition: OSSupport.h:120
+
MUTILS_API const os_version_t WINDOWS_WINXP
Operating system version constant.
+
network_type_t
This enumeration specifies network connection types.
Definition: OSSupport.h:117
+
Computer is connected to a network.
Definition: OSSupport.h:121
+
System directory.
Definition: OSSupport.h:109
+
Microsoft(R) Windows.
Definition: OSSupport.h:64
+
unsigned int type
The type of the underlaying operating system, as os_type_t
Definition: OSSupport.h:73
+
known_folder_t
This enumeration specifies "known" folder identifiers.
Definition: OSSupport.h:105
+
MUTILS_API const os_version_t WINDOWS_XPX64
Operating system version constant.
+
Network connection is unknown.
Definition: OSSupport.h:119
@@ -77,10 +77,10 @@ $(function() { operator>(const _os_version_t &rhs) const (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t operator>=(const _os_version_t &rhs) const (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t overrideFlag (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t - type (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t - versionBuild (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t - versionMajor (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t - versionMinor (defined in MUtils::OS::Version::_os_version_t)MUtils::OS::Version::_os_version_t + typeMUtils::OS::Version::_os_version_t + versionBuildMUtils::OS::Version::_os_version_t + versionMajorMUtils::OS::Version::_os_version_t + versionMinorMUtils::OS::Version::_os_version_t