Закрыть приложение | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
Может кто знает, как закрыть программу принудительно, при том что можешь находится где угодно (от messagebox'a до Report Preview) ?
Этакий аварийны выход из системы ? Отредактировано (29.03.05 16:09) ------------------ |
Re: Centory | |
---|---|
Hel!Riser Сообщений: 10452 Откуда: Нижний Новгород Дата регистрации: 11.03.2001 |
|
Re: Centory | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
Неа не такой...... мне надо принудительно закрыть, а не по таймауту, пусть даже в это время пользователь работает.
|
Re: Centory | |
---|---|
Penner Сообщений: 4102 Откуда: Muenster Дата регистрации: 26.04.2002 |
Зачем?!
Хочешь базу испортить? |
Re: Centory | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
Почему испортить? close all и все, дальше выход однозначно будет. А перед этим я 2 минуты даю по таймеру, чтоб сохранились.
Вот только пока закрыть немогу...... |
Re: Centory | |
---|---|
Burn Сообщений: 5644 Откуда: Днепр Дата регистрации: 02.01.2002 |
>Вот только пока закрыть немогу......
QUIT пробовал? ------------------ В борьбе бобра с козлом побеждает бобро |
Re: Centory | |
---|---|
JS Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Насколько я понимаю из вопроса - прогу закрыть удаленно?
Можно придумать что-то вроде записи в таблице на сервере, которая периодически проверяется программой у пользователя. Таблица - read-only для пользователя. Если записи нет - уходим с сохранением всего и всея в shutdown. А запись удаляет администратор, который имеет доступ read-write к таблице. ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu |
Re: Centory | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
QUIT я пробовал. В результате, на на некоторых формах выскакиевае Can't quit VFP (неможет закрыть форму).
А так да - закрыть прогу удаленно ?) Таймер раз в минуту лезет в служебную табличку и если там флажок - то даем пользователю минуту на сохранение и пр. и отваливаемся. |
Re: Centory | |
---|---|
borman Сообщений: 11046 Откуда: Москва Дата регистрации: 29.07.2004 |
Или проста файл-флаг... по тимеру проверяеш его наличие, если появляется - все выходишь.....
------------------ Многие вещи нам непонятны не потому, что наши понятия слабы, а потому, что сии вещи не входят в круг наших понятий. |
Re: Centory | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Ну одного QUIT недостаточно, как минимум еще и CLEAR EVENTS, формы и базы опять же желательно закрыть.
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Centory | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
Ну закрытие там идет так - всеравно ругается.
CLOSE ALL CLEAR WINDOW CLEAR MACROS CLEAR ET PROCEDURE TO ON SHUTDOWN QUIT И всеравно, если пользователь надолго покинул рабочее место при выведенном на экран messagebox..... |
Re: Centory | |
---|---|
borman Сообщений: 11046 Откуда: Москва Дата регистрации: 29.07.2004 |
Тада тока в лоб ему!однозначно!
Плюс юзай свои мессагебоксы, которые через определенное время без реакции пользователя гаснут сами.... ------------------ Многие вещи нам непонятны не потому, что наши понятия слабы, а потому, что сии вещи не входят в круг наших понятий. |
Re: Centory | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Цитата:1. Это говорит об активном READ EVENTS. 2. MESSAGEBOX() имеет 4-й параметр - таймаут. ------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Centory | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
тоже не катит..... я например затруднюсь автоматом ответить на вопрос "Сохранить заявку?"
А сижу я пот VFP6, там нету таймаутоа вроде Отредактировано (29.03.05 17:22) ------------------ |
Re: Centory | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Цитата:Если по таймауту, через свой диалог оповещения или через MESSAGEBOX(), ответ д.б. один "Не сохранять" - для дисциплины пользователей. ------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Закрыть приложение | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Centory!
На самом деле код весьма непрост будет... Для простоты: 1) Есть формы ввода - они имеют метод, скажем Close() - который корректно может их закрыть - значит надо пройтись по коллекции _SCREEN.Forms (от КОНЦА к НАЧАЛУ!) и проверяя type() элемента и по PEMSTATUS наличие метода - его дёргать. 2) Для "прочих" форм сгодится их метод Release. 3) Для Messagebox - хотя его наверное СТОИТ заменять на свою форму, которой можно крутить как угодно - KEYBOARD {Enter} PLAIN CLEAR - нажмёт ту кнопку что была выбрана (а значит надо позаботится о верном выборе для default-а). 4) Если где-то есть валидация с блокировкой (т.е. из Valid возвращаешь .F. или 0 ну или NODEFAULT в LostFocus) - то надо предусмотреть отключение этой проверки/блокировки по флагу "идёт процесс закрытия всего приложения". 5) Что-то делать с Print Preview - вроде можно закрыть его по KEYBOARD {Esc} PLAIN CLEAR... ------------------ WBR, Igor |
Re: Закрыть приложение | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
Все оазалось легко
DECLARE ExitProcess IN kernel32 INTEGER uExitCode и в выходе по таймеру ExitProcess(0) Конечно, не есть красивое решение, но короткое (2 строки) и в моем случае оно подошло. А кто не спрятался - я не виноват Отредактировано (29.03.05 18:33) ------------------ |
Re: Закрыть приложение | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Centory!
Это нехорошее решение для фокса - побьются таблицы, пропадёт вся работа, или ещё какая большая гадость приключится Ты бы ещё KillProcess применил Попробуй например из командного окна - заметив что при штатном закрытии фокс (начиная с 7-й версии) сохраняет всё что ты ввёл (историю команд) - а при таком методе - нет. Можно ещё попробовать запустить циклический процесс вставки записей в таблицу, и таким макаром "убить" процесс - посмотри потом - не покалечится ли файл. И попадут ли туда реально введённые записи. ------------------ WBR, Igor |
Re: Закрыть приложение | |
---|---|
Centory Автор Сообщений: 88 Откуда: г. Зеленоград Дата регистрации: 20.08.2004 |
В моем случае это вполне приемлимое решение - на момент срабатывания процедуры я четко уверен что работа с базами не ведется (она в принципе не ведется - сначала оперируются с курсорами, а птом уже вставка в базу), то что пользователь не сохранился..... у них было время, это во первых, а во вторых я предупреждаю еще......
|
Re: Закрыть приложение | |
---|---|
borman Сообщений: 11046 Откуда: Москва Дата регистрации: 29.07.2004 |
Я б назвал такой метод - "Ядрена бомба" ....Но коли устраивает......
------------------ Многие вещи нам непонятны не потому, что наши понятия слабы, а потому, что сии вещи не входят в круг наших понятий. |
© 2000-2024 Fox Club  |