Форум: "Система";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
ВнизПрограммное нажатие клавиш CTRL+ALT+DELETE Найти похожие ветки
← →
Codec (2002-07-18 11:51) [0]Возможно ли такое исполнить и если да, то как? Мастера, наставьте на путь истинный, PLZ...
← →
Song (2002-07-18 13:43) [1]Keybd_event()
← →
Codec (2002-07-18 14:26) [2]Спасибо, но нельзя ли немного по-подробнее... Заранее благодарю!
← →
Song (2002-07-18 15:05) [3]keybd_event(VK_CONTROL,0,0,0);
keybd_event(VK_ALT,0,0,0);
keybd_event(VK_DEL,0,0,0);
Application.ProcessMessages;
keybd_event(VK_DEL,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_ALT,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
← →
Song (2002-07-18 15:20) [4]А кстати, это интересно, но у меня в XP не выходит. Попробуйте в 98-ом.
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(GetActiveWindow,WM_KEYDOWN,Ord(VK_CONTROL),1);
SendMessage(GetActiveWindow,WM_KEYDOWN,Ord(VK_MENU),1);
SendMessage(GetActiveWindow,WM_KEYDOWN,Ord(VK_SEPARATOR),1);
Application.ProcessMessages;
SendMessage(GetActiveWindow,WM_KEYUP,Ord(VK_CONTROL),1);
SendMessage(GetActiveWindow,WM_KEYUP,Ord(VK_MENU),1);
SendMessage(GetActiveWindow,WM_KEYUP,Ord(VK_SEPARATOR),1);
end;
← →
Codec (2002-07-18 16:17) [5]К сожалению, не работает ни один из кодов, приведённых выше (в 98-м пробовал, но ещё раз оговорюсь - мне нужно под NTшку) :-( .
IMHO, VK_ALT и VK_DEL неправильно - надо VK_MENU и VK_DELETE соответственно.
Может есть ещё какие-нибудь идеи - буду рад "выслушать" все!
← →
Codec (2002-07-20 20:30) [6]Ни за что не поверю, что никто не знает! :-))
Выручайте, мастера, plz.
← →
Nimbus (2002-07-29 23:53) [7]Heeeeelp!!! Sos! Кто-нибууудь! Нужна ваша помощь! :-)
← →
Metallica (2002-07-30 12:57) [8]>Song
Все работает кроме [CTRL+ALT+DEL].
← →
sasha_P (2002-07-30 13:04) [9]Смотря зачем это делать.
Может проблему можно обойти и не так?
Примерно - нужно заблокировать (Lock) - тогда не обязательно емулировать нажатие.
← →
Codec (2002-07-30 15:46) [10]Уважаемый sasha_P, Вы правы! Но вся беда в том, что "LockWorkstation" НЕ РАБОТАЕТ в NT4 (только W2K и выше). Что посоветуете, может есть ещё какие-то способы?? Буду очень признателен.
← →
ZZ (2002-07-30 17:20) [11]Codec
Ну вот нажал ты Ctrl+Alt+Del и дальше что?? Как ENTER нажимать будешь???
← →
MAGNUS (2002-07-30 18:43) [12]Ja nikak nepojmu zachem tebe eto nujno? Hochesh programno tachku peregruzit? Tak eto delaetsa bez kombinacii iz treh palcew...
A na wizowi lubih adminowskh fichej suschestwujut swoi WM i API...
← →
Codec (2002-07-30 22:15) [13]to ZZ:
> Ну вот нажал ты Ctrl+Alt+Del и дальше что?? Как ENTER нажимать
> будешь???
что значит НАЖАЛ???!!! Пока ещё не нажал... :-). Если Вы покажете мне работающий код нажатия этих клавиш, то я добавлю к нему работающий код, который "нажмёт" ENTER. :-)) По рукам?
to MAGNUS:
Вот это уже ближе к истине... Поясню: в принципе, мне будет достаточно "залочить" (программно) рабочую станцию NT4. Как это сделать средствами API не нашёл - поэтому и спрашиваю.
Так что если уважаемый ZZ выполнит мою просьбу, то сразу две проблемы будут решены!
← →
Romualdy (2002-07-31 10:31) [14]Интересная проблема, но решение точно есть.
Есть такая прога - RemoteAdmin. Так в ней можно посылать на удалённую машину различные комбинации клавишъ, в том числе и C-A-D.
Работает под ВСЕМИ системами
← →
Codec (2002-08-01 23:12) [15]to Romualdy: Спасибо, конечно, обнадёжил, но что-нить есть более конструктивное?
Заранее благодарю!
← →
Almaz (2002-08-02 00:26) [16]Попробуйте так:
asm
mov EAX,$11B9
int $2e
end;
На Win2000 работает - на NT не проверял.
Удачи.
← →
ZZ (2002-08-02 21:23) [17]Codec
Ничего у тебя так не получится :)) Ты не сможешь никак нажать ентер НА ДРУГОМ РАБОЧЕМ СТОЛЕ!!! Можешь и не пытаться :)))
← →
SPeller (2002-08-02 22:49) [18]ExitWindowsEx - перезагрузка или выключение питания. В хелпе всё описано как да чего.
← →
IrenFD (2002-08-03 03:03) [19]Поройся по хелпу, вроде ExitWindowsEx и станцию блокирует - с параметрами разберись, я когда-то в шутку пробовал.
← →
ZZ (2002-08-03 08:58) [20]ExitWindowsEx ничего не блокирует.. он только комп вырубает. А блокирует LockWorkstation, который не будет работать на NT4.
← →
Codec (2002-08-03 09:54) [21]to Almaz:
> Попробуйте так:
>
> asm
> mov EAX,$11B9
> int $2e
> end;
Этот код действительно работает в 2000-м, но в NT4 ничего не происходит (к сожалению). Всё равно спасибо - совет, безусловно, пригодится!
to ZZ:
Так что, получается что NT4 нельзя заблокировать программно???!!!
← →
ZZ (2002-08-03 16:15) [22]Да вроде можно, но очень криво... я до нормального кода не довел (мне не очень надо было :). А не нормального у меня уже нету :(((
В общем, в NT скринсейвер может заблокировать машину...
Идея такая - в реестке меняем тайм-аут скринсейвера на 1сек и ставим в реестре, чтобы комп блокировался, делаем, чтобы изменения "дошли" до системы (т.е. сообщаем ей, что мы обновили реестр) и делаем так, чтобы скринсейвер запустился (мышку с клавой попридержим немного).
Потом меняем настройки обратно.
ЗЫ. Можно еще на время скринсейвер на какой-нибудь попроще сменить...
← →
Nimbus (2002-08-04 23:07) [23]Идея ZZ в целом хороша, но можно её упростить до одной строки кода, если изменить настройки рабочего стола предварительно( вкладка "Screen Saver" - установить тайм-аут максимально возможный (в NT4 - 60мин., если не ошибаюсь), установить checkbox "Password protected"), а затем в программе вставить следующий код:
SendMessage(GetDesktopWindow,WM_SYSCOMMAND,SC_SCREENSAVE,0);
Сначала запустится ScreenSaver, а по истечении 6-10сек. NT-шка "залочится". Вот и всё!
P.S. хотя, если есть желание, то мона и с реестром поизвратиться :-))
Желаю успехов!
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.02 c