Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Win Api (EndTask) / 14 сообщений из 14, страница 1 из 1
07.05.2007, 12:23
    #34509192
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Помогите закрыть другое приложение из VFP.
...
Рейтинг: 0 / 0
07.05.2007, 16:49
    #34510266
Погодин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Если известен HWND окна приложения то так:

DECLARE LONG SendMessage IN win32api LONG whWnd,LONG Msg,LONG wParam,LONG lParam
WM_DESTROY=2
SendMessage(hwndapp,WM_DESTROY,0,0)
CLEAR DLLS

не поможет WM_DESTROY, пробуй WM_CLOSE.
...
Рейтинг: 0 / 0
08.05.2007, 09:38
    #34511459
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
HWND окна не известно
...
Рейтинг: 0 / 0
08.05.2007, 11:40
    #34511876
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Вобщем помогите кто может, мне надо по событию закрыть приложение , далее открыть его и нажать в открытом приложении на кнопку
...
Рейтинг: 0 / 0
08.05.2007, 12:28
    #34512113
Погодин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
как отлавливается событие ? известно ли хоть название окна приложения ?
...
Рейтинг: 0 / 0
08.05.2007, 12:44
    #34512220
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
название окна известно к примеру (TCPF)
...
Рейтинг: 0 / 0
08.05.2007, 12:46
    #34512226
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Погодинкак отлавливается событие ? известно ли хоть название окна приложения ?

по If надо закрыть приложение
...
Рейтинг: 0 / 0
08.05.2007, 13:45
    #34512601
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Если известно имя окна приложения то используй:
DECLARE LONG FindWindow IN Win32API STRING lpClassName,STRING WindowName
например:
lhWnd = FindWindow(NULL,'имя окна открытого приложения')
Далее если получишь 0 - сообщение что приложение не активно,
иначе закрываешь его как тебе советовали выше.
...
Рейтинг: 0 / 0
08.05.2007, 14:02
    #34512685
Погодин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Точно. А потом запустишь приложение, найдешь его HWND с пом-ю FindWindow, затем HWND кнопки тоже с пом-ю FindWindow и пошлешь ей SendMessage с параметрами WM_KEYDOWN и wParam=0, lParam=13 (Enter). И будет тебе счастье 8-)
...
Рейтинг: 0 / 0
08.05.2007, 14:40
    #34512866
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
спс огромное, только вот возникла проблема при закрытии окна. 'имя окна открытого приложения' меняеться если выскакивает ошибка .
на пример

TCP - PUSTO

TCP - немогу открыть фаил конфига

хотелось бы что бы хендл выдавался только по TCP независимо от того что дальше. Такое возможно?
...
Рейтинг: 0 / 0
08.05.2007, 15:14
    #34512992
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Если имя окна на момент предполагаемого закрытия приложения незвестно точно,
то FindWindow не подойдет - надо искать другие пути нахождения дескриптора окна.
Вопрос:
Приложение, которое ты хочешь закрыть, открывается в твоей программе
или независимо от нее?
...
Рейтинг: 0 / 0
08.05.2007, 15:38
    #34513097
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Дело в том что приложение открыто, далее запускаеться прога проверят есть ли в логах ошибка - если есть то надо закрыть приложение и открыть
...
Рейтинг: 0 / 0
08.05.2007, 15:39
    #34513103
Muadip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
и нажать в приложении на кнопку
...
Рейтинг: 0 / 0
08.05.2007, 16:07
    #34513247
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win Api (EndTask)
Если приложение запускается независимо от твоей программы проверки
и имя окна фактически неизвестно , то надо искать пути определения
твоей программой дескриптора этого приложения.
Например так:
Написать на VFP программу запускающую это приложение.
Запускать приложение через функцию API:
DECLARE INTEGER CreateProcess IN kernel32;
STRING lpApplicationName,;
STRING lpCommandLine,;
INTEGER lpProcessAttributes,;
INTEGER lpThreadAttributes,;
INTEGER bInheritHandles,;
INTEGER dwCreationFlags,;
INTEGER lpEnvironment,;
STRING lpCurrentDirectory,;
STRING lpStartupInfo,;
STRING @ lpProcessInformation
Эта функция при открытии программы возвращает дескриптор процесса
который можно получить разобрав структуру lpProcessInformation
Дескриптор процесса сохранить в любом удобном виде.

Далее понятно - твоя программа проверки проверяет лог и если необходимо
читает дескриптор и закрывает приложение.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Win Api (EndTask) / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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