Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Как отобразить открытые приложения? Добавлено: 26.08.05 16:49  

Автор вопроса:  Master Cheat'$
Может такой вопрос кто и задавал, но потрашить весь форум мне не хочется. Как можно отобразить запущенные приложения и как ими управлять? Сворачивать, закрывать и т.п.? А то сделал прогу, аналог Explorer'а (которому принадлежит ненависная кнопка пуск) все есть, меню, окна, куча оформления и доп. функций, а как это сделать не знаю. Даже самому обидно, мелочь, а какая важная.

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #1 Добавлено: 26.08.05 17:00
? че все помалкивают?

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик 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 _
                ;((lExStyle And WS_EX_APPWINDOW) And Not bNoOwner) Then
                '
                ' 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
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #3 Добавлено: 26.08.05 17:24
спс!

Ответить

Номер ответа: 4
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #4 Добавлено: 26.08.05 17:25
большое спасибо! ща проверю и испытаю...

Ответить

Номер ответа: 5
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #5 Добавлено: 26.08.05 17:37
чет кодик второй непойму... несколько вещей...

Ответить

Номер ответа: 6
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #6 Добавлено: 26.08.05 17:55
че он ошибку выдает, не вьехал. с некоторыми вещами не знаком.
"Invalid use of AddressOf operator"

Ответить

Номер ответа: 7
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #7
Добавлено: 26.08.05 19:26
эээ батенька... вникать надо...
а яж забыл ты маленький Билл... тебе такого не понять %)

Ответить

Номер ответа: 8
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #8 Добавлено: 26.08.05 19:35
ну фиг я много узнаю если интернета до этого небыло!

Ответить

Номер ответа: 9
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #9 Добавлено: 26.08.05 19:39
и с VB я относительно недавно

Ответить

Номер ответа: 10
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #10 Добавлено: 26.08.05 19:55
молчание... придется потрошить код... где что и зачем...

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик 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 _
                ;((lExStyle And WS_EX_APPWINDOW) And Not bNoOwner) Then
                '
                ' 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
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #12 Добавлено: 27.08.05 00:10
P.S.
то в модуль, а юзать так

Private Sub Form_Load()
Call fEnumWindows(List1)
End Sub

Ответить

Номер ответа: 13
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #13 Добавлено: 27.08.05 11:44
теперь втыкнул с первого)))
мне по сути дела нужны были именно Public Declare Function, а как всем этим управлять разобрался бы.

Ответить

Номер ответа: 14
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #14 Добавлено: 27.08.05 11:46
клево, спасибо огромное!

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 27.08.05 18:34
на будущее, в ВБ есть встроенный API Text Viewer, загружаешь в него текстовую базу, потом в поиск тыкаешь ту функцию которая тебе нужна, он он находит полное обращение к этой, копирешь, пестиш в вб, и всё ок :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам