Articles of winapi

Начать процесс не как ребенок

Мне нужно запустить процесс и запустить его как отдельный процесс. У меня есть какое-то стартовое приложение, целью которого является запуск другого exe и немедленный выход. Каков наилучший способ достичь этого? Я несколько раз читал документацию CreateProcess но у меня остались вопросы. Документация говорит, что мне нужно позвонить CloseHandle после того, как я закончу. Но мое […]

Фоновая сортировка по gradleиентному родительскому окну?

У меня есть окно с gradleиентным фоном. У Combobox есть собственная фоновая кисть. Как удалить белый угол в combobox? Как изменить кисть или другой способ. На изображении белый угол, отмеченный красной рамкой. Я создаю combobox как: DWORD dwStyle = WS_CHILD | CBS_DROPDOWNLIST; if (m_bVisible) dwStyle |= WS_VISIBLE; m_hWnd = CreateWindow(WC_COMBOBOX, NULL, dwStyle, m_posX, m_posY, m_width, […]

Рисование в расширенном кадре дает странные цвета

У меня есть окно с расширенным кадром, сделанным так: Пользовательская рамка windows с использованием DWM Но все, что нарисовано в расширенном кадре, имеет очень странные цвета (за исключением белого, единственного цвета, который остается тем же), как это (игнорируйте беспорядочный контент в центре и беспорядочную панель инструментов справа. Розовый прямоугольник ( 0xFFC9FF ) должен был быть […]

Удалите файл, а не отметьте его для удаления.

Я пишу службу для Windows (от XP до 8.1). Мне нужно рекурсивно удалить папку, и для этого я использую DeleteFile и RemoveDirectory . Я не хочу использовать SHFileOperation потому что он имеет ограничение MAX_PATH . Проблема в том, что иногда RemoveDirectory терпит неудачу с ERROR_DIR_NOT_EMPTY , даже если каталог пуст. Я узнал, что это потому, […]

Уменьшение размера консоли

У меня возникла проблема с изменением размера консоли. Это мой код: BOOL setConsole(int x, int y) { hStdin = GetStdHandle(STD_INPUT_HANDLE); hStdout = GetStdHandle(STD_OUTPUT_HANDLE); if (hStdin == INVALID_HANDLE_VALUE || hStdout == INVALID_HANDLE_VALUE) { MessageBox(NULL, TEXT(“GetStdHandle”), TEXT(“Console Error”), MB_OK); return false; } SMALL_RECT windowSize = {0, 0, x-1, y-1}; // Change the console window size: SetConsoleWindowInfo(hStdout, TRUE, […]

как получить pwdexpirydate с использованием значения pwdlastset и значения maxpwdage в C ++ win32 API?

Я получаю значение maxpwdage и значение pwdlastset с помощью ADSI .. Теперь я хочу проверить дату истечения срока действия пароля … hr = pDomain->get_MaxPasswordAge(&ret); maxpwdage дает 432000 … hr = pUser->get_PasswordLastChanged(&expirationDate); pwdlastset дает 41176.470196759263 … как достичь даты истечения срока действия пароля, используя это значение?

Каков надлежащий способ заполнения структуры HARDWAREINPUT для использования с SendInput?

Я пытаюсь отправить пару WM_KEYDOWN / WM_KEYUP в приложение, которое обычно НЕ отвечает на использование структуры KEYBDINPUT. Мне нужно будет отправить escape-ключ, а также буквенно-цифровые символы. Поскольку MSDN дает только неопределенную информацию об использовании аппаратной структуры, я могу только предположить, что поле uMsg предназначено для хранения сообщений WM_KEYDOWN / WM_KEYUP, а следующие два поля предназначены […]

Самый быстрый способ пинга адресов локальной сети

Я должен проверить несколько локальных сетевых адресов, если они доступны или нет. В настоящее время я использую IcmpSendEcho() , но для IcmpSendEcho() требуется много времени, если хост не подключен. Таким образом, мне нужен самый быстрый способ пинга IP локальной сети, чтобы решить, доступен ли он или нет?

Трассировка системных вызовов ETW

Как можно получить идентификатор процесса, который сгенерировал системный вызов в ETW? Пока ProcessID и члены ThreadID заголовка события равны = -1, это не может быть использовано. Я слышал об активации флага CSWitch для захвата каждого переключателя контекста, но это только дает мне, NewThreadId и OldThreadId в соответствии с classом MOF . Я тоже хочу идентификатор […]

Адрес функции

Предположим, что у меня есть функция, определенная следующим образом: class Foo() { public: void bar(MyClass* p, int i, int j, CArray<CArray,int> &a); } void Foo::bar(MyClass* p, int i, int j, CArray<CArray,int> &a){ // Function body } Для приложения Win32 / DLL эта функция не «экспортируется», как я могу найти адрес функции в bar , поэтому […]