Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 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
Вообще конечно можно как нибуть перечислить какие иконки на столе есть, узнать хендел стола, а далее через Callback ф-ции перечислить какие иконки


дык вот так и нужно :)

кто тут лидер, помогите плиз... оч нужно.. :)

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 28.07.05 22:17
Ну лидер может быть только один, не будем показывать пальцем... :)

Ответить

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 29.07.05 13:17
вот что-то накатал, но оно не работает... точнее работает но на половину... а все по тому что память выделена в одном процессе, а вот LV пытается поместить строку по этому же адресу но в своем процессе... т.е. процессе explorer.exe... следовательно способ что предложил Hacker не работоспособен (во всяком случае не на VB6).

Option Explicit

'***************************************************************************************
'*                     Написано: 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


За-то можно скажем удалить че-нить :))

Private Const LVM_DELETEITEM   As Long = &H1008

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: спасибо за совет...

я кстати тоже так пробовал, только почему-то возвращается пустая строка?

А вообще, или пиши на PowerBasic'e, ассемблере, си++, на выбор, длл-ку

а каким способом? %)

Ответить

Номер ответа: 10
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: barsik.newmail.ru
 Профиль | | #14
Добавлено: 03.08.05 18:03
мда... но выход должен быть... потомучто я проги такие видел :)

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 03.08.05 18:22
Видать не VB

Ответить

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

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



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