Вопрос № 38810: Здравствуйте!
Я начинающий программист, не судите строго!
Объявляю функцию ExitWindowsEx на бейсике (8) вот так:
Declare Function ExitWindowsEx Lib "user32.dll" (ByVal Flags As Long, ByVal Reason As Long) As Long
Затем вызыв...
Вопрос № 38.810
Здравствуйте!
Я начинающий программист, не судите строго!
Объявляю функцию ExitWindowsEx на бейсике (8) вот так:
Declare Function ExitWindowsEx Lib "user32.dll" (ByVal Flags As Long, ByVal Reason As Long) As Long
Затем вызываю ее так:
Call ExitWindowsEx(&H8, &H1)
Вопросы вот какие:
Во-первых это не работает
Во-вторых, нужен ли второй параметр (причина), а то мой английский немного подкачал?
В-третьих, к сожалению не нашел в МСДН, а сам и не знаю, как перевести hex числа вроде 0х00000001 в коды, которые понимает бейсик, а то я взял по аналогии с одним примерчиком
В-четвертых, правильно ли выбраны типы данных, и сюда же, в МСДН называют параметры объявляемой функции в стиле С++, а я могу называть их как угодно?
Еще, в МСДН есть описание такой функции, как InitiateSystemShutdown, входящей в библиотеку Advapi32.dll. Но фреймворк пишет, что такая точка входа в этой бибилиотеке не найдена! Написание проверил несколько раз.
Отвечает: X-MAN
Здравствуйте, Ильченко Константин!
Для выключения компьютера программадолжна иметь соответствующие привелегии. В примере простая программа, котораю выключает компьютер, правда она на С++, но я думаю вам не составит труда переделать её для бейсика, тем более, если у вас есть MSDN.
Насчёт InitiateSystemShutdown. Эта ф-ция реализована только в Windows NT, 2000, XP, 2003. Я не знаю как в бейсике, но в С++, чтобы её использовать нужно явно указать операционную систему, для которой пишется программа. Это делается таким образом: