Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Как создать прогу, которая помещала бы tray-иконки в себя?   Найти похожие ветки 

 
Volf_555   (2006-01-14 19:45) [0]

Планирую придумать свой Explorer.exe...
Столкнулся с проблемой - помещение tray-иконок (например при запуске, Касперский создаёт свою tray-иконку) в мою программу и доступ к ним, соответственно

Как такое сделать?


 
Eraser ©   (2006-01-14 20:02) [1]

TJvTrayIcon из JEDI VCL поможет.


 
VirEx ©   (2006-01-14 21:16) [2]

CloseDesktop
CloseWindowStation
CreateDesktop
CreateWindowStation
EnumDesktopProc
EnumDesktops
EnumDesktopWindows
EnumWindowStationProc
EnumWindowStations
GetProcessWindowStation
GetThreadDesktop
GetUserObjectInformation
GetUserObjectSecurity
OpenDesktop
OpenInputDesktop
OpenWindowStation
SetProcessWindowStation
SetThreadDesktop
SetUserObjectInformation
SetUserObjectSecurity
SwitchDesktop


 
Volf_555   (2006-01-14 21:59) [3]


> Eraser ©   (14.01.06 20:02) [1]
> TJvTrayIcon из JEDI VCL поможет.


Скачал... Только как установить?!

Install.bat - ругается:

build.exe found. Pretest: ok
Using d6 for build process.

MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
[Generating MO files]
[Compiling: Installer]
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
Writing: ..\..\install\JVCLInstall\JVCLInstall.cfg
Borland Delphi Version 14.0
Copyright (c) 1983,2001 Borland Software Corporation
E:\SysFolders\Desktop\JVCL\jvcl\run\JvTypes.pas(558) Error: Undeclared identifie
r: "clHotLight"
E:\SysFolders\Desktop\JVCL\jvcl\run\JvTypes.pas(559) Error: Undeclared identifie
r: "clMenuBar"
E:\SysFolders\Desktop\JVCL\jvcl\run\JvTypes.pas(560) Error: Undeclared identifie
r: "clMenuHighlight"
E:\SysFolders\Desktop\JVCL\jvcl\run\JvExControls.pas(56) Fatal: Could not compil
e used unit "JvTypes.pas"

** error 1 ** deleting Installer_nomo
Press ENTER to continue


Как исправить ситуацию?


> VirEx ©   (14.01.06 21:16) [2]

Спасибо - попробую!


 
Volf_555   (2006-01-14 22:11) [4]


> VirEx ©   (14.01.06 21:16) [2]

Кстати, нет ли у тебя литературы насчёт этих функций? Если есть, то скинь на мыло: kostya__@list.ru


 
VirEx ©   (2006-01-14 22:14) [5]


>  [4] Volf_555   (14.01.06 22:11)

эм... "D:\Program Files\Common Files\Borland Shared\MSHelp\WIN32SDK.HLP"


 
Eraser ©   (2006-01-14 22:21) [6]


> Volf_555   (14.01.06 21:59) [3]

Скачай так же JCL. Потом в корне какого-нибудь диска создай каталог JEDI и в него скопируй папки JCL и JVCL. Сначала устанавливай JCL потом JVCL. Вся установка займёт минуты 3-4 - всё автоматизированно.


 
Eraser ©   (2006-01-14 22:22) [7]


> VirEx ©   (14.01.06 21:16) [2]

к чему этот список ф-й? ;)


 
VirEx ©   (2006-01-14 22:28) [8]


>  [7] Eraser ©   (14.01.06 22:22)
>
> > VirEx ©   (14.01.06 21:16) [2]
>
> к чему этот список ф-й? ;)

A window station is a secure object that contains a clipboard, a set of global atoms and a group of desktop objects. The interactive window station assigned to the logon session of the interactive user also contains the keyboard, mouse, and display device. The interactive window station is visible to the user and can receive input from the user. All other window stations are noninteractive, which means that they cannot be made visible to the user, and cannot receive user input.

Applications can use the following functions for manipulating window station objects:

Function Description
CloseWindowStation Closes a specified window station.
CreateWindowStation Creates a new window station.
EnumWindowStations Enumerates the window stations in the system by repeatedly calling an application-defined EnumWindowStationProc callback function.
GetProcessWindowStation Returns a handle of the window station assigned to the calling process.
GetUserObjectInformation Gets information about a window station or desktop object.
GetUserObjectSecurity Gets security information for a window station or desktop object.
OpenWindowStation Opens a handle of an existing window station.
SetProcessWindowStation Assigns a specified window station to the calling process.
SetUserObjectInformation Sets information about a window station or desktop object.
SetUserObjectSecurity Sets security information for a window station or desktop object.

сабж, ну хочет человек свой shell вместо explorer"a сделать, пусть делает :)


 
Volf_555   (2006-01-14 22:36) [9]

JCL установило с двумя ошибками, какие именно - не написало, а
JVCL - ошибка снова, смотри

> Volf_555   (14.01.06 21:59) [3]


 
Eraser ©   (2006-01-14 23:08) [10]


> Volf_555   (14.01.06 22:36) [9]

у меня и не только у меня нормально всё установило, пробовал на D7 и D2005.

> VirEx ©   (14.01.06 22:28) [8]

а! по этой

> Планирую придумать свой Explorer.exe...

части сабжа... тогда ясно )


 
Набережных С. ©   (2006-01-15 08:09) [11]


> VirEx ©   (14.01.06 21:16) [2]


> VirEx ©   (14.01.06 22:28) [8]

И какое отношение все это имеет к вопросу конкретно и к оболочке вообще?


 
VirEx ©   (2006-01-15 15:52) [12]


> [11] Набережных С. ©   (15.01.06 08:09)

задолбала кривая критика! см [8] VirEx ©   (14.01.06 22:28)


 
Набережных С. ©   (2006-01-15 17:19) [13]


> VirEx ©   (15.01.06 15:52) [12]


> задолбала кривая критика! см [8] VirEx ©   (14.01.06 22:
> 28)

Смотрю. Не вижу никакой связи с Shell. Может ты объяснишь?

Задолбали ламеры, замусоривающие форум кривыми советами.

LMD.


 
VirEx ©   (2006-01-15 17:43) [14]


>  [13] Набережных С. ©   (15.01.06 17:19)

я даже и не программист, если что)

я полагаю что через Window Station "технологию" можно assigned to the logon session of the interactive user also contains the keyboard, mouse, and display device


 
Набережных С. ©   (2006-01-15 17:56) [15]


> VirEx ©   (15.01.06 17:43) [14]

Ну и зачем было так: "задолбали!"?:)

Все это немного из другой оперы. Шелл запускается уже на интерактивном десктопе в интерактивной оконной станции и, соответственно, уже имеет доступ ко всем этим прелестям - "keyboard, mouse, and display device" - без каких-либо дополнительных телодвижений. А функции из [8] относятся к системе безопасности, с которой сам по себе шелл дел иметь не должен, да и не нужно ему это.


 
Igor_thief   (2006-01-15 18:29) [16]

Научись работать с ресурсами, потом научись работать с треем. Благо материла по данной тематеке предостаточно в инете.

ЗЫ: в BDS 2006 есть прекрассный компонент для работы с треем.

Удачи!


 
Rouse_ ©   (2006-01-15 19:28) [17]


> я полагаю что через Window Station "технологию" можно assigned
> to the logon session of the interactive user also contains
> the keyboard, mouse, and display device

Плохо полагаешь, но начитался - не спорю...
Изучай: http://www.microsoft.com/technet/security/bulletin/MS02-071.mspx
Ну и вообще:  
http://search.microsoft.com/results.aspx?q=Interactive+desktop&l=2&mkt=ru-RU&FORM=QBME2


 
Volf_555   (2006-01-15 19:51) [18]


> Igor_thief   (15.01.06 18:29) [16]
> Научись работать с ресурсами, потом научись работать с треем.
>  Благо материла по данной тематеке предостаточно в инете.
>
>
> ЗЫ: в BDS 2006 есть прекрассный компонент для работы с треем.
>
>
> Удачи!


BDS 2006 - это что такое?
Borland Delphi S......... 2006? какое слово подразумевается под "S"?

Создание нового десктопа - это тоже как один из вариантов.
Но меня интересует, в основном, создание программы, которая будет заменять explorer.exe и запускаться вместо него


 
Rouse_ ©   (2006-01-15 20:45) [19]


> BDS 2006 - это что такое?

Borland Delphi Studio 2006


 
ShiFT   (2006-01-16 10:08) [20]

>Rouse_ ©   (15.01.06 20:45) [19]
>> BDS 2006 - это что такое?
>Borland Delphi Studio 2006

Borland Developer Studio 2006


 
Игорь Шевченко ©   (2006-01-16 11:41) [21]

VirEx ©   (15.01.06 17:43) [14]


> я даже и не программист, если что)


Тогда с какой целью ты написал пост [2] ? Чтобы показать, как много слов знаешь ?


> я полагаю что через Window Station "технологию" можно assigned
> to the logon session of the interactive user also contains
> the keyboard, mouse, and display device


Нет, нельзя, ты неверно полагаешь.

Shell - это самая обычная программа, преимущественно explorer.exe, запускаемая гuserinit.exe при входе в систему, ее имя прописано в реестре, можно даже Notepad запустить в качестве shell, только будет ли толк от этого ?


 
ПЛОВ ©   (2006-01-16 14:29) [22]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=618


 
n0name   (2006-01-16 15:22) [23]

Shell_NotifyIconW просто ищет окно с классом "Shell_TrayWnd" и посылает в него сообщение WM_COPYDATA. в качестве данных выступает простая структура TNIDMessage. возвращаясь к топику: если создать свое окно с классом "Shell_TrayWnd" и обрабатывать входящие сообщения WM_COPYDATA, то можно написать полный аналог system tray! ... (с) paul_shmakov


 
VirEx ©   (2006-01-16 18:38) [24]


>  [21] Игорь Шевченко ©   (16.01.06 11:41)
> VirEx ©   (15.01.06 17:43) [14]
>
>
> > я даже и не программист, если что)
>
>
> Тогда с какой целью ты написал пост [2] ? Чтобы показать,
> как много слов знаешь ?


---
нет, как в справке копался


 
VirEx ©   (2006-01-16 18:42) [25]

Удалено модератором


 
Volf_555   (2006-01-17 13:49) [26]


> ПЛОВ ©   (16.01.06 14:29) [22]
> http://www.delphikingdom.com/asp/viewitem.asp?catalogid=618


Ссылка интересная и полезная, только одно НО есть.
Скачал демо-проект по ссылке: http://delphi.mtu-net.ru/zip/demotray.zip , откомпилировал, запустил вместо explorer.exe, запускал разные проги, которые создают трэи (FlashGet, TeleportPro.....) - бесполезно, трэи на форме не появляются.....


 
ПЛОВ ©   (2006-01-17 14:00) [27]

Возможно. Я вообще не вижу где в демке прорисовка иконок на форме, они только в ИмэйджЛист кидаються и все :)
Просто возьми за основу "теорию", остальное напиши сам. Данные об иконках твоему приложению система передает, в чем проблема то?..

Что ли тоже заняться написанием своего shell"a? :)


 
DVM ©   (2006-01-17 16:06) [28]


> Shell_NotifyIconW просто ищет окно с классом "Shell_TrayWnd"
> и посылает в него сообщение WM_COPYDATA. в качестве данных
> выступает простая структура TNIDMessage. возвращаясь к топику:
>  если создать свое окно с классом "Shell_TrayWnd" и обрабатывать
> входящие сообщения WM_COPYDATA, то можно написать полный
> аналог system tray!

Далеко не простая структура, которая меняется от версии к версии виндов, многие поля которой недокументированы вообще и некоторые документированы неправильно, особенно в свете винхп


 
DVM ©   (2006-01-17 16:08) [29]

Также есть особый класс иконок, которые добавлены в область уведомлений Com-объектами ShellServiceObjects, которые грузит эксплорер (регулятор громкости напр) их надо тоже грузить самому из своей программы.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.034 c
2-1142019006
serko
2006-03-10 22:30
2006.04.02
ListView


15-1141641390
Некто
2006-03-06 13:36
2006.04.02
Когда-то здесь было сообщение про crossover и FreeBSD


2-1142401391
Gamer
2006-03-15 08:43
2006.04.02
Как запретить копирование диска и как ...?


15-1142023041
romychk
2006-03-10 23:37
2006.04.02
Сыплется винт


15-1141827843
Новичоккк
2006-03-08 17:24
2006.04.02
Можно как-нибудь это скачать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский