Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
MACTEP434
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
1

Проверить не нажал ли пользователь кнопку завершения работы

17.06.2013, 09:34. Просмотров 756. Ответов 6
Метки нет (Все метки)

Как проверить не нажал ли пользователь кнопку завершения работы в меню пуск?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 09:34
Ответы с готовыми решениями:

Как определить что пользователь нажал на сообщение (ShowBalloonTip) ?
Как определить что пользователь нажал на сообщение (ShowBalloonTip) ? Пример сообщения : ...

Как сделать, чтобы нажал на кнопку, и Panel изменила размеры
Помогите! У меня есть Panel1 Button1 У Panel1 по начало стоит размер 100; 50. Если нажать...

Ожидание завершения работы запущенной программы
здравствуйте. можноли в программе на VB запустив в скрытом режиме консольную утилиту и передав...

Как узнать, на какую кнопку нажал пользователь?
Есть некая база данных с которой считываем вопрос и ответы к нему printf("<h3>Вопрос: ...

Как продолжить выполнение скрипта PHP если пользователь нажал кнопку отмены в браузере?
Доброго времени суток. У меня такой вопрос, как продолжить выполнение скрипта PHP если...

6
AeroWhite
Форумчанин.NET
543 / 414 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.06.2013, 11:19 2
Эмм...если я не ошибаюсь, после нажатия этой кнопки компьютер выключится? В чем тогда смысл?
0
PAnT0P
1024 / 548 / 106
Регистрация: 26.03.2012
Сообщений: 987
17.06.2013, 15:57 3
Цитата Сообщение от AeroWhite Посмотреть сообщение
Эмм...если я не ошибаюсь, после нажатия этой кнопки компьютер выключится
Не обязательно, можно это перехватить и отменить выключение.
Цитата Сообщение от AeroWhite Посмотреть сообщение
В чем тогда смысл?
Смысл в том что бы программа получившая уведомление о выключении, могла корректно завершить свою работу.
(например для всяких качалок: сбросить кеш данных на диск перед закрытием, завершить сеанс работы по сети)
По теме:
http://www.cyberforum.ru/post3248359.html
0
tayson72
233 / 10 / 2
Регистрация: 13.01.2013
Сообщений: 52
17.06.2013, 19:04 4
Лучший ответ Сообщение было отмечено как решение

Решение

vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
 
        Select Case e.CloseReason
            Case CloseReason.ApplicationExitCall 'Програмное завершение приложение (т.е. из кода)
                MsgBox("Програмное завершение приложение (т.е. из кода)")
            Case CloseReason.FormOwnerClosing 'Закрыто родительское окно
                '...
            Case CloseReason.MdiFormClosing 'Закрыта главное окно MDI приложения
                '...
            Case CloseReason.TaskManagerClosing 'Закрытие через диспетчер задач(Снять задачу)
                '...
            Case CloseReason.UserClosing 'Alt + F4 или закрытие через крестик [X]
                Call MsgShow(e)
            Case CloseReason.WindowsShutDown 'Завершение работы Windows 
                '...
            Case Else 'Другая причина
                '...
        End Select
    End Sub
Завершение работы Windows - Это то что вам нужно
4
Памирыч
Почетный модератор
20878 / 8762 / 1080
Регистрация: 11.04.2010
Сообщений: 11,013
17.06.2013, 20:45 5
Если пользователь нажмет на "Выключение", то причина закрытия форме будет уже не важна.
Если винда XP, то нажатие кнопки в самом пуске (а не посередине экрана в дальнейшем) вообще ничего не даст, приложения в этот момент еще не закрываются.

MACTEP434, Вы бы пояснили, что Вы пытаетесь сделать. Если Вы хотите совершить какие-то быстрые операции на этом же ПК - то достаточно события FormClosing.
Если нужно еще что-то сделать в сети - сильно не рассчитывайте - сетевые подключения могут закрыться раньше, чем Ваша программа получит команду на закрытие.
Ну а если хотите отменить выключение ПК - затея весьма плохая, не потому, что это невозможно, а потому, что от такой отмены проку будет мало - Ваша программа может быть не первой по счету среди списка тех, которые уже закрылись или закрываются. Это я так черкнул, на всякий пожарный...
1
MACTEP434
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
18.06.2013, 15:30  [ТС] 6
Цитата Сообщение от Памирыч Посмотреть сообщение
Если пользователь нажмет на "Выключение", то причина закрытия форме будет уже не важна.
Если винда XP, то нажатие кнопки в самом пуске (а не посередине экрана в дальнейшем) вообще ничего не даст, приложения в этот момент еще не закрываются.

MACTEP434, Вы бы пояснили, что Вы пытаетесь сделать. Если Вы хотите совершить какие-то быстрые операции на этом же ПК - то достаточно события FormClosing.
Если нужно еще что-то сделать в сети - сильно не рассчитывайте - сетевые подключения могут закрыться раньше, чем Ваша программа получит команду на закрытие.
Ну а если хотите отменить выключение ПК - затея весьма плохая, не потому, что это невозможно, а потому, что от такой отмены проку будет мало - Ваша программа может быть не первой по счету среди списка тех, которые уже закрылись или закрываются. Это я так черкнул, на всякий пожарный...
Нужно отправить на сервак пару словечек. впринципе на formclosing ща это получаеться, но все равно есть подозрение что это чисто случайно
0
Памирыч
Почетный модератор
20878 / 8762 / 1080
Регистрация: 11.04.2010
Сообщений: 11,013
18.06.2013, 15:52 7
Цитата Сообщение от MACTEP434 Посмотреть сообщение
все равно есть подозрение
И Ваши подозрения абсолютно справедливы.
Это будет работать, если Ваше приложение завершится еще при работающей сети. Но если Сетевые соединения закроются раньше, как бывало непонаслышке, а у меня в организации, то на сервер ничего не придет (идти не по чему)
Отловить выключение какого-либо ПК в сети (если есть необходимость) мне навскидку представляется в двух вариантах:
1) Сокеты и прослушивание портов (надо писать клиент-серверное приложение), когда клиент потухнет, сервер будет об этом знать.
2) Неуклюжий но рабочий способ - пинговать удаленный ПК.

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

Блуждает мысль вслух, не знаю, можно ли так сделать:
Каким-то образом выставить приоритет своего приложения так, чтобы оно выгружалось в числе первых.
Но это уже, как говорится, фантазии
1
18.06.2013, 15:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 15:52

Проверка : нажал ли пользователь клавишу
Извиняюсь за тупой вопрос. Нужна функция которая проверяет, нажал ли пользователь какую то клавишу...

Checkbox нажал пользователь или алгоритм?
Добрый день! При загрузке программы выставляются сохраненные значения Checkbox-ов. При этом...

нажал кнопку и новая форма
здравствуйте! вот у меня есть форма. в ней кнопка. как сделать чтобы при нажатии это кнопки...


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

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

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