Получение спиcка всех запущенных приложений

Функция создает список всех запущенных приложений в Windows, которое имеют открытые окна (есть окно на taskbar). Или создает список приложений в названии окон которых содержится определенный текст.

Получение спсика всех запущенных приложений

Иногда бывает нужно создать список приложений запущенных в данный момент. Средствами самого Foxpro это сделать трудно, т.к. часто у окон приложений заголовки динамические, постоянно изменяющиеся. Поэтому для создания такого списка используется API.

Приведенная функция работает в двух режимах: выводит все активные приложения или только те, в окнах которых содержится определенный текст.

? IsWindEx('Microsoft Word') && выводит список всех запущенных Word'ов
? IsWindEx('') && выводит список всех запущенный приложений

FUNCTION IsWindEx
PARAMETERS WindowName
IsWindEx = .F.
SET LIBRARY TO foxtools.fll
* Register the Windows API functions that will be called
mGetWinTxt = RegFn("GetWindowText", "I@CI", "I")
mGetWindow = RegFn("GetWindow", "II", "I")
mIsWinVis = RegFn("IsWindowVisible", "I", "I")
* Get the HWND (handle) to the main FoxPro window
foxhwnd = MAINHWND()
* Produce a list of all windows
hwndNext = CallFn(mGetWindow,foxhwnd,0)
DO WHILE hwndNext <> 0
IF (hwndnext <> foxhwnd) .AND. ;
CallFn(mGetWindow,hwndnext,4) = 0 .AND. ;
CallFn(mIsWinVis,hwndnext) <> 0
Stuffer = SPACE(64)
x = CallFn(mGetWinTxt,hwndnext,@Stuffer,64)
* If a window name was specified, check to
* see if this is the specified window. If a
* window name was not specified, display the
* name of the window.
IF LEN(TRIM(WindowName)) = 0
? Stuffer
ELSE
IF WindowName $ Stuffer
IsWindEx = .T.
EXIT
ENDIF
ENDIF
ENDIF
hwndNext = CallFn(mGetWindow,hwndnext,2)
ENDDO
SET LIBRARY TO
IF LEN(TRIM(WindowName)) = 0
IsWindEx = .T.
ENDIF
RETURN IsWindEx

Автор: MS KB

Автор публикации

не в сети 3 недели

Joys

2
Комментарии: 4Публикации: 227Регистрация: 25-06-2000
0
Оставить комментарий
Авторизация
*
*
Генерация пароля