Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает (CLEAR EVENTS и QUIT) / 11 сообщений из 11, страница 1 из 1
25.07.2008, 10:16
    #35451248
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
Всем привет!

Собственно хочу избежать повторного запуска приложения.
Сделал по примеру из fox-club (исп-ся mutex), т.е.
в main.prg (главный запускаемый файл) вписал объявление переменных,
проверку на запущено ли приложение, все это отрабатывает как надо,
но далее, когда надо закрыть это приложение, создал процедурку (опять же из примера фокс-клаба) позакрывал хендлы, затем по примеру в случае если запущено приложение, идет следующее: RETURN

При таком подходе программа просто начинает мелькать.
Пробовал (до/вместо) RETURN писать CLEAR EVENTS и QUIT.
И реакции никакой, программа запускается как ни в чем не бывало.
...
Рейтинг: 0 / 0
25.07.2008, 10:21
    #35451270
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
Проблемы с кодом лучше всего приводить вместе с кодом. Лучше один раз увидеть, чем сто раз услышать.
...
Рейтинг: 0 / 0
25.07.2008, 10:30
    #35451302
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
********************* main.prg
Код: plaintext
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.
SET TALK OFF
SET STATUS BAR OFF
SET CENTURY on
SET ESCAPE OFF
SET DELETED ON
SET PATH TO menu, prg, data, form

ON SHUTDOWN clear events

***Проверка запущена ли ранее эта прога
LOCAL lcApplicationName 
lcApplicationName = GetEnv("АТС") + "#"+ SYS( 0 ) 
* Формируем ссылку на объект Mutex 
Declare Integer CreateMutex In Win32API ; 
Integer lpMutexAttributes, ; 
Integer bInitialOwner, ; 
String lpName 
PUBLIC gnMutex 
gnMutex = CreateMutex( 0 , 1 ,m.lcApplicationName) 
* Проверяем факт существования объекта Mutex с тем же именем 
#DEFINE ERROR_ALREADY_EXISTS  183  
Declare integer GetLastError In Win32API 

If GetLastError() = ERROR_ALREADY_EXISTS 
	Do CloseMutex with .T. 
ENDIF
***Проверка запущена ли ранее эта прога

OPEN DATABASE ats.dbc
PUSH MENU _MSYSMENU

DO menu1.mpr
_screen.Visible =.t.
_screen.Caption ="АТС"
_screen.AutoCenter= .T.
_screen.BackColor=RGB( 192 , 192 , 192 )
_screen.WindowType =  0 
_screen.WindowState = 2 


READ events
POP MENU _MSYSMENU
ON SHUTDOWN


*************************CloseMutex.prg
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Procedure CloseMutex 
LParameters IsExists 
If IsExists = .f. 
	Declare integer ReleaseMutex IN Win32API Integer hMutex 
EndIf 
	Declare integer CloseHandle IN Kernel32 Integer hObject 
	CloseHandle(m.gnMutex) 
EndProc
...
Рейтинг: 0 / 0
25.07.2008, 10:36
    #35451330
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
If GetLastError() = ERROR_ALREADY_EXISTS 
	Do CloseMutex with .T. 

	RETURN
ENDIF
...
...
Рейтинг: 0 / 0
25.07.2008, 10:41
    #35451348
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
ВладимирМ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
If GetLastError() = ERROR_ALREADY_EXISTS 
	Do CloseMutex with .T. 

	RETURN
ENDIF
...


вот когда этот RETURN есть программа запускается и дрожит (мелькает)
...
Рейтинг: 0 / 0
25.07.2008, 10:42
    #35451354
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
на его место ставил CLEAR EVENTS и QUIT
...
Рейтинг: 0 / 0
25.07.2008, 10:50
    #35451390
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
Imperous ВладимирМ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
If GetLastError() = ERROR_ALREADY_EXISTS 
	Do CloseMutex with .T. 

	RETURN
ENDIF
...


вот когда этот RETURN есть программа запускается и дрожит (мелькает)
Добавь в файл конфигурации Config.FPW строку

SCREEN=OFF

А непосредственно перед командой READ EVENTS сделай приложение видимым командой

Код: plaintext
1.
2.
_SCREEN.Visible = .T.
READ EVENTS

Подробнее здесь

Как скрыть главное окно FoxPro (SCREEN)

По поводу подключения файла конфигурации здесь

Часть букв при вводе заменяются латинскими
...
Рейтинг: 0 / 0
25.07.2008, 10:58
    #35451424
GoshaS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
у меня попроще сделано, вроде без проблем отрабатывает :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ON SHUTDOWN do prc_exit in p_start
READ EVENTS	

********************
PROCEDURE prc_exit
	CLEAR EVENTS
	FOR i= 1  TO _screen.FormCount
		_screen.Forms(m.i).release()
	ENDFOR 
	CLOSE TABLES all
	CLOSE DATABASES ALL 
	IF TYPE('_nCH')=='N'
		IF _nCH> 0 
			SQLDISCONNECT(_nCH)
		ENDIF 	
	ENDIF 
	ON SHUTDOWN 
	QUIT 
	*CANCEL 
ENDPROC 	

...
Рейтинг: 0 / 0
25.07.2008, 11:01
    #35451433
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
Да, перенеси настройку

ON SHUTDOWN clear events

и вообще ВСЕ настройки ПОСЛЕ выполнения проверки. СНАЧАЛА проверка и если запущено приложение - выход, ПОТОМ все необходимые настройки.
...
Рейтинг: 0 / 0
25.07.2008, 11:16
    #35451487
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
ВладимирМ Imperous ВладимирМ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
If GetLastError() = ERROR_ALREADY_EXISTS 
	Do CloseMutex with .T. 

	RETURN
ENDIF
...


вот когда этот RETURN есть программа запускается и дрожит (мелькает)
Добавь в файл конфигурации Config.FPW строку

SCREEN=OFF

А непосредственно перед командой READ EVENTS сделай приложение видимым командой

Код: plaintext
1.
2.
_SCREEN.Visible = .T.
READ EVENTS

Подробнее здесь

Как скрыть главное окно FoxPro (SCREEN)

По поводу подключения файла конфигурации здесь

Часть букв при вводе заменяются латинскими

сделал, результат тот же
...
Рейтинг: 0 / 0
25.07.2008, 11:21
    #35451508
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает (CLEAR EVENTS и QUIT)
ВладимирМДа, перенеси настройку

ON SHUTDOWN clear events

и вообще ВСЕ настройки ПОСЛЕ выполнения проверки. СНАЧАЛА проверка и если запущено приложение - выход, ПОТОМ все необходимые настройки.

после вот этого заработало, пасиба!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает (CLEAR EVENTS и QUIT) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]