Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/49: Рейтинг темы: голосов - 49, средняя оценка - 5.00
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
1

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

15.06.2011, 20:47. Показов 9786. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся с известной многим проблемой. Качаешь что-нибудь большое. Качаешь, качаешь, качаешь,, качаешь, время уже часа 4 ночи, ты естественно дрыхнешь сном младенца(или алкоголика- всё зависит от дня недели=)), а загрузка наконец-то заканчивается. И всё... Дальше комп висит без дела до того момента, пока я не встану и не выключу его. Ну а комп тоже хочет спать(у каждой его детали тоже есть предел мото-часов), да и электричество у нас в стране не шибко дёшево. Так вот в чём задача:необходимо своять программу, которая отслеживает состояние загрузки и выключает компьютер.
Ответы типа:скачай давнлоад менеджер не принимаются, т.к у меня на них жуткая аллергия, а качаю я в основном через барузер Opera. Использование просто таймера тоже не катит(время загрузки-вещь довольно загадочная, и хоть и пишется, что осталось 1 час, но может быть остаться как 30, так и 200 минут чистого времени.
Была у меня идея сверять контрольные суммы, но это
1) постоянное обращение к свойству файла, который меняется
2)контрольная сумма может быть и не дана на сайте производителя(да её ещё найти надо)
С размером файла тажа проблема.
Буду благодарен за мысли и желательно в письменном виде.(и с примерами кода=))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2011, 20:47
Ответы с готовыми решениями:

Как отследить завершение процесса?
Здравствуйте, есть небольшой вопрос, можно как-то отследить завершение процесса? Мой случай, есть...

Выключить компьютер по заданному времени
Подскажите с кодом: Нужно выключить компьютер по указанному времени пользователя. Допустим, сейчас...

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

Выключить компьютер, который находится в сети
Как программно выключить компьютер который находиться в сети? Зная его мак адрес.

17
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
15.06.2011, 20:56 2

Не по теме:

Provaider, (не в обиду) ты конечно мастер изобретать велосипеды, но хоть какие-нибудь попытки реализации выкладывай. :)

Можно просто проверять размер файла, если он не меняется в течение допустим 1 минуты > Power OFF
2
557 / 434 / 21
Регистрация: 16.12.2010
Сообщений: 953
15.06.2011, 21:00 3
я бы написал свою качалку...
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
15.06.2011, 21:00 4

Не по теме:

Не знаю как опера, по мне так мастера закачек куда лучше, все-таки они для этого и написаны.
Да и потом, что страшного что комп работает всю ночь. Мне если не на работу, комп забывает об отдыхе напрочь, я сплю под джаз, и это сутками. Скоро отпуск, компу будет ой как нелегко. Для того он и комп, чтобы работать. На работе компы вообще не выключаются у нас в IT-отделе, круглосуточно работают. Как и сервера.


Но это все офф-топ, и к теме никак не относится.
Оперой я не пользовался, а вот в Лисе есть такая фишка - при скачивании файла в папке с загрузками есть не только файлы, которые я скачиваю, а еще какие-то странные файлы, бэкапы я так понял на случай прерывания загрузки чтобы потом не с начала качать.
При завершении загрузок эти файлы удаляются, а мы имеем нужный файл.

Поэтому я могу написать программу для лисы, которая будет отслеживать - если странные файлы из папки все пропали, то выключаем компьютер. Можно таймер поставить где-нибудь с интервалом минут в 5, этого хватит за глаза.
В опере я не в курсе, как устроена закачка.
Это самое первое, что пришло в голову, не углубляясь в АПИ и даже не знаю что еще.
Метод топорный и неуниверсальный.
1
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
15.06.2011, 21:12 5
Цитата Сообщение от Памирыч Посмотреть сообщение

Не по теме:

Не знаю как опера, по мне так мастера закачек куда лучше, все-таки они для этого и написаны.
Да и потом, что страшного что комп работает всю ночь. Мне если не на работу, комп забывает об отдыхе напрочь, я сплю под джаз, и это сутками. Скоро отпуск, компу будет ой как нелегко. Для того он и комп, чтобы работать. На работе компы вообще не выключаются у нас в IT-отделе, круглосуточно работают. Как и сервера.


Но это все офф-топ, и к теме никак не относится.
Оперой я не пользовался, а вот в Лисе есть такая фишка - при скачивании файла в папке с загрузками есть не только файлы, которые я скачиваю, а еще какие-то странные файлы, бэкапы я так понял на случай прерывания загрузки чтобы потом не с начала качать.
При завершении загрузок эти файлы удаляются, а мы имеем нужный файл.

Поэтому я могу написать программу для лисы, которая будет отслеживать - если странные файлы из папки все пропали, то выключаем компьютер. Можно таймер поставить где-нибудь с интервалом минут в 5, этого хватит за глаза.
В опере я не в курсе, как устроена закачка.
Это самое первое, что пришло в голову, не углубляясь в АПИ и даже не знаю что еще.
Метод топорный и неуниверсальный.
Памирыч, я все же склоняюсь к измерению размера файла. Если минуту или 2 размер не меняется, это значит, что либо закачка завершена, либо пропало соединение с сервером или интернетом >> закачка не возможна >> ОФФ
0
557 / 434 / 21
Регистрация: 16.12.2010
Сообщений: 953
15.06.2011, 21:16 6
Размер файла сравнивать хотите? мне как пользователю который любит качать из интернета всякую фигню , будет очень неудобно каждый раз указывать путь к файлам, чтобы их программа проверяла, а что если у нас на 5 минут прервется соединение, а потом оно продолжится, а мы возьмем и комп вырубим
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
15.06.2011, 21:18 7
_Лёша_, Я когда пост писал, твоего еще не видел.
Твое решение мне конечно больше нравится.

Ciberst тоже верно говорит. Думаем еще...
0
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
15.06.2011, 21:22 8
Цитата Сообщение от Ciberst Посмотреть сообщение
Размер файла сравнивать хотите? мне как пользователю который любит качать из интернета всякую фигню , будет очень неудобно каждый раз указывать путь к файлам, чтобы их программа проверяла, а что если у нас на 5 минут прервется соединение, а потом оно продолжится, а мы возьмем и комп вырубим
Не, ну это как вариант, не углубляясь в проблему.

Не по теме:

углублялка уже не работает сегодня %-)



Добавлено через 2 минуты
Цитата Сообщение от Памирыч Посмотреть сообщение
_Лёша_, Я когда пост писал, твоего еще не видел.
Твое решение мне конечно больше нравится.

Ciberst тоже верно говорит. Думаем еще...
Контрольная сумма? Хз как ее получать...

Добавлено через 1 минуту
Еще идея, проверить размер файла по ссылке, сравнить с тем, что есть у нас >> OFF
0
557 / 434 / 21
Регистрация: 16.12.2010
Сообщений: 953
15.06.2011, 21:36 9
насчет проверки есть ли интернет или нет, то тут можно устроить мега пинг : пинг к Google, если сервер гугла вдруг не отвечает( на случай если на него упадет ядерная бомба) пингуемся к яндексу, если и он отвечает, то на случай вдруг в России нет света, пингуемся к сайту антивирусника какого-либо например к Avira
0
2 / 2 / 0
Регистрация: 23.02.2011
Сообщений: 38
15.06.2011, 22:14 10
недели две назад сделал что-то подобное,т.к столкнулся с такой проблемой.Сделал по другому.
На форму кинул два лабла,текстбокс,кнопнку и таймер.
Первый листбокс Показывает время компьютера,а второй выставляю сам при помощи текстбокса.
Запускаю таймер и If Label1.text = Label2.text then Выключение компа End If . обычно в загрузках показывается оставшееся время.
Вот только одна проблема,эта хрень хорошо работает на ХР,а на вин 7 если какой-то софт остается открытым то *** выключишь.Типо принудительное выключение.
найди как выключить сам комп,с FORCE Power OFF .

 Комментарий модератора 
Нецензурные выражения запрещены.
ТС в первом посте обозначил, что такой принцип ему не подходит
0
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
15.06.2011, 22:26 11
Цитата Сообщение от Replica Посмотреть сообщение
недели две назад сделал что-то подобное,т.к столкнулся с такой проблемой.Сделал по другому.
На форму кинул два лабла,текстбокс,кнопнку и таймер.
Первый листбокс Показывает время компьютера,а второй выставляю сам при помощи текстбокса.
Запускаю таймер и If Label1.text = Label2.text then Выключение компа End If . обычно в загрузках показывается оставшееся время.
Вот только одна проблема,эта хрень хорошо работает на ХР,а на вин 7 если какой-то софт остается открытым то *** выключишь.Типо принудительное выключение.
найди как выключить сам комп,с FORCE Power OFF .

Нецензурные выражения запрещены.
ТС в первом посте обозначил, что такой принцип ему не подходит
Тут есть решение Как програмно отключить компьтер?
0
195 / 187 / 15
Регистрация: 09.02.2011
Сообщений: 457
15.06.2011, 23:06 12
Может быть корявенькое решение но должно работать )))
Чтобы работало вкладка загрузки должна быть активной... делал для последней доступной оперы ибо пользуюсь Хромом а Оперу пришлось качать.


VB.NET
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
Public Class Form1
 
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String _
    ) As Integer
 
    Private Declare Function apiGetWindowText Lib "user32" Alias "GetWindowTextA" ( _
    ByVal hwnd As Integer, _
    ByVal lpString As String, _
    ByVal cch As Integer _
    ) As Integer
 
    Private Declare Function apiGetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" ( _
    ByVal hwnd As Integer _
    ) As Integer
 
    Private Sub OperaDownloads()
 
        Dim hwnd As Integer
        Dim OperaWindName As String = ""
        hwnd = FindWindow("OperaWindowClass", vbNullString)
 
        OperaWindName = GetWindowName(hwnd)
 
        If OperaWindName.IndexOf("Загрузки") > -1 Then
            If OperaWindName.IndexOf(":") > -1 Then
                Dim mtch As System.Text.RegularExpressions.Match
                mtch = System.Text.RegularExpressions.Regex.Match(OperaWindName, "\s[\d]*\:[\d]*\s")
                If mtch.Length > 0 Then
                    While mtch.Length > 0
                        OperaWindName = GetWindowName(hwnd)
                        mtch = System.Text.RegularExpressions.Regex.Match(OperaWindName, "\s[\d]*\:[\d]*\s")
                        Debug.Print("До отключения осталось: " & mtch.Value)
                        Threading.Thread.Sleep(1000)
                    End While
                    MessageBox.Show("Закачка завершена Комп отключился")
                End If
 
            Else
                MessageBox.Show("Активных загрузок нет")
            End If
        Else
            MessageBox.Show("Открыта не та вкладка")
        End If
    End Sub
    'Функция не моя
    Public Function GetWindowName(ByVal hWnd As Integer) As String
        Try
            Dim tLength As Integer
            Dim rValue As Integer
            Dim wName As String
            tLength = apiGetWindowTextLength(hWnd) + 4
            wName = ""
            wName = wName.PadLeft(tLength) 'add buffer
            rValue = apiGetWindowText(hWnd, wName, tLength)
            wName = wName.Substring(0, rValue) 'strip buffer
            Return wName
        Catch ex As Exception
            Return ""
        End Try
    End Function
End Class
2
557 / 434 / 21
Регистрация: 16.12.2010
Сообщений: 953
15.06.2011, 23:46 13
Мне, кажется, привязывать программу к определенному браузеру не политкоректно, мы (программисты) не должны ущемлять людей работающих и отдыхающих с лисой, с хромом, с оперой, с сафари и тд, надо писать программу универсальную, гибкую.

Вопрос к ТС, по скольку в опере поддерживается закачка ТоррентФайлов, у меня возник вопрос, а не с торрентов ли мы качаем?
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
16.06.2011, 17:29  [ТС] 14
Да торренты там поддерживаются, но именно для этого я использую uTorrent. речь идёт об обычных файлах. Кстати, там с авто выключением тоже проблемы. Самый нормальный вариант, который я здесь слышал, это каждые 7 минут сверять размер файла. Если он не изменился, подождать ещё минут 5 и потом ещё раз проверить, а потом уж точно комп отправить спать. Наверное так и поступлю. В скором времени ждите прогу на форуме.
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
16.06.2011, 19:03  [ТС] 15
Вот по-быстрому что-то накрапал, но при окончании загрузки он выдал такую ошибку.
Миниатюры
Отследить завершение загрузок в браузере и выключить компьютер  
Вложения
Тип файла: rar AutoTickSleep.rar (97.7 Кб, 21 просмотров)
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
16.06.2011, 20:16 16
Provaider, Что произошло с установочным файлом MailRuAgent?
Ошибку надо устранять, тем более, необработанную
0
557 / 434 / 21
Регистрация: 16.12.2010
Сообщений: 953
16.06.2011, 22:10 17
итак, набросаю несколько идей, которые мне пришли в голову, когда шел домой (долгий путь, дело было вечером, делать было нечего). Ну так ВОТ иду я, иду, и тут бац мысль в голову: когда мы качаем, то очевидно, о процесс погружает намного больше памяти, поэтому предлагаю следить за потреблением памяти нужного процесса, и как только мы заметим что она упала на определенную величину, то тут же даем компу сигнал : вытащить провод из розетки, ибо хватит уже наше электричество дорогое тратить попросту
0
105 / 33 / 1
Регистрация: 01.10.2010
Сообщений: 310
16.06.2011, 22:18  [ТС] 18
Ciberst, загрузчик Operы штука загадочная(не меньше чем и другие загрузчики). Сразу после окончания загрузки файла, загрузка ЦП и памяти увеличивается на 10%-80 %, в зависимости от веса закаченного файла(в это время он комп подчищает временные файлы, до копирует нужные, и прочее..).
Ну в принципе вот и проект. С выключением робит, со спящим не побывал...(насиловал прогу через загрузку многострадального майл агента-ну хоть на что-то сгодился=))
Вложения
Тип файла: rar AutoTickSleep.rar (110.5 Кб, 69 просмотров)
0
16.06.2011, 22:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2011, 22:18
Помогаю со студенческими работами здесь

Отследить нажатие кнопки на странице в браузере в WinForm
Имеем WinForm, на ней WebBrowser. Можно ли отследить нажатие кнопки на странице в окне браузера?

Отследить завершение процесса
Программа должна следить за работой процесса, например notepad.exe. Если этот процесс завершается,...

Отследить завершение произвольного процесса.
День добрый! Вообщем стоит задача, при запуске приложения стартовать др приложение, и следить за...

Отследить запуск и завершение приложений
Программа при запуске показывает активно ли конкретное приложение (пр. калькулятор), если оно...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru