#include <windows.h> #include <tchar.h> // int APIENTRY _tWinMain(HINSTANCE instance, HINSTANCE, LPTSTR, int) { MessageBox(0, TEXT(""), TEXT(""), 0); return 0; }
#include <windows.h> #include <tchar.h> // LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { // case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(window, message, wParam, lParam); } return 0; } // int APIENTRY _tWinMain(HINSTANCE instance, HINSTANCE, LPTSTR, int) { // WNDCLASSEX main = { 0 }; main.cbSize = sizeof(WNDCLASSEX); main.hInstance = instance; main.lpszClassName = TEXT("Main"); main.lpfnWndProc = WndProc; RegisterClassEx(&main); // HWND window = CreateWindowEx(0, TEXT("Main"), NULL, 0, 0, 0, 0, 0, NULL, NULL, instance, NULL); MessageBox(0, TEXT(""), TEXT(""), 0); return 0; }
#include <windows.h> #include <tchar.h> // NOTIFYICONDATA Icon = { 0 }; // // ... // int APIENTRY _tWinMain(HINSTANCE instance, HINSTANCE, LPTSTR, int) { // ... // ... // Icon.cbSize = sizeof(NOTIFYICONDATA); Icon.hWnd = window; Icon.uVersion = NOTIFYICON_VERSION; Icon.uCallbackMessage = WM_USER; Icon.hIcon = LoadIcon(NULL, IDI_SHIELD); Icon.uFlags = NIF_MESSAGE | NIF_ICON; Shell_NotifyIcon(NIM_ADD, &Icon); MessageBox(0, TEXT(""), TEXT(""), 0); // Shell_NotifyIcon(NIM_DELETE, &Icon); return 0; }
... // LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { // case WM_USER: if (lParam == WM_RBUTTONDOWN) if (MessageBox(NULL, TEXT(" ?"), TEXT("Tray"), MB_YESNO) == IDYES) DestroyWindow(window); break; // ... } return 0; } // int APIENTRY _tWinMain(HINSTANCE instance, HINSTANCE, LPTSTR, int) { // ... // ... // ... // MSG message; while (GetMessage(&message, NULL, 0, 0)) { TranslateMessage(&message); DispatchMessage(&message); } // Shell_NotifyIcon(NIM_DELETE, &Icon); return 0; }
/ bool FileExists(PTSTR path) { return GetFileAttributes(path) != INVALID_FILE_ATTRIBUTES; }
#include <windows.h> #include <tchar.h> // NOTIFYICONDATA Icon = { 0 }; // bool State = false; // // bool FileExists(PTSTR path) { return GetFileAttributes(path) != INVALID_FILE_ATTRIBUTES; } // LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { // case WM_TIMER: { bool check = FileExists(TEXT("P:\\")); if (State != check) { if (State) Icon.hIcon = LoadIcon(NULL, IDI_SHIELD); else Icon.hIcon = LoadIcon(NULL, IDI_WARNING); Icon.uFlags = NIF_ICON; Shell_NotifyIcon(NIM_MODIFY, &Icon); State = check; } break; } // case WM_USER: if (lParam == WM_RBUTTONDOWN) if (MessageBox(NULL, TEXT(" ?"), TEXT("Tray"), MB_YESNO) == IDYES) DestroyWindow(window); break; // case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(window, message, wParam, lParam); } return 0; } // int APIENTRY _tWinMain(HINSTANCE instance, HINSTANCE, LPTSTR, int) { // WNDCLASSEX main = { 0 }; main.cbSize = sizeof(WNDCLASSEX); main.hInstance = instance; main.lpszClassName = TEXT("Main"); main.lpfnWndProc = WndProc; RegisterClassEx(&main); // HWND window = CreateWindowEx(0, TEXT("Main"), NULL, 0, 0, 0, 0, 0, NULL, NULL, instance, NULL); // Icon.cbSize = sizeof(NOTIFYICONDATA); Icon.hWnd = window; Icon.uVersion = NOTIFYICON_VERSION; Icon.uCallbackMessage = WM_USER; Icon.hIcon = LoadIcon(NULL, IDI_SHIELD); Icon.uFlags = NIF_MESSAGE | NIF_ICON; Shell_NotifyIcon(NIM_ADD, &Icon); // SetTimer(window, 0, 1000, NULL); // MSG message; while (GetMessage(&message, NULL, 0, 0)) { TranslateMessage(&message); DispatchMessage(&message); } // Shell_NotifyIcon(NIM_DELETE, &Icon); return 0; }
Source: https://habr.com/ru/post/185252/