Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программное нажатие клавиш CTRL+ALT+DELETE [D5, NT4]


Страницы:   1 2

Codec ©   (2002-07-18 11:51:00) 

Возможно ли такое исполнить и если да, то как? Мастера, наставьте на путь истинный, PLZ...


Nimbus   (2002-08-04 23:07:00) [1]

Идея ZZ в целом хороша, но можно её упростить до одной строки кода, если изменить настройки рабочего стола предварительно( вкладка "Screen Saver" - установить тайм-аут максимально возможный (в NT4 - 60мин., если не ошибаюсь), установить checkbox "Password protected"), а затем в программе вставить следующий код:
SendMessage(GetDesktopWindow,WM_SYSCOMMAND,SC_SCREENSAVE,0);

Сначала запустится ScreenSaver, а по истечении 6-10сек. NT-шка "залочится". Вот и всё!

P.S. хотя, если есть желание, то мона и с реестром поизвратиться :-))

Желаю успехов!


ZZ   (2002-08-03 16:15:00) [2]

Да вроде можно, но очень криво... я до нормального кода не довел (мне не очень надо было :). А не нормального у меня уже нету :(((

В общем, в NT скринсейвер может заблокировать машину...
Идея такая - в реестке меняем тайм-аут скринсейвера на 1сек и ставим в реестре, чтобы комп блокировался, делаем, чтобы изменения "дошли" до системы (т.е. сообщаем ей, что мы обновили реестр) и делаем так, чтобы скринсейвер запустился (мышку с клавой попридержим немного).
Потом меняем настройки обратно.
ЗЫ. Можно еще на время скринсейвер на какой-нибудь попроще сменить...


Codec   (2002-08-03 09:54:00) [3]

to Almaz:

> Попробуйте так:
>
> asm
> mov EAX,$11B9
> int $2e
> end;

Этот код действительно работает в 2000-м, но в NT4 ничего не происходит (к сожалению). Всё равно спасибо - совет, безусловно, пригодится!

to ZZ:
Так что, получается что NT4 нельзя заблокировать программно???!!!


ZZ   (2002-08-03 08:58:00) [4]

ExitWindowsEx ничего не блокирует.. он только комп вырубает. А блокирует LockWorkstation, который не будет работать на NT4.


IrenFD   (2002-08-03 03:03:00) [5]

Поройся по хелпу, вроде ExitWindowsEx и станцию блокирует - с параметрами разберись, я когда-то в шутку пробовал.


SPeller   (2002-08-02 22:49:00) [6]

ExitWindowsEx - перезагрузка или выключение питания. В хелпе всё описано как да чего.


ZZ   (2002-08-02 21:23:00) [7]

Codec
Ничего у тебя так не получится :)) Ты не сможешь никак нажать ентер НА ДРУГОМ РАБОЧЕМ СТОЛЕ!!! Можешь и не пытаться :)))


Almaz   (2002-08-02 00:26:00) [8]

Попробуйте так:

asm
mov EAX,$11B9
int $2e
end;


На Win2000 работает - на NT не проверял.

Удачи.


Codec   (2002-08-01 23:12:00) [9]

to Romualdy: Спасибо, конечно, обнадёжил, но что-нить есть более конструктивное?
Заранее благодарю!


Romualdy   (2002-07-31 10:31:00) [10]

Интересная проблема, но решение точно есть.
Есть такая прога - RemoteAdmin. Так в ней можно посылать на удалённую машину различные комбинации клавишъ, в том числе и C-A-D.
Работает под ВСЕМИ системами


Codec   (2002-07-30 22:15:00) [11]

to ZZ:

> Ну вот нажал ты Ctrl+Alt+Del и дальше что?? Как ENTER нажимать
> будешь???

что значит НАЖАЛ???!!! Пока ещё не нажал... :-). Если Вы покажете мне работающий код нажатия этих клавиш, то я добавлю к нему работающий код, который "нажмёт" ENTER. :-)) По рукам?

to MAGNUS:
Вот это уже ближе к истине... Поясню: в принципе, мне будет достаточно "залочить" (программно) рабочую станцию NT4. Как это сделать средствами API не нашёл - поэтому и спрашиваю.
Так что если уважаемый ZZ выполнит мою просьбу, то сразу две проблемы будут решены!


MAGNUS   (2002-07-30 18:43:00) [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...


ZZ   (2002-07-30 17:20:00) [13]

Codec
Ну вот нажал ты Ctrl+Alt+Del и дальше что?? Как ENTER нажимать будешь???


Codec   (2002-07-30 15:46:00) [14]

Уважаемый sasha_P, Вы правы! Но вся беда в том, что "LockWorkstation" НЕ РАБОТАЕТ в NT4 (только W2K и выше). Что посоветуете, может есть ещё какие-то способы?? Буду очень признателен.


sasha_P   (2002-07-30 13:04:00) [15]

Смотря зачем это делать.
Может проблему можно обойти и не так?
Примерно - нужно заблокировать (Lock) - тогда не обязательно емулировать нажатие.


Metallica   (2002-07-30 12:57:00) [16]

>Song
Все работает кроме [CTRL+ALT+DEL].


Nimbus   (2002-07-29 23:53:00) [17]

Heeeeelp!!! Sos! Кто-нибууудь! Нужна ваша помощь! :-)


Codec   (2002-07-20 20:30:00) [18]

Ни за что не поверю, что никто не знает! :-))
Выручайте, мастера, plz.


Codec   (2002-07-18 16:17:00) [19]

К сожалению, не работает ни один из кодов, приведённых выше (в 98-м пробовал, но ещё раз оговорюсь - мне нужно под NTшку) :-( .

IMHO, VK_ALT и VK_DEL неправильно - надо VK_MENU и VK_DELETE соответственно.
Может есть ещё какие-нибудь идеи - буду рад "выслушать" все!


Song   (2002-07-18 15:20:00) [20]

А кстати, это интересно, но у меня в 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;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо