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

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

Запись от nekit270 размещена 31.10.2023 в 23:48
Показов 1629 Комментарии 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
Комментарии
 
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru