ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Расширение контекстного меню проводника Windows |

21.03.2009, 19:22
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме: 163517
Репутация:
57
|
|
Расширение контекстного меню проводника Windows
Сразу скажу, что работаю в c++ builder (хотя уже и сам жалею об этом)
Нужно добавить свой новый пункт(ы) в конт. меню проводника. WinRar, допустим, делает такую тему...
Прочитал в инете что для этого нужно использовать COM-объекты. Но я честно говоря ни разу с ними нече не пробывал делать и следовательно здесь тоже не знаю в какую сторону копать. Вообщем, может кто кинет ссылку на статейку (желательно по данной теме, а не обобщенный материал по COM или ACtiveX) или примерчик какой-нить? Нагуглил ссылку: http://www.rsdn.ru/article/winshell/shlext1.xml , но там, во-первых, нужен VCC, во-вторых, насколько я смог понять, материал немного подустарел...
P.S. Видел еще в инете, что можно проделать что-то подобное просто добавляя несколько записей в реестре. Но там сильно не раскрутишься т.е. submenu, иконки сделать не получится, плюс "слишком просто" че-то это для меня  Что-то уже новое узнать хотелось бы...
Вообщем, помогите кто чем может. 
|
|
|

21.03.2009, 21:21
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от Dobby007
P.S. Видел еще в инете, что можно проделать что-то подобное просто добавляя несколько записей в реестре. Но там сильно не раскрутишься т.е. submenu, иконки сделать не получится, плюс "слишком просто" че-то это для меня  Что-то уже новое узнать хотелось бы...
Вообщем, помогите кто чем может. 
Именно через реестр это и делается, и иконки там сделать можно.
|
|
|

22.03.2009, 00:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Вообще есть очень хороший пример этого для Delphi
От дельфы до билдера не далеко, так что быстро сможешь переписать.
Описано всё тут:
http://delphiworld.narod.ru/base/add_ie_menu_item.html
или как вариант - запроса в поисковик: "Пример добавления пункта в контекстное меню Windows Explorer"
|
|
|

22.03.2009, 16:46
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме: 163517
Репутация:
57
|
|
Сообщение от slesh
Вообще есть очень хороший пример этого для Delphi
От дельфы до билдера не далеко, так что быстро сможешь переписать.
Описано всё тут:
http://delphiworld.narod.ru/base/add_ie_menu_item.html
или как вариант - запроса в поисковик: "Пример добавления пункта в контекстное меню Windows Explorer"
Спс за линк. +1...
Тут начал уже переводить код. Не так уж и просто оказалось заниматься этим. Три функции пока только портанул... Вообщем такой вопросец. Никто не подскажет как такое можно "перевести" в c++?
Код:
type
TContextMenuFactory = class(TComObjectFactory)
public
.................
override;
end;
TContextMenu = class(TComObject, IShellExtInit, IContextMenu)
..................
end;
Пытался сделать как-то так:
Код:
class TContextMenuFactory : public TComObjectFactory
{
public:
void recount();
};
Но компилятор ругается: [BCC32 Error] Main.cpp(16): E2029 'TComObjectFactory' must be a previously defined class or struct
|
|
|

22.03.2009, 21:13
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
точно не помню, но по аналогии форма в билдере делается. вот и смотри как описывается класс формы, так и опиши этот )
|
|
|

22.03.2009, 23:18
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме: 163517
Репутация:
57
|
|
Сообщение от slesh
точно не помню, но по аналогии форма в билдере делается. вот и смотри как описывается класс формы, так и опиши этот )
Ну так я по аналогии как раз с формой и описывал:
class TContextMenuFactory : public TComObjectFactory
{
public:
void recount();
};
Но компилятор ругается: [BCC32 Error] Main.cpp(16): E2029 'TComObjectFactory' must be a previously defined class or struct

|
|
|

23.03.2009, 00:08
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
В том примере юниты поключались, ты их подключи и в своём коде
|
|
|

23.03.2009, 00:10
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
TComObjectFactory описан в ComObj
|
|
|

23.03.2009, 20:21
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме: 163517
Репутация:
57
|
|
Сообщение от slesh
В том примере юниты поключались, ты их подключи и в своём коде
Да я в принципе практически сразу, как начал портировать, подключил все модули, которые были в том коде.
Код:
#include <vcl.h>
#include <windows.h>
#include <ComServ.hpp>
#include <ComObj.hpp>
#include <ActiveX.hpp>
#include <ShlObj.h>
#include <ShlObj.hpp>
#include <Menus.hpp>
#include <ShellAPI.hpp>
#include <SysUtils.hpp>
#include <registry.hpp>
#pragma hdrstop
Сообщение от slesh
TComObjectFactory описан в ComObj
Это в дельфях, а билдере инклуд ComObj.h как видно не к чему не ведет... 
|
|
|
это всеж-таки случилось... =)) |

24.03.2009, 16:21
|
|
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме: 163517
Репутация:
57
|
|
это всеж-таки случилось... =))
Все. Разобрался. Все работает безотказно.
P.S. Как будет время напишу ФАК или статейку по этому делу... Т.к. думаю, что не у одного меня была такая проблема...
Добавлено через 4 дня :
Ну вот... Как обещал:
http://forum.antichat.ru/showthread.php?p=1194736#post1194736
Последний раз редактировалось Dobby007; 28.03.2009 в 15:50..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|