Вопрос: Как отобразить открытые приложения? | Добавлено: 26.08.05 16:49 |
Автор вопроса: ![]() |
Может такой вопрос кто и задавал, но потрашить весь форум мне не хочется. Как можно отобразить запущенные приложения и как ими управлять? Сворачивать, закрывать и т.п.? А то сделал прогу, аналог Explorer'а (которому принадлежит ненависная кнопка пуск) все есть, меню, окна, куча оформления и доп. функций, а как это сделать не знаю. Даже самому обидно, мелочь, а какая важная. |
Ответы | Всего ответов: 16 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #1 | Добавлено: 26.08.05 17:00 |
? че все помалкивают? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #2 | Добавлено: 26.08.05 17:16 |
Сворачивать, закрывать и т.п.?
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
'Значения ShowOptions: '0 - Hide '3 - MAXIMIZE '6 - MINIMIZE '9 - RESTORE '5 - SHOW '10 -SHOWDEFAULT '3 - SHOWMAXIMIZED '2 - SHOWMINIMIZED '7 - SHOWMINNOACTIVE '8 - SHOWNA '4 - SHOWNOACTIVATE '1 - SHOWNORMAL ShowWindow hWnd, ShowOptions ------------------------------------------ Как можно отобразить запущенные приложения
Public Function fEnumWindows(lst As ListBox) As Long ' ' Clear list, then fill it with the running ' tasks. Return the number of tasks. ' ' The EnumWindows function enumerates all top-level windows ' on the screen by passing the handle of each window, in turn, ' to an application-defined callback function. EnumWindows ' continues until the last top-level window is enumerated or ' the callback function returns FALSE. ' With lst .Clear Call EnumWindows(AddressOf fEnumWindowsCallBack, .hWnd) fEnumWindows = .ListCount End With End Function Private Function fEnumWindowsCallBack(ByVal hWnd As Long, ByVal lParam As Long) As Long Dim lReturn As Long Dim lExStyle As Long Dim bNoOwner As Boolean Dim sWindowText As String ' ' This callback function is called by Windows (from ' the EnumWindows API call) for EVERY window that exists. ' It populates the listbox with a list of windows that we ' are interested in. ' ' Windows to display are those that: ' - are not this app's ' - are visible ' - do not have a parent ' - have no owner and are not Tool windows OR ' have an owner and are App windows ' If hWnd <> frmTaskbar.hWnd Then If IsWindowVisible(hWnd) Then If GetParent(hWnd) = 0 Then bNoOwner = (GetWindow(hWnd, GW_OWNER) = 0) lExStyle = GetWindowLong(hWnd, GWL_EXSTYLE) If (((lExStyle And WS_EX_TOOLWINDOW) = 0) And bNoOwner) Or _ ![]() ' ' Get the window's caption. ' sWindowText = Space$(256) lReturn = GetWindowText(hWnd, sWindowText, Len(sWindowText)) If lReturn Then ' ' Add it to our list. ' sWindowText = Left$(sWindowText, lReturn) & "*Softshell_Logi*" & hWnd lReturn = SendMessage(lParam, LB_ADDSTRING, 0, ByVal sWindowText) Call SendMessage(lParam, LB_SETITEMDATA, lReturn, ByVal hWnd) End If End If End If End If End If fEnumWindowsCallBack = True End Function |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #3 | Добавлено: 26.08.05 17:24 |
спс! |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #4 | Добавлено: 26.08.05 17:25 |
большое спасибо! ща проверю и испытаю... |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #5 | Добавлено: 26.08.05 17:37 |
чет кодик второй непойму... несколько вещей... |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #6 | Добавлено: 26.08.05 17:55 |
че он ошибку выдает, не вьехал. с некоторыми вещами не знаком.
"Invalid use of AddressOf operator" |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 343368641 Вопросов: 17 Ответов: 686 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 26.08.05 19:26 |
эээ батенька... вникать надо...
а яж забыл ты маленький Билл... тебе такого не понять ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #8 | Добавлено: 26.08.05 19:35 |
ну фиг я много узнаю если интернета до этого небыло! |
Номер ответа: 9 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #9 | Добавлено: 26.08.05 19:39 |
и с VB я относительно недавно |
Номер ответа: 10 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #10 | Добавлено: 26.08.05 19:55 |
молчание... придется потрошить код... где что и зачем... |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #11 | Добавлено: 27.08.05 00:07 |
ну конечно надо чуть чуть повникать было... (или повтыкать ![]() Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Public Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long Public Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Const GW_OWNER = 4 Public Const GWL_HWNDPARENT = (-8) Public Const GWL_EXSTYLE = (-20) Public Const WS_EX_TOOLWINDOW = &H80 Public Const WS_EX_APPWINDOW = &H40000 Public Const LB_ADDSTRING = &H180 Public Const LB_SETITEMDATA = &H19A Public Function fEnumWindows(lst As ListBox) As Long ' ' Clear list, then fill it with the running ' tasks. Return the number of tasks. ' ' The EnumWindows function enumerates all top-level windows ' on the screen by passing the handle of each window, in turn, ' to an application-defined callback function. EnumWindows ' continues until the last top-level window is enumerated or ' the callback function returns FALSE. ' With lst .Clear Call EnumWindows(AddressOf fEnumWindowsCallBack, .hWnd) fEnumWindows = .ListCount End With End Function Private Function fEnumWindowsCallBack(ByVal hWnd As Long, ByVal lParam As Long) As Long Dim lReturn As Long Dim lExStyle As Long Dim bNoOwner As Boolean Dim sWindowText As String ' ' This callback function is called by Windows (from ' the EnumWindows API call) for EVERY window that exists. ' It populates the listbox with a list of windows that we ' are interested in. ' ' Windows to display are those that: ' - are not this app's ' - are visible ' - do not have a parent ' - have no owner and are not Tool windows OR ' have an owner and are App windows ' If hWnd <> Form1.hWnd Then If IsWindowVisible(hWnd) Then If GetParent(hWnd) = 0 Then bNoOwner = (GetWindow(hWnd, GW_OWNER) = 0) lExStyle = GetWindowLong(hWnd, GWL_EXSTYLE) If (((lExStyle And WS_EX_TOOLWINDOW) = 0) And bNoOwner) Or _ ![]() ' ' Get the window's caption. ' sWindowText = Space$(256) lReturn = GetWindowText(hWnd, sWindowText, Len(sWindowText)) If lReturn Then ' ' Add it to our list. ' sWindowText = Left$(sWindowText, lReturn) & " " & hWnd lReturn = SendMessage(lParam, LB_ADDSTRING, 0, ByVal sWindowText) Call SendMessage(lParam, LB_SETITEMDATA, lReturn, ByVal hWnd) End If End If End If End If End If fEnumWindowsCallBack = True End Function |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #12 | Добавлено: 27.08.05 00:10 |
P.S.
то в модуль, а юзать так Private Sub Form_Load()
Call fEnumWindows(List1) End Sub |
Номер ответа: 13 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #13 | Добавлено: 27.08.05 11:44 |
теперь втыкнул с первого)))
мне по сути дела нужны были именно Public Declare Function, а как всем этим управлять разобрался бы. |
Номер ответа: 14 Автор ответа: ![]() ![]() Вопросов: 14 Ответов: 102 |
Профиль | | #14 | Добавлено: 27.08.05 11:46 |
клево, спасибо огромное! |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #15 | Добавлено: 27.08.05 18:34 |
на будущее, в ВБ есть встроенный API Text Viewer, загружаешь в него текстовую базу, потом в поиск тыкаешь ту функцию которая тебе нужна, он он находит полное обращение к этой, копирешь, пестиш в вб, и всё ок ![]() |
|