Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.06.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





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


2-1376989525
Novice
2013-08-20 13:05
2014.06.08
Как побороть "proxies.dcu"?


2-1376933051
lancomm
2013-08-19 21:24
2014.06.08
поиск по базе


15-1385670603
Юрий
2013-11-29 00:30
2014.06.08
С днем рождения ! 29 ноября 2013 пятница


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский