powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / окно, панель задач, трей.
14 сообщений из 89, страница 4 из 4
окно, панель задач, трей.
    #37295353
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, так вот я и спрашиваю, что это процессы, окна, приложения, почему есть повторения????????
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295354
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже после закрытия выругивается на
selection.TypeText Text:=âñå_ïðîãðàììû
объяви selection как-нить
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295356
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

а что это за код вообще?) у меня выводит названия всех запущенных окон на компе
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295358
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,
это 60 потому что больше в МСГБОКС не влазит, а так их около 300 шт.
всё правильно что ругается selection.TypeText Text:=âñå_ïðîãðàììû
Если Вы не в Ворде, но результат достиг, вопрос тот же, что это за список???
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295359
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

объясните, что вы хотите сделать, помогу
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295360
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюBelowZero,
это 60 потому что больше в МСГБОКС не влазит, а так их около 300 шт.
всё правильно что ругается selection.TypeText Text:=âñå_ïðîãðàììû
Если Вы не в Ворде, но результат достиг, вопрос тот же, что это за список???
Ципихович Эндрюназвания всех запущенных окон на компе
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295363
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroBelowZero,

объясните, что вы хотите сделать, помогу

я лишь хочу знать что это за список и почему много повторений???
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295366
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не многовато ли 300 шт., почему повторения в списке???
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295367
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

тогда скажите, откуда вы вообще достали этот код и как он относится к теме закрытия окна?)
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295370
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюне многовато ли 300 шт., почему повторения в списке???
уберите все нулевые строки будет меньше. нет, не много, т.к. Shocker.Proимеет место непонимание. Когда ты открываешь (допустим) свою форму, открывается МНОЖЕСТВО окон. Каждая кнопка - это окно, каждый текстбокс и т.п., у каждого свой хендл. Можешь запустить Spy++ из комплекта VB6 и наглядно все увидеть.
Когда ты запускаешь приложение, ты не создаешь окно. Кучу окон создает само приложение в результате своей работы.
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295379
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroЦипихович Эндрю,

тогда скажите, откуда вы вообще достали этот код и как он относится к теме закрытия окна?)
да это же код Дмитрия (вроде) в каждом посте Вы мне на него указываете, немного переделал
Отношение - когда будет список, могу и закрыть и всё остальное, теоретически практически не делал
Шокеру спасибо, просмотрел, тогда когда он писал я не вдумывался и Вам спасибо за напоминание
Тогда вопрос, что за пустые окна и как узнать какие окна относятся я к какому приложению
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295392
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

пустые окна? - забей на них
к какому приложению.. т.е. узнать имя главного окна? я не вникал не было надобности посмотри тут
http://decoding.narod.ru/practic/wndinfo/wndinfo.html
сейчас я сам залип на BelowZeroSW_HIDE не просто прячет окно. эта команда делает чужую программу недееспособной... подскажите команду, которая работала бы по принципу "закрыть окошко". не хочется посылать окну команду альт+ф4
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295474
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

ладно забил не забил, а как это расценить???
20. Document3 - Microsoft Word - 26
21. Document1 - Microsoft Word - 26

два разных окна, а хндл один?????????
...
Рейтинг: 0 / 0
окно, панель задач, трей.
    #37295625
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

я уж не знаю уже что такое "Главное меню"?????? прога, приложение, процесс, но с этим кодом мы пролетаем, ну это чисто поизголяться, проверить её на живучесть

Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
Option Explicit

Private все_программы As String
Private хндл_окна As String
Private количество_всех_программ As Integer

Public TargetName As String
Public TargetHwnd As Long

Public Const GWL_STYLE = - 16 
Public Const WS_DISABLED = &H8000000
Public Const WS_CANCELMODE = &H1F
Public Const WM_CLOSE = &H10

'функция EnumWindows
'Описание:
'function EnumWindows(EnumFunc: TFarProc, lParam: Longint): Bool;
'Пеpечисляет все pодительские окна на экpане, пеpедавая функции обpатного вызова описатель окна и lParam
'Пеpечисление заканчивается, если функция обpатного вызова возвpащает нуль или если пеpечислены все окна.
'Паpаметpы:
'EnumFunc: Адpес экземпляpа пpоцедуpы функции обpатного вызова.
'lParam: Значение, пеpеданное функции обpатного вызова.
'Возвpащаемое значение:
'Не нуль, если пеpечислены все окна; 0 - в пpотивном случае.
'функция находится в файле user32.dll

Public Declare Function EnumWindows Lib "user32" ( _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long) As Long

'функция GetWindowText
'Описание:
'function GetWindowText(Wnd: HWnd; Str: PChar; MaxCount: Integer): Integer;
'Копиpует в Str заголовок окна или текст оpгана упpавления.
'Паpаметpы:
'Wnd: Идентификатоp окна или оpгана упpавления.
'Str: Буфеp, пpинимающий стpоку.
'MaxCount: Размеp буфеpа Str.
'Возвpащаемое значение:
'Фактическое число скопиpованных байт или 0, если текст отсутствует.
'функция находится в файле user32.dll

Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
ByVal hWnd As Long, _
ByVal lpString As String, _
ByVal cch As Long) As Long

'функция IsWindow
'Описание:
'function IsWindow(Wnd: HWnd): Bool;
'Опpеделяет, является ли окно допустимым существующим окном.
'Паpаметpы:
'Wnd: Идентификатоp окна.
'Возвpащаемое значение:
'Не нуль, если окно достовеpно; 0 - если нет.
'функция находится в файле user32.dll
 
Declare Function IsWindow Lib "user32" ( _
ByVal hWnd As Long) As Long

'функция GetWindowLong
'Описание:
'function GetWindowLong(Wnd: HWnd; Index: Integer): Longint;
'Считывает инфоpмацию об окне или о значениях дополнительного байта окна.
'Паpаметpы:
'Wnd: Идентификатоp окна.
'Index: Смещение в байтах или одна из следующих констант: gwl_ExStyle, gwl_Style или gwl_WndProc. См. pаздел "Смещения поля окна, gwl_" в главе 1.
'Возвpащаемое значение:
'Инфоpмация, хаpактеpная для окна.
'функция находится в файле user32.dll

Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

'функция PostMessage
'Описание:
'function PostMessage(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Bool;
'Напpавляет сообщение окну пpикладной задачи.
'Паpаметpы:
'Wnd: Окно, котоpое будет пpинимать сообщение, или $FFFF для всех пеpекpываемых или всплывающих окон.
'Msg: Тип сообщения.
'wParam: Дополнительная инфоpмация о сообщении.
'lParam: Дополнительная инфоpмация о сообщении.
'Возвpащаемое значение:
'Не нуль в случае успешного завеpшения; 0 - если нет.
'функция находится в файле user32.dll
 
Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Sub Programms()
   
Dim программа As String
программа = "Главное меню" '"QQQQQQQQQQQQQQQ"
    
    Do
        TargetName = программа
        TargetHwnd =  0 
        ' Examine the window names - Изучите имена окон
        EnumWindows AddressOf WindowEnumerator,  0 
        ' See if we got an hwnd - Смотрите, если мы получили HWND
        If TargetHwnd =  0  Then
            Exit Do
        Else
            EndTask (TargetHwnd)
        End If
    Loop
    
MsgBox$ все_программы
Selection.TypeText Text:=все_программы
    
End Sub

' Return False to stop the enumeration - Вернуть False, чтобы остановить перечисления
Public Function WindowEnumerator( _
ByVal app_hwnd As Long, _
ByVal lParam As Long) As Long

Dim buf As String *  256 
Dim Title As String
Dim Length As Long

    ' Get the window's title - Получить титул окна
    Length = GetWindowText(app_hwnd, buf, Len(buf))
    Title = Left$(buf, Length)
    
    'If Len(Title) <> 0 Then
    количество_всех_программ = количество_всех_программ +  1 
    все_программы = все_программы & " " & количество_всех_программ & ". " & Title & " - " & Length & Chr( 13 )
    'End If
    
    ' See if the title contains the target - Смотрите, если название содержит целевые
    If InStr(Title, TargetName) >  0  Then
        ' Save the hwnd and end the enumeration - Сохранить HWND и конце перечисления
        TargetHwnd = app_hwnd
        WindowEnumerator = False
    Else
        ' Continue the enumeration - Продолжить перечисления
        WindowEnumerator = True
    End If
    
End Function

Function EndTask(TargetHwnd As Long) As Long
    
    Dim rc As Integer
    Dim ReturnVal As Integer
'    If TargetHwnd = Form1.hwnd Or GetWindow(TargetHwnd, _
'        GW_OWNER) = Form1.hwnd Then
'        End
'    End If
    If IsWindow(TargetHwnd) = False Then
        GoTo EndTaskFail
    End If
    If (GetWindowLong(TargetHwnd, GWL_STYLE) _
        And WS_DISABLED) Then
        GoTo EndTaskSucceed
    End If
    
    'Close the window - Закрыть окно
    If IsWindow(TargetHwnd) Then
        If Not (GetWindowLong(TargetHwnd, GWL_STYLE) _
        And WS_DISABLED) Then
        rc = PostMessage(TargetHwnd, WS_CANCELMODE,  0 ,  0 &)
        rc = PostMessage(TargetHwnd, WM_CLOSE,  0 ,  0 &)
         DoEvents
        End If
    End If
    GoTo EndTaskSucceed
    
EndTaskFail:
    ReturnVal = False
    GoTo EndTaskEndSub
EndTaskSucceed:
    ReturnVal = True
EndTaskEndSub:
    EndTask = ReturnVal

End Function
...
Рейтинг: 0 / 0
14 сообщений из 89, страница 4 из 4
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / окно, панель задач, трей.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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