информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsSpanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
да я прямо сюда. мот кому еще интересно будет. 10.01.03 08:57  Число просмотров: 1232
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
HWND wnd=FindWindow("Shell_TrayWnd",0);
wnd=FindWindowEx(wnd,0,"TrayNotifyWnd",0);
wnd=FindWindowEx(wnd,0,"ToolbarWindow32",0);
DWORD pid;
GetWindowThreadProcessId(wnd,&pid);
HANDLE prc=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
TBBUTTON *buf=(TBBUTTON *)VirtualAllocEx(prc,0,sizeof(TBBUTTON),MEM_COMMIT,PAGE_READWRITE);
if(!buf)return;

for(int n=0;n<128;n++)
{
if(SendMessage(wnd,TB_GETBUTTON,n,(DWORD)buf))
{
char ltxt[1024];ZeroMemory(ltxt,1024);
TBBUTTON btn;
ReadProcessMemory(prc,buf,&btn,sizeof(btn),0);
char *txt=(char *)VirtualAllocEx(prc,0,1024,MEM_COMMIT,PAGE_READWRITE);
if(SendMessage(wnd,TB_GETBUTTONTEXT,btn.idCommand,(DWORD)txt)!=-1)
{
ReadProcessMemory(prc,txt,ltxt,1024,0);
MessageBox(0,ltxt,"xxx",0);
}
VirtualFreeEx(prc,txt,0,MEM_RELEASE);
}
}
VirtualFreeEx(prc,buf,0,MEM_RELEASE);
CloseHandle(prc);
<programming>
[win32] как можно узнать hicon и hwnd владельцев всех иконок в systemtray? вообще возможно ли это? 03.01.03 12:58  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
[win32] как можно узнать hicon и hwnd владельцев всех иконок в systemtray? вообще возможно ли это? 08.01.03 21:41  
Автор: YoSilver Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Иконки добавляются шеллом посылкой сообщения WM_COPYDATA окну трея, можно похватать их, посмотреть че за данные, их формат, это гимор, но по-другому имхо никак
ещё как можно 09.01.03 02:45  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
я видел несколько прог для этих целей
но помоему только одна может запускаться без перезагрузки компа и получать весь список иконок (traywizard.com)
т.е. она может запускаться когда в трее уже есть иконки и определять их
только она в XP глючит
как я понял она глючит с прогами которые используют новую версию Shell_NotifyIcon (ver.5)

p.s.
чем ещё она хороша - нет проблем с кейгенами ;)

traywizard.com
tray область - это ToolbarWindow32 по идее ей можно слать тулбаровые мессаги. (грабли внутри) 09.01.03 03:13  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
А грабли в том что при посылке окну трея TB_GETBUTTON падает explorer.exe А вот TB_DELETEBUTTON не рушит explorer а как и положено убивает иконку из трея. Но мне то нужно их перечислять (и переключать потом по горячей клавише типа Alt+Tab).
Заюзал VirtualAllocEx и ReadProcessMemory - все стало ок. Только это получается не будет под 98й работать? 09.01.03 04:01  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Заюзал VirtualAllocEx и ReadProcessMemory - все стало ок. Только это получается не будет под 98й работать? 10.01.03 06:43  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
кинь код пожалуйста мне на ящик - достаточно интересно
заранее благодарен. Дякую, аж підскакую =))
да я прямо сюда. мот кому еще интересно будет. 10.01.03 08:57  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
HWND wnd=FindWindow("Shell_TrayWnd",0);
wnd=FindWindowEx(wnd,0,"TrayNotifyWnd",0);
wnd=FindWindowEx(wnd,0,"ToolbarWindow32",0);
DWORD pid;
GetWindowThreadProcessId(wnd,&pid);
HANDLE prc=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
TBBUTTON *buf=(TBBUTTON *)VirtualAllocEx(prc,0,sizeof(TBBUTTON),MEM_COMMIT,PAGE_READWRITE);
if(!buf)return;

for(int n=0;n<128;n++)
{
if(SendMessage(wnd,TB_GETBUTTON,n,(DWORD)buf))
{
char ltxt[1024];ZeroMemory(ltxt,1024);
TBBUTTON btn;
ReadProcessMemory(prc,buf,&btn,sizeof(btn),0);
char *txt=(char *)VirtualAllocEx(prc,0,1024,MEM_COMMIT,PAGE_READWRITE);
if(SendMessage(wnd,TB_GETBUTTONTEXT,btn.idCommand,(DWORD)txt)!=-1)
{
ReadProcessMemory(prc,txt,ltxt,1024,0);
MessageBox(0,ltxt,"xxx",0);
}
VirtualFreeEx(prc,txt,0,MEM_RELEASE);
}
}
VirtualFreeEx(prc,buf,0,MEM_RELEASE);
CloseHandle(prc);
[Win32] у тебя explorer падал, потому что ты ему давал адрес буфера в своем адресном простаранстве 10.01.03 20:13  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
Ну дык. Я до этого допер сразу как сюда пожаловался... 11.01.03 00:15  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
VirtualAllocEx и ReadProcessMemory под Win9x — поищи в Сети, есть HackАналоги этих функций под эти оси 09.01.03 10:28  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 09.01.03 19:59  Количество правок: 1
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach