Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки программирования от Русланыча


Информационный Канал Subscribe.Ru


Недокументированные функции Windows

Привет всем подписчикам!

Поздравляю Вас и себя с первым выпуском моей рассылки! В ней я буду рассказывать о секретах программирования под Windows.

В этом выпуске я расскажу о двух недокументированных функциях Windows, которые я назвал Shutdown и NewTask.

Shutdown

Функция вызывает стандартный диалог Windows "Завершение работы...", т.е. тот диалог который мы видим, когда хотим перезагрузить или выключить компьютер под Windows нажимая Пуск->Завершение работы.

void Shutdown(

DWORD dwParam // неизвестный параметр, я передаю 0

);

Requirements
Я пробовал под Windows 2000, 98, ME.
Library: shell32.dll

Пример вызова
typedef VOID (WINAPI *SHELL32_SHUTDOWN_PROC)(DWORD);
HMODULE hModule=LoadLibraryA("shell32.dll"); /*загружаем библиотеку shell32.dll в которой содержится интересующая нас функция*/
SHELL32_SHUTDOWN_PROC Proc;

Proc=(SHELL32_SHUTDOWN_PROC)GetProcAddressA(hModule,(LPCSTR)0x3c); /*берем адрес функции по номеру 0x3c*/
(Proc)(0); /*вызываем функцию*/

NewTask

Функция вызывает стандартный диалог Windows "Выполнить...", т.е. тот диалог который мы видим, когда нажимаем Пуск->Выполнить.

void NewTask(

DWORD dwParam1, /* неизвестный параметр, я передаю 0 */
DWORD dwParam2, /* неизвестный параметр, я передаю 0 */
LPCSTR lpCurDir, /* текущая директория при нажатии кнопки "Обзор" */
DWORD dwParam3, /* неизвестный параметр, я передаю 0 */
DWORD dwParam4, /* неизвестный параметр, я передаю 0 */
DWORD dwParam5 /* неизвестный параметр, я передаю 4 */

);

Requirements
Я пробовал под Windows 2000, 98, ME.
Library: shell32.dll

Пример вызова
typedef VOID (WINAPI *SHELL32_NEWTASK_PROC)(DWORD,DWORD,LPCTSTR,DWORD,DWORD,DWORD);
HMODULE hModule=LoadLibraryA("shell32.dll");
SHELL32_NEWTASK_PROC Proc;

Proc=(SHELL32_NEWTASK_PROC)GetProcAddressA(hModule,(LPCSTR)0x3d);
(Proc)(0,0,_T("D:\\"),0,0,4);


Куски кода написаны на C и были проверены на компиляторе Visual C++ 6.0
Все замечания и предложения пишите мне по e-mail'у: admin@asmru.virtualave.net
Мои программы и исходники Вы можете найти на моей паге: http://asmru.virtualave.net
Автор рассылки: Русланыч


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное