ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Расширение контекстного меню проводника Windows
  #1  
Старый 21.03.2009, 19:22
Dobby007
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме:
163517

Репутация: 57
Отправить сообщение для Dobby007 с помощью ICQ
По умолчанию Расширение контекстного меню проводника Windows

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

  #2  
Старый 21.03.2009, 21:21
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Цитата:
Сообщение от Dobby007  
P.S. Видел еще в инете, что можно проделать что-то подобное просто добавляя несколько записей в реестре. Но там сильно не раскрутишься т.е. submenu, иконки сделать не получится, плюс "слишком просто" че-то это для меня Что-то уже новое узнать хотелось бы...
Вообщем, помогите кто чем может.
Именно через реестр это и делается, и иконки там сделать можно.
 
Ответить с цитированием

  #3  
Старый 22.03.2009, 00:35
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Вообще есть очень хороший пример этого для Delphi
От дельфы до билдера не далеко, так что быстро сможешь переписать.
Описано всё тут:
http://delphiworld.narod.ru/base/add_ie_menu_item.html
или как вариант - запроса в поисковик: "Пример добавления пункта в контекстное меню Windows Explorer"
 
Ответить с цитированием

  #4  
Старый 22.03.2009, 16:46
Dobby007
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме:
163517

Репутация: 57
Отправить сообщение для Dobby007 с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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
 
Ответить с цитированием

  #5  
Старый 22.03.2009, 21:13
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

точно не помню, но по аналогии форма в билдере делается. вот и смотри как описывается класс формы, так и опиши этот )
 
Ответить с цитированием

  #6  
Старый 22.03.2009, 23:18
Dobby007
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме:
163517

Репутация: 57
Отправить сообщение для Dobby007 с помощью ICQ
По умолчанию

Цитата:
Сообщение от slesh  
точно не помню, но по аналогии форма в билдере делается. вот и смотри как описывается класс формы, так и опиши этот )
Ну так я по аналогии как раз с формой и описывал:
Цитата:
class TContextMenuFactory : public TComObjectFactory
{
public:
void recount();
};

Но компилятор ругается: [BCC32 Error] Main.cpp(16): E2029 'TComObjectFactory' must be a previously defined class or struct
 
Ответить с цитированием

  #7  
Старый 23.03.2009, 00:08
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

В том примере юниты поключались, ты их подключи и в своём коде
 
Ответить с цитированием

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

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

TComObjectFactory описан в ComObj
 
Ответить с цитированием

  #9  
Старый 23.03.2009, 20:21
Dobby007
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме:
163517

Репутация: 57
Отправить сообщение для Dobby007 с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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 как видно не к чему не ведет...
 
Ответить с цитированием

это всеж-таки случилось... =))
  #10  
Старый 24.03.2009, 16:21
Dobby007
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме:
163517

Репутация: 57
Отправить сообщение для Dobby007 с помощью ICQ
Thumbs up это всеж-таки случилось... =))

Все. Разобрался. Все работает безотказно.
P.S. Как будет время напишу ФАК или статейку по этому делу... Т.к. думаю, что не у одного меня была такая проблема...

Добавлено через 4 дня :
Ну вот... Как обещал:
http://forum.antichat.ru/showthread.php?p=1194736#post1194736

Последний раз редактировалось Dobby007; 28.03.2009 в 15:50..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Секреты Windows 7 Campery Статьи 17 19.11.2009 02:33
Преодолевая ограничения Windows: физическая память jawbreaker Чужие Статьи 1 16.02.2009 02:12
Windows Vista Robin_Hood Мировые новости 18 09.03.2007 14:00



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ