Автор | Сообщение |
|
| |
Пост N: 494
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.07.16 23:02. Заголовок: Как программно определить, что юзер вышел из сеанса RDP ?
Собственно, вопрос в заголовке. Есть часть пользователей, которые работают через RDP. Выходят из сеанса не завершая его, рвется в дальних регионах связь по GPRS, мало ли чего, всякое бывает. Программа продолжает работать. Но в три часа ночи сервер уходит в плановую перезагрузку и разумеется, рубит все висящие задачи. Хотелось-бы корректно завершить работу программы. Например, если сеанс отключен более 30 минут - программа спокойно выходит, не дожидаясь перезагрузки сервера. Есть идеи ?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 200
Зарегистрирован: 21.04.13
|
|
Отправлено: 21.07.16 06:54. Заголовок: Завершить RDP сеанс задачи
Sergy пишет: цитата: | ...корректно завершить работу программы.. |
| Не вполне ясно, что это требование означает. Видимо, что программа должна завершать сама свою работу. Один из вариантов - сеанс при работе периодически определяет время простоя работы (неактивности) юзера, например, время последнего нажатия любой клавишки(мышки) и если простой больше нормы , например больше 1 часа, то программа пишет в свой журнал о завершении по простою- неактивности юзера , ну и все.. Правда, будут завершаться и не потерянные сеансы, где юзер пьет чай по два часа, и может быть недоволен , что нужно заново стартовать(логиниться) после чая Если есть регламент работы по часам , например, после 20-00 все работы должны завершаться, то сеанс просто проверяет свое системное время и после 20-00 сам себя завершает.. Если же предполагается завершение другим программным процессом, то сеанс периодически должен проверять наличие этого внешнего требования - читать поле в служебной таблице и если требование есть- сеанс себя завершает. Внешний супервизорный процесс также может получать список текущих выполняемых задач , например по команде TASKLIST , находить свои подшефные процессы по фильтру и если подшефный процесс не хочет сам завершаться , завершать его принудительно командой , например KILL, что вряд ли корректно, но все же лучше, чем перегрузка сервера. Можно записать в журнал и потом анализировать. Можно на сервере выставить в Планировщике задание на время за час до перегрузки - в два часа ночи, и проверить и завершить все свои залипшие сеансы. цитата: | ..юзер вышел из сеанса RDP.. |
| Не понятно.. наверное, все-таки не вышел, а коннект прервался ? Если удаленная работа через сервер терминалов, то на сервере для ярлыков RemoteApp можно настроить времена - простоя сеанса, пропажи коннекта и т.д. и сервер терминалов будет сам завершать такие процессы по превышению этих установок.
|
|
|
|
| |
Пост N: 496
Зарегистрирован: 08.07.06
|
|
Отправлено: 25.07.16 00:49. Заголовок: Да, имел в виду реши..
Да, имел в виду решить вопрос отключения юзера. В принципе, долгое отсутствие движения мышкой/нажатий на клавиши на "обычной" рабочей станции должно обрабатываться системой как "ушел погулять". Наверное буду думать в этом направлении, спасибо.
|
|
|
|
| постоянный участник
|
Пост N: 5728
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.02.18 16:46. Заголовок: Вопрос по RDP или та..
Вопрос по RDP или так называемом тонком клиенте. Можно ли как то настроить RDP файл и зашить его в свой ехе-ник ? И как потом его запускать ? ShellExecute() подойдёт ? Надоели юзера, которые в нём что-то правят, а потом шумят, программа не запускается. Да и допустим запретить подключать свои диски для этого сеанса настроить можно.
|
|
|
|
| |
Пост N: 6730
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.02.18 17:04. Заголовок: Andrey пишет: Можно..
Andrey пишет: цитата: | Можно ли как то настроить RDP файл и зашить его в свой ехе-ник ? |
| Можно , ведь это текстовый файл (скрипт) с расширением RDP. Andrey пишет: цитата: | ShellExecute() подойдёт ? |
| Возможно и надо чекать. Andrey пишет: цитата: | Да и допустим запретить подключать свои диски для этого сеанса настроить можно. |
| Можно все запретить и при входе запускать нужную прогу. А вообще надо поковырять настройки RDP сервера.
|
|
|
|
| |
Пост N: 6731
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.02.18 17:14. Заголовок: Andrey Немного ссыл..
|
|
|
|
| постоянный участник
|
Пост N: 5732
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.02.18 12:46. Заголовок: Dima пишет: Немного..
Dima пишет: Спасибо БОЛЬШОЕ !
|
|
|
|
| |
Пост N: 41
Зарегистрирован: 22.01.14
|
|
Отправлено: 20.02.18 13:14. Заголовок: Andrey пишет Вопрос ..
Andrey пишет цитата: | Вопрос по RDP или так называемом тонком клиенте. |
| Несколько лет назад мы использовали Remote Desktop Plus (www.donkz.nl/) в режиме командной строки. Там куча настроек, есть примеры на сайте. Это как-бы надстройка над mstsc. Затем перешли на Citrix и все забылось.
|
|
|
|
| постоянный участник
|
Пост N: 5743
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.03.18 13:58. Заголовок: Посмотрел Remote Des..
Посмотрел Remote Desktop Plus. Не то. И грохает Windows Server 2012... Сделал небольшую функцию FUNCTION RunRDP() LOCAL cFile := GetStartUpFolder() + "\Demo4.RDP" ShellExecute( 0, "Open", cFile,,, 3 ) RETURN NIL Первый раз приходиться настраивать вручную и вводить логин и пароль. На ХР вообще ничего не поднимается, молча всё сваливается и всё. Ковыряться и ковыряться в этом...
|
|
|
|
| |
Пост N: 6740
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.03.18 14:52. Заголовок: Andrey пишет: Shell..
Andrey пишет: цитата: | ShellExecute( 0, "Open", cFile,,, 3 ) |
| А если попробовать WAPI_ShellExecute( , "open", cFile, , , 3 )
|
|
|
|
| постоянный участник
|
Пост N: 1384
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.03.18 14:57. Заголовок: Andrey пишет: Первы..
Andrey пишет: цитата: | Первый раз приходиться настраивать вручную и вводить логин и пароль. |
| *.rdp - обычный текстовый файл. Ты можешь имя туда вписать сам. Ну а пароль - да, руками. Или запомнить сразу.
|
|
|
|