powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запущенные Applications
19 сообщений из 19, страница 1 из 1
Запущенные Applications
    #35837328
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно получить список всех открытых окон в Windows?
Т.е. не окон в РВ, а вообще всех аппликаций (НЕ процессов).
PB 10.5, Windows XP
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837573
Yuriy Bazar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо смотреть в сторону API
http://www.rsdn.ru/?article/qna/baseserv/enumproc.xml
но я выбрал для реализации использование скрипта MSScriptControl.ScriptControl через OLE
вото пример(проверки выброшены) вывода списка процессов в строковую переменную
Код: 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.
OleObject wsh 
integer li_rc 
String ls_select,ls_stringprocess
wsh = CREATE OleObject 
li_rc = wsh.ConnectToNewObject( "MSScriptControl.ScriptControl" ) 
wsh.Language="vbscript";

ls_select = ""+& 
"~n"+'Function SelectProcess'+& 
"~n"+' Dim ServicesSet'+& 
"~n"+' Dim Items'+& 
"~n"+' Set ServicesSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.")'+& 
"~n"+' Set Items = ServicesSet.ExecQuery("Select * from Win32_Process")'+& 
"~n"+' For Each Item in Items'+& 
"~n"+' SelectProcess = SelectProcess & Item.Name & " " & Item.Handle & ";"'+& 
"~n"+' Next'+& 
"~n"+'End Function	 '

wsh.AddCode(st_listprocess.Text);
ls_stringprocess = wsh.Run("SelectProcess")

do while pos(ls_stringprocess,";", 1 ) >  0  
 ls_stringprocess = replace(ls_stringprocess,pos(ls_stringprocess,";", 1 ), 1 ,char( 13 ))	
loop
messagebox("список", ls_stringprocess)
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837636
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuriy Bazar,

Error: Error calling external object function addcode at line 19 in clicked event of object cb_ok of w_open_windows.
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837639
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
line 19:
Код: plaintext
wsh.AddCode(st_listprocess.Text)
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837649
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska пишет:

> Error: Error calling external object function addcode at line 19 in
> clicked event of object cb_ok of w_open_windows.

У меня работает нормально. Какая версия ОС? ConnectToNewObject не выдал
ошибок (в коде проверки нет)?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837658
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000,

ConnectToNewObject = 0
Windows XP
Professional
Version 2002
Service Pack 2
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837664
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska пишет:

> ConnectToNewObject = 0
> Windows XP
> Professional
> Version 2002
> Service Pack 2

Ты же фигня. Надеюсь, вместо wsh.AddCode(st_listprocess.Text) написал
wsh.AddCode(ls_select) ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837673
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000,
Все. Разобрался. Просто скопировал не думая.
Нужно было переменную вставить. Вот так:

Код: plaintext
wsh.AddCode(ls_select)
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837677
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuriy Bazar,
Thank you! :)
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837702
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поторопился с благодарностью :)
Мне нужны аппликации ( НЕ процессы ).
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837810
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska,

Может подойдет, взято с sybase.com.
...
Рейтинг: 0 / 0
Запущенные Applications
    #35837822
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska,
В до гонку, от туда же.
Теперь думаю экипирован.
...
Рейтинг: 0 / 0
Запущенные Applications
    #35838456
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxATC,
Не то :(
Мне нужно получить то, что на картинке.
...
Рейтинг: 0 / 0
Запущенные Applications
    #35838502
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskamaxATC,
Не то :(
Мне нужно получить то, что на картинке.
То, что на картинке - это не список ВСЕХ открытых окон Windows. Это список всех окон верхнего уровня. Тынц .
...
Рейтинг: 0 / 0
Запущенные Applications
    #35838794
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska,

Т.е вы желаете проверить по названию окна запущено ли приложение , отследить какой файл допустим открыл Excel?
...
Рейтинг: 0 / 0
Запущенные Applications
    #35838877
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxATC,
Типа того.
...
Рейтинг: 0 / 0
Запущенные Applications
    #35838908
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskamaxATC,
Типа того.
Не понял, объясните подробней чего Вы хотите получить-то в итоге?
...
Рейтинг: 0 / 0
Запущенные Applications
    #35839038
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,
Из проги (написанной на РВ) запускаются некие ехе-файлики (не имеющие отношение к РВ).
Весь процесс занимает пару дней. Иногда выскакивают какие-то сообщения, которые нужно автоматически закрыть.
Во всех этих сообщениях есть заголовок "ошибка" на иврите ('שגיאה'). По непонятным причинам (может быть из-за иврита) этот код:
Код: plaintext
1.
FUNCTION ulong FindWindowA(ulong classname, string windowname) LIBRARY "User32.dll" alias for "FindWindowA;Ansi"
l_handle = FindWindowA( 0 , 'שגיאה')
находит часть из этих сообщений, а часть - нет. Вот и стоит задача отловить все сообщения.
Доступа к коду нет. Может быть часть сообщений идет с пробелами/табами, например, "ошибка ". Короче, хочется для начала получить список всех открытых окон, а потом уже думать, чем можно заменить FindWindowA.
FindWindoW проблем не решает.
...
Рейтинг: 0 / 0
Запущенные Applications
    #35840384
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaЛокшин Марк,
Из проги (написанной на РВ) запускаются некие ехе-файлики (не имеющие отношение к РВ).
Весь процесс занимает пару дней. Иногда выскакивают какие-то сообщения, которые нужно автоматически закрыть.
Во всех этих сообщениях есть заголовок "ошибка" на иврите ('שגיאה'). По непонятным причинам (может быть из-за иврита) этот код:
Код: plaintext
1.
FUNCTION ulong FindWindowA(ulong classname, string windowname) LIBRARY "User32.dll" alias for "FindWindowA;Ansi"
l_handle = FindWindowA( 0 , 'שגיאה')
находит часть из этих сообщений, а часть - нет. Вот и стоит задача отловить все сообщения.
Доступа к коду нет. Может быть часть сообщений идет с пробелами/табами, например, "ошибка ". Короче, хочется для начала получить список всех открытых окон, а потом уже думать, чем можно заменить FindWindowA.
FindWindoW проблем не решает.
Ну и что вы голову морочите? Пример EnumWindows (Regan Sizer) и выдаст вам все открытые окна...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запущенные Applications
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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