一款显示网速、系统利用的软件
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

Function.h 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #include <windows.h>
  2. #include <shellapi.h>
  3. #include <Psapi.h>
  4. #include <Mmdeviceapi.h>
  5. #include <audiopolicy.h>
  6. #include <Shlobj.h>
  7. #include <tlhelp32.h>
  8. //GDI+
  9. #include<gdiplus.h>
  10. #pragma comment(lib, "gdiplus.lib")
  11. using namespace Gdiplus;
  12. const WCHAR lpServiceName[] = L"TrayS";//程序名
  13. const WCHAR szShellTray[] = L"Shell_TrayWnd";//主任务栏类名
  14. const WCHAR szSecondaryTray[] = L"Shell_SecondaryTrayWnd";//副任务栏类名
  15. typedef enum _WINDOWCOMPOSITIONATTRIB
  16. {
  17. WCA_UNDEFINED = 0,
  18. WCA_NCRENDERING_ENABLED = 1,
  19. WCA_NCRENDERING_POLICY = 2,
  20. WCA_TRANSITIONS_FORCEDISABLED = 3,
  21. WCA_ALLOW_NCPAINT = 4,
  22. WCA_CAPTION_BUTTON_BOUNDS = 5,
  23. WCA_NONCLIENT_RTL_LAYOUT = 6,
  24. WCA_FORCE_ICONIC_REPRESENTATION = 7,
  25. WCA_EXTENDED_FRAME_BOUNDS = 8,
  26. WCA_HAS_ICONIC_BITMAP = 9,
  27. WCA_THEME_ATTRIBUTES = 10,
  28. WCA_NCRENDERING_EXILED = 11,
  29. WCA_NCADORNMENTINFO = 12,
  30. WCA_EXCLUDED_FROM_LIVEPREVIEW = 13,
  31. WCA_VIDEO_OVERLAY_ACTIVE = 14,
  32. WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15,
  33. WCA_DISALLOW_PEEK = 16,
  34. WCA_CLOAK = 17,
  35. WCA_CLOAKED = 18,
  36. WCA_ACCENT_POLICY = 19,
  37. WCA_FREEZE_REPRESENTATION = 20,
  38. WCA_EVER_UNCLOAKED = 21,
  39. WCA_VISUAL_OWNER = 22,
  40. WCA_LAST = 23
  41. } WINDOWCOMPOSITIONATTRIB;
  42. typedef struct _WINDOWCOMPOSITIONATTRIBDATA
  43. {
  44. WINDOWCOMPOSITIONATTRIB Attrib;
  45. PVOID pvData;
  46. SIZE_T cbData;
  47. } WINDOWCOMPOSITIONATTRIBDATA;
  48. typedef enum _ACCENT_STATE
  49. {
  50. ACCENT_DISABLED = 0,
  51. ACCENT_ENABLE_GRADIENT = 1,
  52. ACCENT_ENABLE_TRANSPARENTGRADIENT = 2,
  53. ACCENT_ENABLE_BLURBEHIND = 3,
  54. ACCENT_ENABLE_ACRYLICBLURBEHIND = 4,
  55. ACCENT_INVALID_STATE = 5,
  56. ACCENT_ENABLE_TRANSPARENT = 6,
  57. ACCENT_NORMAL = 150
  58. } ACCENT_STATE;
  59. typedef struct _ACCENT_POLICY
  60. {
  61. ACCENT_STATE AccentState;
  62. DWORD AccentFlags;
  63. DWORD GradientColor;
  64. DWORD AnimationId;
  65. } ACCENT_POLICY;
  66. typedef BOOL(WINAPI* pfnSetWindowCompositionAttribute)(HWND, struct _WINDOWCOMPOSITIONATTRIBDATA*);
  67. void SetToCurrentPath();//设置进程路径为当前路径
  68. BOOL RunProcess(LPTSTR szExe, const WCHAR* szCommandLine);//运行程序
  69. BOOL SetWindowCompositionAttribute(HWND hWnd, ACCENT_STATE mode, DWORD AlphaColor);//设置窗口WIN10风格
  70. BOOL AutoRun(BOOL GetSet, BOOL bAutoRun, const WCHAR* szName);//读取、设置开机启动、关闭开机启动
  71. HICON GetIcon(HWND hWnd, BOOL* bUWP, HWND* hUICoreWnd, int IconSize);//获取窗口图标
  72. BOOL GetProcessFileName(DWORD dwProcessId, LPTSTR pszFileName, DWORD dwFileNameLength);//通过进程ID获取目录文件名
  73. BOOL SetForeground(HWND hWnd);//强制设置窗口为前台
  74. void lstrlwr(WCHAR* wString, size_t SizeInWords);//字符串转小写
  75. wchar_t* lstrstr(const wchar_t* str, const wchar_t* sub);//字符串查找
  76. BOOL OpenWindowPath(HWND hWnd);//打开窗口所在的进程路径
  77. BOOL EnableDebugPrivilege(BOOL bEnableDebugPrivilege);//DEBUG提权
  78. int GetScreenRect(HWND hWnd, LPRECT lpRect, BOOL bTray);//获取窗口所在的屏幕大小可减去任务栏
  79. BOOL GetSetVolume(BOOL bSet, HWND hWnd, DWORD dwProcessId, float* fVolume, BOOL* bMute, BOOL IsMixer);//获取与设置进程音量
  80. void InitService();//初始化服务参数
  81. BOOL IsUserAdmin();//判断是以管理员权限运行
  82. BOOL InstallService();//安装服务
  83. BOOL UninstallService();//卸载服务
  84. BOOL ServiceCtrlStart();//开启服务
  85. BOOL ServiceCtrlStop();//停止服务
  86. DWORD ServiceRunState();//服务运行状态
  87. BOOL IsServiceInstalled();//服务是否已经安装
  88. void WINAPI ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv);//服务主线程入口
  89. HRESULT pSHLoadIndirectString(LPCWSTR pszSource, LPWSTR pszOutBuf, UINT cchOutBuf, void** ppvReserved);
  90. UINT pDragQueryFile(HDROP hDrop, UINT iFile, LPTSTR lpszFile, UINT cch);
  91. HICON pExtractIcon(HINSTANCE hInst, LPCTSTR lpszExeFileName, UINT nIconIndex);
  92. DWORD pSHGetFileInfo(LPCTSTR pszPath, DWORD dwFileAttributes, SHFILEINFO FAR* psfi, UINT cbFileInfo, UINT uFlags);
  93. HRESULT pSHDefExtractIcon(LPCWSTR pszIconFile, int iIndex, UINT uFlags, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize);
  94. HINSTANCE pShellExecute(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_ INT nShowCmd);
  95. BOOL pShell_NotifyIcon(DWORD dwMessage, _In_ PNOTIFYICONDATAW lpData);
  96. BOOL pWTSQueryUserToken(ULONG SessionId, PHANDLE phToken);
  97. BOOL pCreateEnvironmentBlock(_At_((PZZWSTR*)lpEnvironment, _Outptr_)LPVOID* lpEnvironment, _In_opt_ HANDLE hToken, _In_ BOOL bInherit);
  98. ULONG pCallNtPowerInformation(_In_ POWER_INFORMATION_LEVEL InformationLevel, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength);