![]() |
|
Модераторы: Akina |
![]()
|
|
| Kagor |
|
|||
|
Debian user ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2946 Регистрация: 28.2.2003 Где: Королевство Кривых Репутация: нет Всего: 85 |
Как просмотреть запущенные процессы в Windows, из VB или VC++?
-------------------- Disassemble Your life and get the key! |
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: нет Всего: 2 |
Через WinAPI.
Исходники могу только на Delphi. Используйте GetWindow Сначала hWnd ставим своего окна, или 0, а флаг- ...first, а затем получаем в цикле hWnd других окон, подставляя в функцию последнее найденное окно и флаг ...next Получить заголовок окна можно через GetWindowText -------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| GriKo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 7.6.2003 Где: Израиль Репутация: нет Всего: нет |
Код под форму:
l.Clear GetRunningApplications For i = 0 To Counter - 1 l.AddItem Logs(i), i Next Код под модуль: Public Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount 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 Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd 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 GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long Public Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Type Coordinates X As Long y As Long End Type Dim XY() As Coordinates Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Coordinates, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Public Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long Public Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long Public Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long Public Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long Public Const LF_FACESIZE = 32 Public Const FW_NORMAL = 400 Public Const ANSI_CHARSET = 0 Public Const OUT_DEFAULT_PRECIS = 0 Public Const CLIP_DEFAULT_PRECIS = 0 Public Const PROOF_QUALITY = 2 Public Const VARIABLE_PITCH = 2 Public Const FF_ROMAN = 16 Public Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName(1 To LF_FACESIZE) As Byte End Type Public LogFnt As LOGFONT Public Counter Public Logs(300) Public Handles(300) As Long Public Const WM_CLOSE = &H10 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_KEYDOWN = &H100 Public Const WM_KEYUP = &H101 Public Const WM_ACTIVATE = &H6 Public Const LOGPIXELSY = 90 Const GW_CHILD = 5 Const GW_HWNDFIRST = 0 Const GW_HWNDLAST = 1 Const GW_HWNDNEXT = 2 Const GW_HWNDPREV = 3 Const GW_MAX = 5 Const GW_OWNER = 4 Sub GetRunningApplications() Dim lLgthChild As Long Dim sNameChild As String Dim lLgthOwner As Long Dim sNameOwner As String Dim lHwnd As Long Dim lHwnd2 As Long Dim lProssId As Long Erase Handles Erase Logs Counter = 0 Const vbTextCompare = 1 lHwnd = GetWindow(q.hwnd, GW_HWNDFIRST) While lHwnd <> 0 lLgthChild = GetWindowTextLength(lHwnd) sNameChild = String$(lLgthChild + 1, Chr$(0)) lLgthChild = GetWindowText(lHwnd, sNameChild, lLgthChild + 1) If lLgthChild <> 0 Then sNameChild = Left$(sNameChild, InStr(1, sNameChild, Chr$(0), vbTextCompare) - 1) Call GetWindowThreadProcessId(lHwnd, lProssId) Logs(Counter) = sNameChild & lHwnd Handles(Counter) = lHwnd For i = 0 To 300 If i = Counter Then i = i + 1 If Logs(i) = Logs(Counter) Then Counter = Counter - 1: GoTo SkipIt Next i SkipIt: Counter = Counter + 1 End If lHwnd = GetWindow(lHwnd, GW_HWNDNEXT) DoEvents Wend End Sub q - название формы l - название ЛистБокса |
|||
|
||||
| Vano-K |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 4.4.2003 Где: Украина, Днепропе тровск Репутация: нет Всего: нет |
А как закрывать процесс, зная название?
Пример: мне надо, чтобы мою программу нельзя было отключить, и возникла идея, закрывать taskmgr.exe, в ХР это Дисспетчер задач |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |