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

Вниз

Как обмануть таймер простоя   Найти похожие ветки 

 
Dymok ©   (2013-07-19 16:10) [0]

Есть RDP-сервер (WindowsServer2008R2), на котором настроено завершение сеанса пользователя через некоторое время его бездействия.

Как обойти это ограничение?

Пробовал вот так эмулировать периодическое нажатие клавиши, движение мышью- все не помогает:


procedure TForm1.Timer1Timer(Sender: TObject);
begin
   setcursorpos(random(Screen.Width-1), Random(Screen.Height-1));
   keybd_event(VK_SHIFT,0,0,0);
   keybd_event(VK_MENU,0,0,0);
   keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
   keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
   SendMessage(Edit1.handle, wm_char, ord("E"), 0);
end;


 
Inovet ©   (2013-07-19 17:13) [1]

Может, это надо?
SetThreadExecutionState


 
брат Птибурдукова   (2013-07-19 18:11) [2]


> Есть RDP-сервер (WindowsServer2008R2), на котором настроено
> завершение сеанса пользователя через некоторое время его
> бездействия.
Так может, стоит перенастроить, а не пытаться обмануть?


 
Inovet ©   (2013-07-19 18:54) [3]

> [2] брат Птибурдукова   (19.07.13 18:11)

Ленивый одмин не делает.


 
Dymok ©   (2013-07-22 09:19) [4]

А как вызвать SetThreadExecutionState? Не могу разобраться. В Windows.pas она не описана...


 
Inovet ©   (2013-07-23 16:01) [5]

> [4] Dymok ©   (22.07.13 09:19)
> А как вызвать SetThreadExecutionState?

Так всё же в справке есть.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa373208%28v=vs.85%29.aspx


function SetThreadExecutionState(esFlags: UINT): UINT; stdcall; external "Kernel32" name "SetThreadExecutionState";
...
procedure TForm1.Button1Click(Sender: TObject);
begin
 if SetThreadExecutionState($00000001 + $80000000) = 0 then
   ShowMessage("Чёта не получилось, придётся спать.")
 else
   ShowMessage("Нескафе голд - не замерзай ночью!");
end;


 
brother ©   (2013-07-23 20:55) [6]

яб нашел, где описаны флаги ES_XXX и использовал бы их...


 
Dymok ©   (2013-07-29 08:48) [7]

Спасибо. Самое трудное для меня было написать вызов API - функции, используя описание от Microsoft. Хотя честно читал статью про это на королевстве, всё равно было как-то непонятно...

Но, к сожалению,  SetThreadExecutionState, всё равно не помогла, наверно винду так легко не обманешь ((


 
Dymok ©   (2013-07-29 08:50) [8]

brother, флаги ES_XXX тоже пробовал


 
Inovet ©   (2013-07-29 10:28) [9]

> [7] Dymok ©   (29.07.13 08:48)
> Но, к сожалению,  SetThreadExecutionState, всё равно не
> помогла, наверно винду так легко не обманешь ((

Во-первых, программа, вызвавшая SetThreadExecutionState, должна быть запущена. Во-вторых, я не знаю, как там RDP отслеживает активность пользователя. Во всяком случае SetThreadExecutionState не имитация активности и не обман, а сообщение системе о необходимости не уходить в спячку, а под активностью пользователя может подразумеватья нечто другое.


 
Dymok ©   (2013-07-29 12:58) [10]

1) Программа, вызвавшая SetThreadExecutionState - остаётся запущена
   закрываю RDP-соединение не завершая сеанс пользователя.

2) Под "активностью" пользователя понимается то, что он (то есть я! )) ) должен или двигать мышкой или нажимать любые кнопки, не реже чем установлен разрешенный период "бездействия"

Т.е. собственно вопрос сводится к тому, как сказать винде что нажата кнопка или подвинута мышь, так, чтобы она не поняла что это  "имитация"


 
Комп2   (2013-08-22 00:32) [11]

сделать железный эмулятор - включается в USB и нажимает кнопки...


 
antonn ©   (2013-08-22 10:18) [12]


>  Во-вторых, я не знаю, как там RDP отслеживает активность
> пользователя

вроде через WinStationQueryInformationW


 
RWolf ©   (2013-08-22 10:30) [13]

Приобрести отладочную плату на STM32, внести лёгкие правки в поставляемую в комплекте программу эмулятора мыши и воткнуть плату в свободный порт USB.
Результат — курсор ездит по экрану сам, RDP побеждён.
Нетривиально, зато интересно.


 
Вова   (2013-08-22 13:52) [14]


> сделать железный эмулятор - включается в USB и нажимает
> кнопки...


сделать программный эмулятор железного эмулятора, рассказывайте как :-D



Страницы: 1 вся ветка

Текущий архив: 2014.06.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.005 c
15-1385483811
Абориген
2013-11-26 20:36
2014.06.08
Найти вкладку в FireFox.


1-1324959078
klimov
2011-12-27 08:11
2014.06.08
ZLIB (с мусором в конце) в XE/XE2 - косячит?


15-1385152203
Юрий
2013-11-23 00:30
2014.06.08
С днем рождения ! 23 ноября 2013 суббота


1-1325530715
S-C-L
2012-01-02 22:58
2014.06.08
XML Parser


2-1376642323
i2e
2013-08-16 12:38
2014.06.08
Определить нажатие кнопки