powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / и снова трей
25 сообщений из 120, страница 4 из 5
и снова трей
    #37373151
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[SRC Antonariy]Внимательно прочитать исходник программы на дельфи[/src]не разираюсь в дельфи( совсем...
[SRC Antonariy]Вопрос поставлен некорректно[/SRC] вы написали то же самое, тока с другой стороны. от этого ничего не меняется) разве что удобство звучания. хотя на коде, возможно, способом оформления как определить, какой из хэндлов принадлежит нужному процессу?
...
Рейтинг: 0 / 0
и снова трей
    #37373171
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Так ты прочитал хоть что ни будь, вник ли хоть на чуток в то что ты хочешь сделать?
...
Рейтинг: 0 / 0
и снова трей
    #37373186
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

вник ли? за несколько месяцев и кучу многостраничных топиков невозможно остаться "невникнутым".
timtimТак ты прочитал хоть что ни будь где прочитал, если на VB никто толком ничего не знает даже в теории, и никто на VB не создавал ничего похожего... переводить дельфи в vb не в состоянии
...
Рейтинг: 0 / 0
и снова трей
    #37373194
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не разираюсь в дельфи( совсем...Для того чтобы прочитать названия нужных апи-функций, типов и констант и русские комментарии, не нужно в нем разбираться. Совсем.
вы написали то же самоеНе тоже самое. У тебя проблемы с восприятием и изложением из-за нехватки знаний, поэтому кажется, что разницы нет.
от этого ничего не меняется)Меняется все. Ты собирался плясать от процесса и заплясал бы в никуда.

как определить, какой из хэндлов принадлежит нужному процессуПроще пареной репы — GetWindowThreadProcessId. Однако она для тебя бесполезна пока ты не научился выдергивать хэндлы из эксплорера.

где прочитал, если на VB никто толком ничего не знает даже в теории,Причем тут VB? Это вопрос знания не языка, а принципов работы операционной системы Windows. Код на разных языках будет отличаться только синтаксисом, но не сутью — функции для работы с системой и принципы их использования одни и те же для всех языков.
...
Рейтинг: 0 / 0
и снова трей
    #37373210
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот полный код, который возвращает название файла, из которого был запущен процесс, которому пренадлежит указанный hWnd.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
Option Explicit
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function NtQueryInformationProcess Lib "ntdll" (ByVal hProcess As Long, ByVal ProcessInformationClass As Long, ProcessInformation As Any, ByVal ProcessInformationLength As Long, ReturnLength As Long) As Long

Private Type PROCESS_BASIC_INFORMATION
    ExitStatus As Long
    PebBaseAddress As Long  'points to a structure too long to declare
    AffinityMask As Long
    BasePriority As Long
    UniqueProcessId As Long
    InheritedFromUniqueProcessId As Long
End Type

Private Type LIST_ENTRY
    pFlink As Long
    pBlink As Long
End Type

Private Type UNICODE_STRING
    Length As Integer
    MaximumLength As Integer
    Buffer As Long
End Type

Private Type LDR_MODULE
    InLoadOrderModuleList As LIST_ENTRY
    InMemoryOrderModuleList As LIST_ENTRY
    InInitializationOrderModuleList As LIST_ENTRY
    BaseAddress As Long
    EntryPoint As Long
    SizeOfImage As Long
    FullDllName As UNICODE_STRING
    BaseDllName As UNICODE_STRING
    Flags As Long
    LoadCount As Integer
    TlsIndex As Integer
    HashTableEntry As LIST_ENTRY
    TimeDateStamp As Long
End Type

Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const PROCESS_VM_READ = &H10


Private Sub Command1_Click()
Dim hWnd As Long, PID As Long, hProcess As Long
Dim pbi As PROCESS_BASIC_INFORMATION, dummy As Long
Dim ProcessModuleInfo As Long, NextModule As Long
Dim ModuleData As LDR_MODULE
Dim FileName As String

    hWnd = Val(Text1)

    If hWnd =  0  Then Exit Sub
    GetWindowThreadProcessId hWnd, PID
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ,  0 , PID)
    If hProcess =  0  Then Exit Sub
    NtQueryInformationProcess hProcess,  0 , pbi, Len(pbi), dummy
    ReadProcessMemory hProcess, pbi.PebBaseAddress +  12 , ProcessModuleInfo,  4 , dummy
    ReadProcessMemory hProcess, ProcessModuleInfo +  20 , NextModule,  4 , dummy
    Do
        ReadProcessMemory hProcess, NextModule -  8 , ModuleData, Len(ModuleData), dummy
        NextModule = ModuleData.InMemoryOrderModuleList.pFlink
    Loop Until ModuleData.BaseAddress = &H400000
    FileName = Space$(ModuleData.FullDllName.Length \  2 )
    ReadProcessMemory hProcess, ModuleData.FullDllName.Buffer, ByVal StrPtr(FileName), ModuleData.FullDllName.Length, dummy
    CloseHandle hProcess

    Debug.Print FileName
End Sub
...
Рейтинг: 0 / 0
и снова трей
    #37373242
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyТы собирался плясать от процесса и заплясал бы в никуда.
На VB да.
...
Рейтинг: 0 / 0
и снова трей
    #37373291
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Antonariy
> Вот полный код,

Зачем? Этого кода валяется в инете куча мала. Нужно только правильно спросить у гугля. Ты ему много раз говорил что
нужно спрашивать. Толку никакого.

Сейчас последует вопрос как узнать hWnd произвольного окна. Или ты собираешся пересказывать с выражением и на
ночь
избранные главы из Эппелмана?

P.S. Как уже забодали
мегапрограммеры со своими
мегапрограммами

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
и снова трей
    #37373293
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

пасяп)))
AntonariyОднако она для тебя бесполезна пока ты не научился выдергивать хэндлы из эксплорера.
вот так?
Код: plaintext
1.
2.
3.
4.
5.
ret = FindWindow("Shell_TrayWnd", "")
ret = FindWindowEx(ret,  0 , "TrayNotifyWnd", vbNullString)
ret = FindWindowEx(ret,  0 , "SysPager", vbNullString)
ret = FindWindowEx(ret,  0 , "ToolbarWindow32", vbNullString)
qwer = SendMessage(ret, TB_BUTTONCOUNT,  0 ,  0 ) 'узнать количество иконок в трее
'затем в цикле по порядковому номеру как-то узнать хендлы окон, к которым они относятся
...
Рейтинг: 0 / 0
и снова трей
    #37373323
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
Нет-нет, я только пинками зафиксирую верное направление :) Идти по нему автор будет сам.

вот так?Нет. Так как в дельфевой программе.
...
Рейтинг: 0 / 0
и снова трей
    #37373379
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

ахаха поржал, спс) да, всё чаще пишут(пишем:)) неправильно, непрофессионально, нестандартно.
появление быдлокодеров с мегапрогами <--- прибавление новичков в программировании ---> прилив новых сил, идей, обновлений в программирование. ведь как я заметил, людям зачастую нехватает не знаний, а идей. а как раз идеями мозг любого быдлокодера переполнен(поэтому он часами, сутками, месяцами вглядывается в непонятный ему бессмысленный набор символов, чтобы доделать свою мегапрогу) так что во всём есть свои плюсы
AntonariyНет. Так как в дельфевой программе. эхъ...а как там... в дельфевой программе-то?)... заранее предчувствую проблему - этот проект не работает на винде 7(коя стоит у меня)
...
Рейтинг: 0 / 0
и снова трей
    #37373390
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroзаранее предчувствую проблему - этот проект не работает на винде 7(коя стоит у меня)

Попробуй запусти хотя бы.
...
Рейтинг: 0 / 0
и снова трей
    #37373394
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

запустил - не работает, даже не выводит список значокв трее, т.е. обратиться к трею таким способом, который укан в проекте, не получится. и автор проекта дельфи сам пишет Rouseпока это только для ХР... Для остальных нужен немного другой подход...
...
Рейтинг: 0 / 0
и снова трей
    #37373411
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начни с XP.
...
Рейтинг: 0 / 0
и снова трей
    #37373418
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

не могу разобраться в дельфи проекте( а так 11046419 не получится?
...
Рейтинг: 0 / 0
и снова трей
    #37373427
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

http://rouse.drkb.ru/files/fwsystrayinfo.zip
Это не работает у тебя?
...
Рейтинг: 0 / 0
и снова трей
    #37373434
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя да, там где от быдл всяких заглушка стоит то не работает.
...
Рейтинг: 0 / 0
и снова трей
    #37373438
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

эммм... а как это запустить?))))
...
Рейтинг: 0 / 0
и снова трей
    #37373443
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

у меня нет дельфи на компе
...
Рейтинг: 0 / 0
и снова трей
    #37373451
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
и снова трей
    #37373460
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

у меня на компе 2 винды. на ХР работает, на семёрке нет
...
Рейтинг: 0 / 0
и снова трей
    #37373465
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

7-ка х64 или сборка от быдл?
Что именно не работает?
Будь конкретнее.
...
Рейтинг: 0 / 0
и снова трей
    #37373466
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

винда ХР профешанал работает, семёрка х64 не работает
...
Рейтинг: 0 / 0
и снова трей
    #37373467
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Значит не судьба!
Модифицируй код под свои нужды.
ЧТО ТЕБЕ ЕЩЁ НАДО?
...
Рейтинг: 0 / 0
и снова трей
    #37373468
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*не отображаются значки, подробности, путь. вместо реальных значок втыкнуты значки самой программы(семёрка с молнией) и корявый путь самой программы
...
Рейтинг: 0 / 0
и снова трей
    #37373470
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero*не отображаются значки, подробности, путь. вместо реальных значок втыкнуты значки самой программы(семёрка с молнией) и корявый путь самой программы

Я понял!
...
Рейтинг: 0 / 0
25 сообщений из 120, страница 4 из 5
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / и снова трей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]