Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто пользовался ф-цией FindWindow() ? / 6 сообщений из 6, страница 1 из 1
12.04.2004, 13:03
    #32477430
n0name
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто пользовался ф-цией FindWindow() ?
для предотвращения повторного запуска программы пользуюсь кодом
...
lhWnd = FindWindow(NULL, MY_APP_CAPTION)
If lhWnd <> 0
quit
endif
...
Под отладчиком возвращает 0.
При запуске exe.-шника всегда не 0 (якобы уже запущено, хотя даже среда закрыта). В чём ньюанс, кто знает? Для чего первый параметр?
Весь код
LOCAL lhWnd
#DEFINE MY_APP_CAPTION "My_prog"
#DEFINE SW_HIDE 0
#DEFINE SW_SHOWNORMAL 1
#DEFINE SW_MAXIMIZE 3
#DEFINE SW_MINIMIZE 6
#DEFINE SW_RESTORE 9
DECLARE INTEGER SetForegroundWindow IN Win32API LONG hWnd
DECLARE INTEGER ShowWindow IN Win32API LONG hWnd, INTEGER nCmdShow
DECLARE LONG FindWindow IN Win32API STRING lpClassName ,STRING lpWindowName

lhWnd = FindWindow(NULL, MY_APP_CAPTION)
IF lhWnd <> 0
ShowWindow(lhWnd, SW_RESTORE) && <- or as your want
SetForegroundWindow(lhWnd)
MESSAGEBOX('Уже есть!',48,'Уже запущено')
QUIT
ENDIF
...
Рейтинг: 0 / 0
12.04.2004, 14:23
    #32477544
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто пользовался ф-цией FindWindow() ?
авторlhWnd = FindWindow(NULL, MY_APP_CAPTION)

попробуй lhWnd = FindWindow(0, MY_APP_CAPTION)
...
Рейтинг: 0 / 0
12.04.2004, 14:30
    #32477566
n0name
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто пользовался ф-цией FindWindow() ?
C нулём то же самое!
Вообще, может есть другие варианты (программки) предотвращения повторного запуска приложения?
...
Рейтинг: 0 / 0
12.04.2004, 15:18
    #32477683
Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто пользовался ф-цией FindWindow() ?
у меня примерно вот так
Код: plaintext
1.
2.
3.
4.
DECLARE INTEGER FindWindow IN Win32API AS FindWindow STRING, STRING
IF FindWindow(.NULL.,_screen.Caption )> 0 
	= MESSAGEBOX('Приложение уже запущено')
	quit
ENDIF
...
Рейтинг: 0 / 0
13.04.2004, 12:39
    #32478883
Кто пользовался ф-цией FindWindow() ?
Для предотвращения повторного запуска я использую API-функцию CreateMutex() - оч-чень удобно
...
Рейтинг: 0 / 0
13.04.2004, 13:31
    #32479043
YuriWhite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто пользовался ф-цией FindWindow() ?
Вообще для FindWindow неплохо имя класса окна юзать.
Например для VFP8 это XXXXX8c000000 где XXXXX это имя EXE.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто пользовался ф-цией FindWindow() ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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