#pragma once #include "defines.h" #include #include enum class SpecialFolderOption { None = 0, Create = 0x8000, DoNotVerify = 0x4000 }; enum class SpecialFolder { ApplicationData = 26, CommonApplicationData = 35, LocalApplicationData = 28, Cookies = 33, Desktop = 0, Favorites = 6, History = 34, InternetCache = 0x20, Programs = 2, MyComputer = 17, MyMusic = 13, MyPictures = 39, MyVideos = 14, Recent = 8, SendTo = 9, StartMenu = 11, Startup = 7, System = 37, Templates = 21, DesktopDirectory = 0x10, Personal = 5, MyDocuments = 5, ProgramFiles = 38, CommonProgramFiles = 43, AdminTools = 48, CDBurning = 59, CommonAdminTools = 47, CommonDocuments = 46, CommonMusic = 53, CommonOemLinks = 58, CommonPictures = 54, CommonStartMenu = 22, CommonPrograms = 23, CommonStartup = 24, CommonDesktopDirectory = 25, CommonTemplates = 45, CommonVideos = 55, Fonts = 20, NetworkShortcuts = 19, PrinterShortcuts = 27, UserProfile = 40, CommonProgramFilesX86 = 44, ProgramFilesX86 = 42, Resources = 56, LocalizedResources = 57, SystemX86 = 41, Windows = 36 }; class Environment { public: static std::string CommandLine(); static std::string CurrentDirectory(); static void CurrentDirectory(std::string path); static std::string SystemDirectory(); static std::string WindowsDirectory(); static std::string MachineName(); static int ProcessorCount(); static int SystemPageSize(); static long long WorkingSet(); static std::string UserName(); static std::vector LogicalDrives(); static std::string GetFolderPath(SpecialFolder folder, SpecialFolderOption option = SpecialFolderOption::None); };