Даже незнаю как назвать

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Даже незнаю как назвать

Сообщение _Мика_ » 03.01.2004 (Сб) 23:21

Вопросик наверное не из легких :)
Ща постараюсь объяснить

Ну предположем у нас есть файл "C:\test.txt" но наша прога об этом не знает!!!
мы наводим на этот файл мышкой и допустим нажимаем F12 и появляетсся наша прога в которой написано размер этого файла, директория, ну и т. д.

Я помню у меня был ACDSee 4.0 + ImageFox и этот ImageFox был все время в трее и когда на любой файл нажимаеш правой кнопкой мыши появляется стандартное меню только внем добавлено не сколько строчек: сколько он весит, если этот файл картинка то показывает её ну и т. д.

Я думаю алгоритм состоит втом, что прога должна определять в какой директории находится Explorer (не "C:\explorer.exe" а предположем "С:\"), находить выделенный файл и т. д.


если кто не понял могу перефразировать :) много вато получилось :)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.01.2004 (Вс) 10:00

А я думаю, что нуна читать не скажу что на предмет HKEY_CLASSES_ROOT\*\shellex\contextmenuhandlers и propertysheethandlers.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 04.01.2004 (Вс) 13:33

Если честно в техническом английском не селен.то есть надо искать материал связанный с реестром (не любля я реестр :twisted: )
А как нить по другому можно :?:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 04.01.2004 (Вс) 15:12

Я вот про это же постил на http://bbs.vbstreets.ru/viewtopic.php?t=4856. Посмотри, там ссылка на дельный материал есть. Правда, я на это забил все-таки :wink:
Моду создают модоки, а распространяют модозвоны.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 04.01.2004 (Вс) 19:20

Спасибо конешно но большенство ссылок по C++ а я в нем не му-му :oops: . Ладно юуду разбираться с тем что есть :)
У какого еще идеи :)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 04.01.2004 (Вс) 20:14

Без реестра вообще никак!! так что полюби его

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 05.01.2004 (Пн) 12:28

Раз без реестра не куды то можно про это:

[/b]HKEY_CLASSES_ROOT\*\shellex\contextmenuhandlers и propertysheethandlers.

по подробней :( :)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 05.01.2004 (Пн) 19:49

знаю что в HKEY_CLASSES_ROOT ключи такого типа: .xxx отвечают за операции с файлами имеющие расширение xxx. contextmenuhandlers Отвечает за меню, которые появляются при правом клике мышкой.

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 05.01.2004 (Пн) 19:50

знаю что в HKEY_CLASSES_ROOT ключи такого типа: .xxx отвечают за операции с файлами имеющие расширение xxx. contextmenuhandlers Отвечает за меню, которые появляются при правом клике мышкой.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 05.01.2004 (Пн) 20:51

И че их надо както проверять :?:
Или че с ними надо делать
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 09.01.2004 (Пт) 21:18

Я нашел пример показывающий полный путь к файлу по его хандлу вот он:





Данный пример покажет полный путь к исполняемому (exe) файлу.

Расположите на форме элемент CommandButton. В оригинальном примере в событии Command1_Click() была лишь одна строчка (та, которая не закомментирована). Но если вы добавите модуль из примера "Поиск hwnd процесса на панели задач", то вы сможете определить полный путь exe-файла программы ИнтернетЭкспорер. Не забудьте снять комментарий в событии Command1_Click().


--------------------------------------------------------------------------------
Const TH32CS_SNAPPROCESS As Long = 2&
Const MAX_PATH As Long = 260

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwflags As Long
szexeFile As String * MAX_PATH
End Type

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlgas As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

Public Function GetExeFromHandle(hwnd As Long) As String
Dim threadID As Long, processID As Long, hSnapshot As Long
Dim uProcess As PROCESSENTRY32, rProcessFound As Long
Dim i As Integer, szExename As String
' Get ID for window thread
threadID = GetWindowThreadProcessId(hwnd, processID)
' Check if valid
If threadID = 0 Or processID = 0 Then Exit Function
' Create snapshot of current processes
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
' Check if snapshot is valid
If hSnapshot = -1 Then Exit Function
'Initialize uProcess with correct size
uProcess.dwSize = Len(uProcess)
'Start looping through processes
rProcessFound = ProcessFirst(hSnapshot, uProcess)
Do While rProcessFound
If uProcess.th32ProcessID = processID Then
'Found it, now get name of exefile
i = InStr(1, uProcess.szexeFile, Chr(0))
If i > 0 Then szExename = Left$(uProcess.szexeFile, i - 1)
Exit Do
Else
'Wrong ID, so continue looping
rProcessFound = ProcessNext(hSnapshot, uProcess)
End If
Loop
Call CloseHandle(hSnapshot)
GetExeFromHandle = szExename
End Function

Private Sub Command1_Click()
'снимите комментарий, если вы добавили модуль из предыдущего примера
'MsgBox GetExeFromHandle(FindWindowWild("*Mi??OSoFt In[s-u]ernet*", False))
MsgBox GetExeFromHandle(Me.hwnd)
End Sub





Теперь осталось найти хандл определленоого файла
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 3

    TopList  
cron