powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто пользовался ф-цией FindWindow() ?
6 сообщений из 6, страница 1 из 1
Кто пользовался ф-цией FindWindow() ?
    #32477430
n0name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для предотвращения повторного запуска программы пользуюсь кодом
...
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
Кто пользовался ф-цией FindWindow() ?
    #32477544
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторlhWnd = FindWindow(NULL, MY_APP_CAPTION)

попробуй lhWnd = FindWindow(0, MY_APP_CAPTION)
...
Рейтинг: 0 / 0
Кто пользовался ф-цией FindWindow() ?
    #32477566
n0name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C нулём то же самое!
Вообще, может есть другие варианты (программки) предотвращения повторного запуска приложения?
...
Рейтинг: 0 / 0
Кто пользовался ф-цией FindWindow() ?
    #32477683
Фотография Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня примерно вот так
Код: 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
Кто пользовался ф-цией FindWindow() ?
    #32478883
Для предотвращения повторного запуска я использую API-функцию CreateMutex() - оч-чень удобно
...
Рейтинг: 0 / 0
Кто пользовался ф-цией FindWindow() ?
    #32479043
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще для FindWindow неплохо имя класса окна юзать.
Например для VFP8 это XXXXX8c000000 где XXXXX это имя EXE.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто пользовался ф-цией FindWindow() ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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