Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
tolik
Зарегистрирован: 23.01.2003 Сообщения: 21
|
Добавлено: Пн Апр 22 2002 12:48 Заголовок сообщения: Как выполнить...... |
|
|
Нужно заблокировать НТ. Ниже привели команду. rundll32 user32.dll LockWorkStation работает из бат файла, а как написать на билдере пробовал так не получается ShellExecute(Handle,"open","rundll32 user32.dll LockWorkStation",NULL,NULL,SW_SHOWDEFAULT); |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Пн Апр 22 2002 14:06 Заголовок сообщения: Re: Как выполнить...... |
|
|
#include BOOL r; r=LockWorkStation(); вот так-то не работает что-ли? Header: Declared in Winuser.h; include Windows.h. Library: Use User32.lib. Windows NT/2000 or later: Requires Windows 2000 or later. |
|
Вернуться к началу |
|
|
tolik
Зарегистрирован: 23.01.2003 Сообщения: 21
|
Добавлено: Пн Апр 22 2002 14:27 Заголовок сообщения: Re: Как выполнить...... |
|
|
Извините за ламерство, но непонятно что где оъявлять. |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Вт Апр 23 2002 12:10 Заголовок сообщения: Re: Как выполнить...... |
|
|
В инклюды добавь Windows.h Вызов функции: BOOL r; r=LockWorkStation(); |
|
Вернуться к началу |
|
|
tolik
Зарегистрирован: 23.01.2003 Сообщения: 21
|
Добавлено: Вт Апр 23 2002 13:25 Заголовок сообщения: Re: Как выполнить...... |
|
|
Это понятно: подключаем #include "Windows.h" USELIB("User32.lib"); тип переменной bool r; присваиваем r = LockWorkStation а, дольше как вызвать? каким процессом?
//ShellExecute(Handle,"open","rundll32 user32.dll LockWorkStation",NULL,NULL,SW_SHOWDEFAULT); |
|
Вернуться к началу |
|
|
tolik
Зарегистрирован: 23.01.2003 Сообщения: 21
|
Добавлено: Вт Апр 23 2002 13:33 Заголовок сообщения: Old_Den - извините все работает. Огромное спасибо. |
|
|
Писал предыдущие без проверки. Программирую в 98 а проверяю в 2000. Написал не проверил. |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Вт Апр 23 2002 15:49 Заголовок сообщения: Re: Как выполнить...... |
|
|
Всмысле, "как вызывать?" так r = LockWorkStation(); и есть вызов функции, не забывай про (). Вызывать эту (и не только) функцию через ShellExecute - это все равно, что карбюратор через выхлопную трубу чистить |
|
Вернуться к началу |
|
|
tolik
Зарегистрирован: 23.01.2003 Сообщения: 21
|
Добавлено: Вт Апр 23 2002 15:53 Заголовок сообщения: Еще вопрос! Как подавить сообщение в.... |
|
|
Как подавить сообщение в виндусе 98 что не найдена типа присоединенное устройство. User32.dll Lock~ И программа не запускается, работает только в NT. |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Вт Апр 23 2002 15:59 Заголовок сообщения: Re: Еще вопрос! Как подавить сообщение в.... |
|
|
Так это нормально, что работает только в NT, ты где видел-то, что 9x хоть как-нибудь знакома с безопасностью. Там (9x) в принципе нет такой возможности "залочить" машину. И ради всего святого, не вызывай ты эту функцию через ShellExecute |
|
Вернуться к началу |
|
|
tolik
Зарегистрирован: 23.01.2003 Сообщения: 21
|
Добавлено: Ср Апр 24 2002 08:30 Заголовок сообщения: Re: Еще вопрос! Как подавить сообщение в.... |
|
|
Я не вызываю эту функцию через "ShellExecute". Я понимаю что она не будет работатьв 9*. Но можно подавить ругательство, а то не дает запустить программу. Программа расчитана на все платформы. А из одной функции делать две для Win9* и NT не целесообразно. |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Ср Апр 24 2002 11:16 Заголовок сообщения: Re: Еще вопрос! Как подавить сообщение в.... |
|
|
Так загрузи библиотеку User32.dll динамически, и попробуй получить указатель на нужную тебе функцию, если получилось - вызывай, не получилось, предупреди юзверя, что эта фича работает только на NT. HMODULE LoadLibrary( LPCTSTR lpFileName // file name of module ); FARPROC GetProcAddress( HMODULE hModule, // handle to DLL module LPCSTR lpProcName // function name ); Return Values If the function succeeds, the return value is the address of the exported function or variable. If the function fails, the return value is NULL. To get extended error information, call GetLastError. |
|
Вернуться к началу |
|
|
|