Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
115 / 100 / 52
Регистрация: 14.09.2011
Сообщений: 681
Записей в блоге: 1
1

Определить простой компьютера

14.07.2020, 20:54. Просмотров 2422. Ответов 6
Метки нет (Все метки)

1)Как можно определить простой компьютера в течении 3 минут?
под простоем понимается
а)компьютер не пользуется, не смотрится фильм, не слушается музыка и так далее.
я так понимаю , можно по следующим критериям
1)мышь не двигается
2)нету нажатий на клавиатуру
3)с фильмами, думаю можно считывать пиксили
4)с музыкой как?

или есть какие-то встроенные фукции в виндовс ,что отошлет сигнал?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2020, 20:54
Ответы с готовыми решениями:

Определить простой компьютера
Всем привет. Начал писать программку которая выключает ПК при простое. Структура LASTINPUTINFO...

Простой способ определить вероятность попадания в диапазон
Есть задача: определить вероятность попадания X в диапазон при M=0, D = 1/3. Насколько я...

Определить характеристики компьютера
Помогите пожалуйста с лабой, нужно написать программу на паскале чтоб она выдавала характеристики...

Определить бездействие компьютера
Лиди помогите реализовать!!! Надо чтобы запускалось действие если мышь была не активна пару...

6
Модератор
1425 / 425 / 140
Регистрация: 11.08.2017
Сообщений: 1,449
14.07.2020, 21:15 2
При чем тут java? Такое без доступа к нативам будет проблемно сделать, особенно на джаве, где если и есть нужный функционал то только с активным окном
0
115 / 100 / 52
Регистрация: 14.09.2011
Сообщений: 681
Записей в блоге: 1
14.07.2020, 21:20  [ТС] 3
1)этот функционал мне нужен на джава, можно же вызвать, вопрос что вызывать
2)у меня консольное приложение
0
Модератор
1425 / 425 / 140
Регистрация: 11.08.2017
Сообщений: 1,449
14.07.2020, 21:40 4
snajper_ro, в консоли нету возможности вообще нажатия кнопок отслеживать, только ввод символов
а для нативов изучайте winapi и jni/jna
1
2888 / 2464 / 761
Регистрация: 05.07.2013
Сообщений: 11,923
14.07.2020, 21:44 5
snajper_ro, https://docs.microsoft.com/ru-... dfrom=MSDN
1
115 / 100 / 52
Регистрация: 14.09.2011
Сообщений: 681
Записей в блоге: 1
31.07.2020, 09:02  [ТС] 6
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package cem.util.jna;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import com.sun.jna.*;
import com.sun.jna.win32.*;
import java.util.List;
 
/**
 * Utility method to retrieve the idle time on Windows and sample code to test it.
 * JNA shall be present in your classpath for this to work (and compile).
 * @author ochafik
 */
public class Win32IdleTime {
 
    public interface Kernel32 extends StdCallLibrary {
        Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
 
        /**
         * Retrieves the number of milliseconds that have elapsed since the system was started.
         * @see http://msdn2.microsoft.com/en-us/library/ms724408.aspx
         * @return number of milliseconds that have elapsed since the system was started.
         */
        public int GetTickCount();
    };
 
    public interface User32 extends StdCallLibrary {
        User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
 
        /**
         * Contains the time of the last input.
         * @see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputstructures/lastinputinfo.asp
         */
        public static class LASTINPUTINFO extends Structure {
            public int cbSize = 8;
 
            /// Tick count of when the last input event was received.
            public int dwTime;
 
            @Override
            protected List getFieldOrder() {
                return Arrays.asList(new String[] { "cbSize", "dwTime" });
            }
        }
 
        /**
         * Retrieves the time of the last input event.
         * @see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/getlastinputinfo.asp
         * @return time of the last input event, in milliseconds
         */
        public boolean GetLastInputInfo(LASTINPUTINFO result);
    };
 
    /**
     * Get the amount of milliseconds that have elapsed since the last input event
     * (mouse or keyboard)
     * @return idle time in milliseconds
     */
    public static int getIdleTimeMillisWin32() {
        User32.LASTINPUTINFO lastInputInfo = new User32.LASTINPUTINFO();
        User32.INSTANCE.GetLastInputInfo(lastInputInfo);
        return Kernel32.INSTANCE.GetTickCount() - lastInputInfo.dwTime;
    }
 
    enum State {
        UNKNOWN, ONLINE, IDLE, AWAY
    };
 
    public static void main(String[] args) {
        if (!System.getProperty("os.name").contains("Windows")) {
            System.err.println("ERROR: Only implemented on Windows");
            System.exit(1);
        }
        State state = State.UNKNOWN;
        DateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss");
 
        for (;;) {
            int idleSec = getIdleTimeMillisWin32() / 1000;
            System.out.println(idleSec);
            State newState =
                    idleSec < 30 ? State.ONLINE :
                            idleSec > 5 * 60 ? State.AWAY : State.IDLE;
 
            if (newState != state) {
                state = newState;
                System.out.println(dateFormat.format(new Date()) + " # " + state);
            }
            try {
                Thread.sleep(1000);
            } catch (Exception ex) {}
        }
    }
}
Определяет мышь и клавитаутуру на ввод событий, но как определить включено видео или музыка?
Виндовс определяет когда человек смотрит видео и не отправляет компьютер в сон?

Добавлено через 2 минуты
https://docs.microsoft.com/en-... dfrom=MSDN
0
115 / 100 / 52
Регистрация: 14.09.2011
Сообщений: 681
Записей в блоге: 1
06.08.2020, 12:43  [ТС] 7
есть два метода в вин апи
1)простой компьютера(когда не смотрят видео)
2)и время последнего ввода
тут код
https://github.com/robertmakry... cutor.java
я правда не нашел аналог вот этого метода в линукс
Java
1
2
3
4
PowrProf.INSTANCE.CallNtPowerInformation(PowrProf.POWER_INFORMATION_LEVEL.SystemExecutionState,
                    null, 0, mem, (int) mem.size());
и PowrProf.INSTANCE.CallNtPowerInformation(PowrProf.POWER_INFORMATION_LEVEL.SystemPowerInformation,
                null, 0, mem, (int) mem.size());
этот метод может вернуть время установленное пользователем, что указывает компьютеру через сколько может уйти в сон(во время простоя)
я попробую в разделе линукс уточнить

Добавлено через 9 минут
вот создал Получить время когда компьютер может идти в sleep
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2020, 12:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить имя компьютера
Добрый день Подскажите пожалуйста как определить имя компьютера и пароль? То имя компьютера и...

Определить IP-адрес компьютера
Ребят, привет В общем делал до этого программу на Visal Basic 6 (и вы мне в этом помогали). Но...

Определить IP-адрес компьютера
Пишу программу для обмена сообщениями по локальной сети. Есть ли функция или другой способ для...

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

Программно определить имя компьютера
Как программно узнать имя компьютера в сети, на котором работает пользователь?

Как определить обурудование компьютера?
Как так сделать?или скопировать из диспетчера устройств Windows.Может есть специальная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.