|
|
|
выход из Swing-app по timeout; например через 120 минут.
|
|||
|---|---|---|---|
|
#18+
Имеется Swing application. Требуется его закрыть, если пользователь не проявляет "активности" в течение 120 минут. Закрывать его собираюсь System.exit(0), использую Timer, вопрос - как отследить, что никаких действий с приложением не делается ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 21:23:47 |
|
||
|
выход из Swing-app по timeout; например через 120 минут.
|
|||
|---|---|---|---|
|
#18+
Формализуйте понятие "не делаются действия с приложением" для начала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 11:45:22 |
|
||
|
выход из Swing-app по timeout; например через 120 минут.
|
|||
|---|---|---|---|
|
#18+
"не делаются действия с приложением" - нет событий от пользователя, затрагивающих запущенное приложение - окно не двигается, не сворачивается и не разворачивается, по кнопкам - вкладкам - менюшкам - окошку - порожденным окошкам - не щелкают, "горячие" комбинации символов с клавиатуры не поступают... наверняка можно делать не в лоб, отслеживая все эти события, а попроще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 14:01:52 |
|
||
|
выход из Swing-app по timeout; например через 120 минут.
|
|||
|---|---|---|---|
|
#18+
Слушать предка всех листнеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 14:08:12 |
|
||
|
выход из Swing-app по timeout; например через 120 минут.
|
|||
|---|---|---|---|
|
#18+
и как вы себе это представляете? В-общем имхо нужно перекрывать java.awt.Component.processEvent() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 17:31:15 |
|
||
|
выход из Swing-app по timeout; например через 120 минут.
|
|||
|---|---|---|---|
|
#18+
получилось так: //этот фрагмент "впизивает" в череду событий свое Toolkit.getDefaultToolkit().getSystemEventQueue().push(new MyEventQueue()); -------------------------------------- import java.awt.*; // печатает все события типа AWTEvent, но их можно не только //печатать, но и записывать время возникновения (recordLastEvent) import java.awt.event.*; import javax.swing.*; public class MyEventQueue extends EventQueue { protected void dispatchEvent(AWTEvent event) { // the only functionality I add is that I print out all the events System.out.println(event); super.dispatchEvent(event); } } -------------------------------------- private void recordLastEvent(AWTEvent event) { lastTime = System.currentTimeMillis(); } -------------------------------------- и потом в потоке проверять: if (System.currentTimeMillis() - lastTime >= TIMEOUT) то .. выходим или опять перелогиниваемся. помогла эта ссылка - http://www.smotricz.com/kabutz/Issue007.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 17:48:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34047336&tid=2147595]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 363ms |

| 0 / 0 |
