Переделай систему создания txt файла где хранится пароль, он не создаётся просто сделай его в любое место в системе кроме рабочего стола.



#include <windows.h>
#include <fstream>
#include <shlobj.h>
#include <string>
#include <codecvt>
#include <locale>

HWND hPassword1;
HWND hPassword2;

std::wstring passwordFilePath;

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg)
	{
	case WM_CREATE:
	{
		// Создание окна ввода пароля
		hPassword1 = CreateWindow(TEXT("EDIT"), NULL, WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD,
			20, 20, 300, 40, hwnd, NULL, NULL, NULL);

		// Создание окна для подтверждения пароля
		hPassword2 = CreateWindow(TEXT("EDIT"), NULL, WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD,
			20, 80, 300, 40, hwnd, NULL, NULL, NULL);

		// Создание кнопки "Сохранить"
		CreateWindow(TEXT("BUTTON"), TEXT("Сохранить"), WS_VISIBLE | WS_CHILD,
			20, 140, 300, 40, hwnd, (HMENU)1, NULL, NULL);

		break;
	}
	case WM_COMMAND:
	{
		if (LOWORD(wParam) == 1) // Кнопка "Сохранить"
		{
			// Получение длины введенных символов первого пароля
			int length1 = GetWindowTextLengthW(hPassword1);

			// Получение длины введенных символов второго пароля
			int length2 = GetWindowTextLengthW(hPassword2);

			// Проверка на наличие пароля в полях
			if (length1 == 0 || length2 == 0)
			{
				MessageBox(hwnd, L"Введите пароль в оба поля!", L"Ошибка", MB_OK | MB_ICONERROR);
				if (length1 == 0)
					SetFocus(hPassword1);
				else
					SetFocus(hPassword2);
				return 0;
			}

			// Выделение памяти для строк паролей
			wchar_t* password1 = new wchar_t[length1 + 1];
			wchar_t* password2 = new wchar_t[length2 + 1];

			// Получение введенных паролей
			GetWindowTextW(hPassword1, password1, length1 + 1);
			GetWindowTextW(hPassword2, password2, length2 + 1);

			// Проверка на совпадение паролей
			if (wcscmp(password1, password2) != 0)
			{
				MessageBox(hwnd, L"Пароли не совпадают!", L"Ошибка", MB_OK | MB_ICONERROR);
				SetFocus(hPassword1);
				return 0;
			}

			// Получение пути к папке ProgramData
			wchar_t programDataPath[MAX_PATH];
			if (SUCCEEDED(SHGetFolderPathW(NULL, CSIDL_COMMON_APPDATA, NULL, 0, programDataPath)))
			{
				// Создание полного пути до файла пароля
				std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
				passwordFilePath = std::wstring(programDataPath) + L"\logs.txt";

				// Сохранение пароля в файл
				std::ofstream outfile(passwordFilePath, std::ios::binary);
				if (outfile.is_open())
				{
					outfile << converter.to_bytes(password2);
					outfile.close();
					MessageBox(hwnd, L"Пароль сохранен!", L"Успех", MB_OK | MB_ICONINFORMATION);
				}
				else
				{
					MessageBox(hwnd, L"Не удалось создать файл!", L"Ошибка", MB_OK | MB_ICONERROR);
				}
			}
			else
			{
				MessageBox(hwnd, L"Не удалось получить путь к папке ProgramData!", L"Ошибка", MB_OK | MB_ICONERROR);
			}

			delete[] password1;
			delete[] password2;

			// Очистка полей ввода пароля
			SetWindowTextW(hPassword1, NULL);
			SetWindowTextW(hPassword2, NULL);
		}
		break;
	}
	case WM_PAINT:
	{
		// Рисование серого окошка
		PAINTSTRUCT ps;
		HDC hdc = BeginPaint(hwnd, &ps);
		HBRUSH hBrush = CreateSolidBrush(RGB(192, 192, 192)); // Серый цвет
		RECT rect;
		GetClientRect(hwnd, &rect);
		RoundRect(hdc, rect.left, rect.top, rect.right, rect.bottom, 10, 10); // Закругление краев
		FillRect(hdc, &rect, hBrush);
		EndPaint(hwnd, &ps);
		break;
	}
	case WM_CLOSE:
		// Закрытие окна при нажатии на "крестик"
		DestroyWindow(hwnd);
		break;
	case WM_DESTROY:
		// Выход из цикла обработки сообщений
		PostQuitMessage(0);
		break;
	default:
		// Обработка остальных сообщений
		return DefWindowProc(hwnd, msg, wParam, lParam);
	}

	return 0;
}