hwnd и ....

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

hwnd и ....

Сообщение drronnie » 12.05.2003 (Пн) 6:45

вот как получить хэндлы всех окон в системе знаю, а пожно ли по хэндлу определить приложение (путь к нему), иконку окна (которая в заголовке), видно или нет в панеле задач и т.д....
Компиляция - перевод словесного поноса в машинный код.

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

Сообщение Александр Андреев » 12.05.2003 (Пн) 10:49


drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 13.05.2003 (Вт) 0:44

Простите, я имел ввиду на VB а не на C... я думал это не обязательно указывать, если тут у нас... VBStreets
Компиляция - перевод словесного поноса в машинный код.

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

Сообщение Александр Андреев » 13.05.2003 (Вт) 10:04

Ну там почитай принципы... Там вроде только пара апишных вызовов... Их-то ты всегда на VB сможешь перевести. :)

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 13.05.2003 (Вт) 15:34

Путь к приложению можно узнать так:

Private Type MODULEENTRY32
dwSize As Long ' size, in bytes, of structure
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Long
modBaseSize As Long
hModule As Long
szModule As String * MAX_MODULE_NAME32
szExePath As String * 260 ' MAX_PATH
End Type

Private Declare Function apiCreateToolhelp32Snapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long

Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, ModEntry As MODULEENTRY32) As Boolean

Private Declare Function Module32Next Lib "kernel32" (ByVal hSnapshot As Long, ModEntry As MODULEENTRY32) As Boolean

Private Const TH32CS_SNAPMODULE = &H8

Public Function ShowFilePath(ByVal lhWnd As Long, ByVal lParam As Long) As Long
Dim nSnapshot As Long
Dim uModule As MODULEENTRY32
Dim nPosition As Long
Dim nProcessID

GetWindowThreadProcessId lhWnd, nProcessID
uModule.dwSize = Len(uModule)
nSnapshot = apiCreateToolhelp32Snapshot(TH32CS_SNAPMODULE, nProcessID)
Module32First nSnapshot, uModule
nPosition = InStr(1, uModule.szExePath, Chr$(0), vbBinaryCompare)
If nPosition > 0 Then
MsgBox Left$(uModule.szExePath, nPosition - 1)
End If

ShowFilePath = True
End Function

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 05.07.2003 (Сб) 12:22

Хех. А в кнопочку CODE кликнуть слабо было ? :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 13

    TopList