Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.14;
Скачать: CL | DM;

Вниз

Программное нажатие клавиш 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.019 c
1-45329
Barmaglot
2002-10-05 14:01
2002.10.14
Перевод угловых величин


3-45174
AlexeyBl
2002-09-21 18:12
2002.10.14
Блокировка заливки синим цветом активной ячейки TDBGrid...


1-45336
MaximatorVeter
2002-10-04 23:48
2002.10.14
Хочу поменять 2 эл-та коллекции между собой с помощью указателей.


1-45408
Виктор
2002-10-03 12:21
2002.10.14
Перекомпиляция VCL


1-45288
Keplin Sergey
2002-10-04 14:02
2002.10.14
Как в цикле прогнать все компоненты приложения?