Форум программистов, компьютерный форум, киберфорум
nekit270
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Добро пожаловать, здесь я программирую бессмысленно и беспощадно

Полезные (и не очень) функции стандартных библиотек Windows

Запись от nekit270 размещена 31.10.2023 в 23:48
Показов 1596 Комментарии 0

Это - продолжение статьи о том, как вызывать функции из командной строки.

Прмечание: ссылка в названии функции ведет на ее документацию (официальную, если такая имеется).

Полезные функции

Эта часть будет посвящена функциям, которые имеют применение (в том числе для bat-файлов)
  1. MessageBoxA
    Вызов стандартного для Windows окна сообщения.

    Сигнатура:
    C++
    1
    2
    3
    4
    5
    6
    
    int MessageBoxA(
      [in, optional] HWND   hWnd,
      [in, optional] LPCSTR lpText,
      [in, optional] LPCSTR lpCaption,
      [in]           UINT   uType
    );
    Расположение: %SystemRoot%\System32\user32.dll

    Способ вызова через rundll34:
    Windows Batch file
    1
    
    rundll34 user32.dll MessageBoxA int null string:"Текст" string:"Заголовок" uint:Настройки_кнопок_и_иконки
  2. SHEmptyRecycleBinA
    Очистка корзины.

    Сигнатура:
    C++
    1
    2
    3
    4
    5
    
    SHSTDAPI SHEmptyRecycleBinA(
      [in, optional] HWND   hwnd,
      [in, optional] LPCSTR pszRootPath,
                     DWORD  dwFlags
    );
    Расположение: %SystemRoot%\System32\shell32.dll

    Способ вызова через rundll34:
    Windows Batch file
    1
    
    rundll34 shell32.dll SHEmptyRecycleBinA void null null int:если_1_то_операция_будет_скрытой
  3. RunFileDlg (#61)
    Вызов окна "Выполнить" (недокументированная функция)

    Сигнатура (неофициальная):
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    BOOL
    FASTCALL
    RunFileDlg( 
        IN HWND    hwndOwner,       // Owner window, receives notifications
        IN HICON   hIcon,           // Dialog icon handle, if NULL default icon is used
        IN LPCTSTR lpszDirectory,   // Working directory
        IN LPCTSTR lpszTitle,       // Dialog title, if NULL default is displayed
        IN LPCTSTR lpszDescription, // Dialog description, if NULL default is displayed
        IN UINT    uFlags           // Dialog flags
    );
    Расположение: %SystemRoot%\System32\shell32.dll, функция не экспортирована по имени, доступен только ординал #61

    Способ вызова через rundll34:
    Windows Batch file
    1
    
    rundll34 shell32.dll #61 void null null null string:"Title" string:"Text" uint:0
  4. RestartDialogEx
    Открытие диалога перезагрузки системы.

    Сигнатура:
    C++
    1
    2
    3
    4
    5
    6
    
    int RestartDialogEx(
      [in, optional] HWND   hwnd,
      [in, optional] PCWSTR pszPrompt,
                     DWORD  dwReturn,
                     DWORD  dwReasonCode
    );
    Расположение: %SystemRoot%\System32\shell32.dll

    Способ вызова через rundll34:
    Windows Batch file
    1
    
    rundll34 shell32.dll RestartDialogEx void null null int:Тип_завершения_работы int:0
    Типы завершения работы:
    • 0 - выход из системы
    • 1 - завершение работы
    • 2 - перезагрузка

Странные, старые и просто интересные функции

Здесь перечислены функции, которые не имеют практического смысла для вызова из командной строки. Они просто прикольные
  1. CredUIPromptForCredentialsA
    Старая версия функции для запроса имени пользователя и пароля. В ней сломана кодировка, а выглядит она вообще как "динозавр" из Windows XP.

    Сигнатура:
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    CREDUIAPI DWORD CredUIPromptForCredentialsA(
      [in, optional] PCREDUI_INFOA pUiInfo,
      [in]           PCSTR         pszTargetName,
      [in]           PCtxtHandle   pContext,
      [in, optional] DWORD         dwAuthError,
      [in, out]      PSTR          pszUserName,
      [in]           ULONG         ulUserNameBufferSize,
      [in, out]      PSTR          pszPassword,
      [in]           ULONG         ulPasswordBufferSize,
      [in, out]      BOOL          *save,
      [in]           DWORD         dwFlags
    );
    Расположение: %SystemRoot%\System32\credui.dll

    Способ вызова через rundll34:
    Windows Batch file
    1
    
    rundll34 credui.dll CredUIPromptForCredentialsA void null string:" " null int:0 string:"" int:255 string:"" int:255 int:0 int:0



P.S. статья возможно будет дополняться новыми функциями
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru