Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для MACTEP434
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162

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

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

Студворк — интернет-сервис помощи студентам
Как проверить не нажал ли пользователь кнопку завершения работы в меню пуск?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2013, 09:34
Ответы с готовыми решениями:

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

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

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

6
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.06.2013, 11:19
Эмм...если я не ошибаюсь, после нажатия этой кнопки компьютер выключится? В чем тогда смысл?
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
17.06.2013, 15:57
Цитата Сообщение от AeroWhite Посмотреть сообщение
Эмм...если я не ошибаюсь, после нажатия этой кнопки компьютер выключится
Не обязательно, можно это перехватить и отменить выключение.
Цитата Сообщение от AeroWhite Посмотреть сообщение
В чем тогда смысл?
Смысл в том что бы программа получившая уведомление о выключении, могла корректно завершить свою работу.
(например для всяких качалок: сбросить кеш данных на диск перед закрытием, завершить сеанс работы по сети)
По теме:
https://www.cyberforum.ru/post3248359.html
0
233 / 10 / 2
Регистрация: 13.01.2013
Сообщений: 52
17.06.2013, 19:04
Лучший ответ Сообщение было отмечено как решение

Решение

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
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
17.06.2013, 20:45
Если пользователь нажмет на "Выключение", то причина закрытия форме будет уже не важна.
Если винда XP, то нажатие кнопки в самом пуске (а не посередине экрана в дальнейшем) вообще ничего не даст, приложения в этот момент еще не закрываются.

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

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

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

Блуждает мысль вслух, не знаю, можно ли так сделать:
Каким-то образом выставить приоритет своего приложения так, чтобы оно выгружалось в числе первых.
Но это уже, как говорится, фантазии
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2013, 15:52
Помогаю со студенческими работами здесь

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

Определить на какой рядок нажал пользователь
Добрый вечер всем. При помощи следующей XAML Разметки и С# кода, из базы даных я получаю на экране свою таблицу телефонов. Как определять...

Отловить кнопку, которую я нажал.
Вопросик! Может что посоветуете.... Есть такое - <input type='button' name='XXX' id='XXX' value='Удалить' onClick='???'> Какое...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru