Страница: 1 | 2 |
Вопрос: Подписи иконок
Добавлено: 25.07.05 21:16
Автор вопроса: Мишка
Кто может помочь с исходниками, по теме... Мне нужно узнать подписи иконок на рабочем столе...
Заранее благодарен :)
Ответы
Всего ответов: 30
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 25.07.05 23:20
C:\Documents and Settings\USERNAME\Рабочий стол
Корзина, мой комп, сетевое окруж, IE, мои доки - всё в реестре.
Номер ответа: 2
Автор ответа:
Мишка
Вопросов: 2
Ответов: 8
Профиль | | #2
Добавлено: 26.07.05 17:48
нет, это не выход... нужно посредством Айпи...
т.к. если это не ХР а 98 ...
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 26.07.05 18:26
ну дык по средствам Айпи и распознай 98 это или XP и соответственно пути прописуй. Вообще конечно можно как нибуть перечислить какие иконки на столе есть, узнать хендел стола, а далее через Callback ф-ции перечислить какие иконки, но ето геморно, я токо примерно представляю как оно всё будет, а накодить гораздо сложнее... Разве что лидер форума тебе поможет...
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 26.07.05 18:26
ну дык по средствам Айпи и распознай 98 это или XP и соответственно пути прописуй. Вообще конечно можно как нибуть перечислить какие иконки на столе есть, узнать хендел стола, а далее через Callback ф-ции перечислить какие иконки, но ето геморно, я токо примерно представляю как оно всё будет, а накодить гораздо сложнее... Разве что лидер форума тебе поможет...
Номер ответа: 5
Автор ответа:
Мишка
Вопросов: 2
Ответов: 8
Профиль | | #5
Добавлено: 28.07.05 17:00
дык вот так и нужно
кто тут лидер, помогите плиз... оч нужно..
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 28.07.05 22:17
Ну лидер может быть только один, не будем показывать пальцем...
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 29.07.05 13:17
вот что-то накатал, но оно не работает... точнее работает но на половину... а все по тому что память выделена в одном процессе, а вот LV пытается поместить строку по этому же адресу но в своем процессе... т.е. процессе explorer.exe... следовательно способ что предложил Hacker не работоспособен (во всяком случае не на VB6).
'***************************************************************************************
'* Написано: 7.29.2005 (Team HomeWork) *
'* e-mail: sne_pro@mail.ru *
'***************************************************************************************
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Type LVITEM
mask As Long
iItem As Long
iSubItem As Long
state As Long
stateMask As Long
pszText As String
cchTextMax As Long
iImage As Long
lParam As Long
iIndent As Long
End Type
Private Const LVM_GETITEMCOUNT As Long = &H1004
Private Const LVM_GETITEMTEXT As Long = &H102D
Private Sub Form_Load()
Dim hWnd As Long, _
i As Long, _
lResult As Long
Dim LVI As LVITEM
hWnd = FindWindowEx(0&, 0&, "Progman", vbNullString)
hWnd = FindWindowEx(hWnd, 0&, "SHELLDLL_DefView", vbNullString)
hWnd = FindWindowEx(hWnd, 0&, "SysListView32", vbNullString)
i = SendMessage(hWnd, LVM_GETITEMCOUNT, 0&, ByVal 0&
If i = 0& Then Exit Sub
LVI.cchTextMax = 260
LVI.pszText = String$(LVI.cchTextMax, 0&
LVI.iSubItem = 0
For i = 0 To i - vbNull
lResult = SendMessage(hWnd, LVM_GETITEMTEXT, i, ByVal VarPtr(LVI))
Debug.Print VBA.Left$(LVI.pszText, lResult), Time
Next
End Sub
За-то можно скажем удалить че-нить )
Call SendMessage(hWnd, LVM_DELETEITEM, 0&, 0&
А вообще, или пиши на PowerBasic'e, ассемблере, си++, на выбор, длл-ку, либо ищи какой-нить более культурный способ
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 29.07.05 22:09
тогда проще более простым, посмотреть что в папке и посмотреть что поставлено на отображение в реестре. Тоже выше мной предлагалось
Номер ответа: 9
Автор ответа:
Мишка
Вопросов: 2
Ответов: 8
Профиль | | #9
Добавлено: 31.07.05 10:45
2sne: спасибо за совет...
я кстати тоже так пробовал, только почему-то возвращается пустая строка?
а каким способом?
Номер ответа: 10
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #10
Добавлено: 31.07.05 13:25
Ты передаешь указатель на память, на память в своем процессе. Отсылаем сообщение, и... он глядит, копирует название, по этому адресу... вот только проблемма... по адресу в своем процессе (explorer.exe), т.е. он берет и в себе перезаписывает какие-то, возможно, нужные ему данные, может неинициализированную память и т.д. В итоге раз у меня он даже вылетел
Чтобы связать твою программу и explorer.exe, необходимо написать dll библиотеку, спроецировать ее в адресное пр-во explorer.exe, и уже вызвав функцию в ней получить строку
Вобщем за подробностями ищи книжку Рихтера, а так же можешь сходить на wasm.ru, там были три статьи, немного не по этой теме, и все же оно тебе поможет.
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 31.07.05 19:29
Внедрившись в адресное пространство другого процесса, скорее всего каспер материться начнёт.
Номер ответа: 12
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #12
Добавлено: 31.07.05 21:37
это вполне возможно... по-крайней мере outpost так и делает
Номер ответа: 13
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #13
Добавлено: 31.07.05 22:54
Хм... когда я эксперементировал с FF, а там инменно dll внедряется в IE, то тот же outpost самый первый матюкался
Номер ответа: 14
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #14
Добавлено: 03.08.05 18:03
мда... но выход должен быть... потомучто я проги такие видел
Номер ответа: 15
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #15
Добавлено: 03.08.05 18:22
Видать не VB