AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Расширение оболочки для контекстного меню Windows Explorer
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5381

PostPosted: Mon Jun 03, 2013 4:27 am    Post subject: Расширение оболочки для контекстного меню Windows Explorer Reply with quote



Установка:
Распакуйте файлы из shellext-bin.zip в ту же папку, где находится AkelPad.exe и запустите shellext-register.cmd для регистрации расширения.

Скачать:
shellext - binaries (x86/x64)
shellext - source

© Ralph Shane
Back to top
View user's profile Send private message Send e-mail
Northtech



Joined: 03 Aug 2010
Posts: 39

PostPosted: Sat Jun 08, 2013 11:38 am    Post subject: Reply with quote

Неплохо, имеет смысл добавить в дистрибутив. Иконка правда не очень, потому у себя я её убрал.
Back to top
View user's profile Send private message
addhaloka



Joined: 30 Oct 2010
Posts: 10
Location: СССР

PostPosted: Sun Jun 16, 2013 11:15 am    Post subject: Reply with quote

Instructor
А зачем в иконке 64x64 размер? Это для чего-то надо или можно только 16x16 оставить?

Northtech wrote:
Неплохо, имеет смысл добавить в дистрибутив. Иконка правда не очень, потому у себя я её убрал.

Дык, поменять же можно Smile


Сделал установку расширения одним батником, может кому пригодится: ShellExt.cmd
Code:
@echo off
cls
color 1b
%~d0
cd "%~dp0"

set PROCESSOR=x64
if %PROCESSOR_ARCHITECTURE% == x86 (
   if not defined PROCESSOR_ARCHITEW6432 set PROCESSOR=x86
)

reg query HKCR\^*\shellex\ContextMenuHandlers | findstr /i "AkelPad" >NUL
if not errorlevel 1 (
regsvr32 /u /s shellext-%PROCESSOR%.dll
cls
echo.
echo Интеграция с оболочкой отключена. Нажмите любую клавишу для выхода . . .
pause >NUL
) else (
regsvr32 /s shellext-%PROCESSOR%.dll
cls
echo.
echo Интеграция с оболочкой включена. Нажмите любую клавишу для выхода . . .
pause >NUL
)
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Mon Jun 17, 2013 9:29 am    Post subject: Reply with quote

А зачем всё это надо, кто-нибудь сможет ответить? Чтобы добавить в контекстное меню "Открыть в AkelPad" надо ставить exe'шник, а потом его регистрировать cmd-файлом? ПЕКТ. Есть куча программ, которые позволяют редактировать контекстное меню проводника, в несколько кликов можно добавить "Открыть в _чём хочешь_".
Back to top
View user's profile Send private message Visit poster's website
addhaloka



Joined: 30 Oct 2010
Posts: 10
Location: СССР

PostPosted: Mon Jun 17, 2013 11:31 am    Post subject: Reply with quote

VladSh wrote:
А зачем всё это надо, кто-нибудь сможет ответить? Чтобы добавить в контекстное меню "Открыть в AkelPad" надо ставить exe'шник, а потом его регистрировать cmd-файлом? ПЕКТ. Есть куча программ, которые позволяют редактировать контекстное меню проводника, в несколько кликов можно добавить "Открыть в _чём хочешь_".

Хех. Какой exeшник? Shocked Обычная ActiveX библиотека, которую можно одним кликом (с помощью батника, который я выше привел) вкл./откл. И "куча программ" не нужна (кстати, в них можно иконку в контекст. меню добавить?).
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Mon Jun 17, 2013 3:44 pm    Post subject: Reply with quote

addhaloka
Ну да, библиотека и батник - 2 файла.
Встречал утилиты, что всё что хочешь могут) Я когда-то себе контекстные меню так правил, потом задолбался - это ж надо везде править, т.к. привыкаешь, а оно не нужно, т.к. можешь за чужими компами работать, а люди нервничают...
Короче не вижу никакого смысла в этой фиче, тем более какими-то отдельными стрёмными файлами. Как по моему, это должно быть галкой в инсталяторе "Встроить в контекстное меню проводника" (как например у 7-zip и некоторых других) или в настройках программы.
Back to top
View user's profile Send private message Visit poster's website
addhaloka



Joined: 30 Oct 2010
Posts: 10
Location: СССР

PostPosted: Mon Jun 17, 2013 4:19 pm    Post subject: Reply with quote

VladSh
Имхо, наоборот отлично подходит для портабл-установки и для работы на чужих компах, в частности. Завершил работу - тыцнул в пункт меню
Code:
"Расширение оболочки" Exec("%a\ShellExt.cmd") Icon("%a\shellext-x86.dll", 0)
и всё.
А встраивать в инсталлятор и уж тем более какой-то посторонний софт использовать. Confused
>Встречал утилиты, что всё что хочешь могут)
Какие-то посторонние костыли, тем более для 7-Zip, например, иконку никакими утилитами не добавить. Потому что в самой библиотеке это не заложено, в отличие от "отдельного стрёмного файла". Smile
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Mon Jun 17, 2013 4:28 pm    Post subject: Reply with quote

addhaloka
А предлагаемый софт чем не посторонний?
Давайте на каждую мелочь, типа помещения ярлыка на "quick panel" тоже сделаем ActiveX-библиотеку и cmd-файл к ней...
Не здраво это всё.
Back to top
View user's profile Send private message Visit poster's website
addhaloka



Joined: 30 Oct 2010
Posts: 10
Location: СССР

PostPosted: Mon Jun 17, 2013 4:57 pm    Post subject: Reply with quote

VladSh
Чем он посторонний? Стандартное расширение оболочки, в многих программах, в том же 7-Zip используется. Тем более выложен Instructor'ом. Очень удобно, я считаю. И по мне, быстрее батник тыцнуть или пункт меню для этого батника, чем лезть в настройки и включать/отключать там. Засим завязываю с флудом, т. к. дальнейшее обсуждение (тут и обсуждать нечего)) бессмысленно.
Back to top
View user's profile Send private message
InnI



Joined: 13 Apr 2011
Posts: 33

PostPosted: Tue Jun 18, 2013 7:58 am    Post subject: Reply with quote

Win7 x86. Скопировал все файлы в "C:\Program Files\AkelPad\". При запуске shellext-register.cmd появляется окно RegSvr32 с текстом:
--------
Не удалось загрузить модуль "shellext-x86.dll".
Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами.
Не найден указанный модуль.
.
--------
Права администратора не помогают. Вероятно, не может найти путь к файлу, т.к. вручную из консоли с правами администратора регистрируется нормально.

Давно пользуюсь подобным функционалом при помощи такого reg-файла
reg-файл

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\AkelPad]
"Icon"="\"C:\\Program Files\\AkelPad\\AkelPad.exe\""

[HKEY_CLASSES_ROOT\*\shell\AkelPad\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""


А так можно открывать неассоциированные файлы прямо из проводника двойным кликом
reg-файл

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown\shell\open\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_CLASSES_ROOT\Unknown\shell]
@="open"
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5381

PostPosted: Tue Jun 18, 2013 8:15 am    Post subject: Reply with quote

Все предложения по доработке, исправлениям к автору Ralph Shane в англоязычной теме.

InnI
А так?

Code:
@ECHO OFF
set PROCESSOR=x64
if %PROCESSOR_ARCHITECTURE% == x86 (
  if not defined PROCESSOR_ARCHITEW6432 set PROCESSOR=x86
)
start regsvr32 "%~dp0shellext-%PROCESSOR%.dll"
CLS
Back to top
View user's profile Send private message Send e-mail
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Tue Jun 18, 2013 8:22 am    Post subject: Reply with quote

InnI
У меня при запуске первого reg-файла вылетает сообщение:
Редактор реестра wrote:
Не удается импортировать "D:\Temp\OpenInAkelPad_menuItem.reg": Указанный файл не является файлом данных реестра.
Возможен импорт только двоичных файлов данных реестра.
> Подскажете как поправить?
Разобрался - кодировка файла д.б. 1200 (UTF-16 LE).

И ещё неудобство в том, что путь жёстко зашит, по моему простенький js был бы лучше.
Вот такой функционал с удовольствием бы себе добавил. Он действительно родной и не "из пушки по воробьям" (ещё бы .NET или Java сюда прекрутили...).
Back to top
View user's profile Send private message Visit poster's website
InnI



Joined: 13 Apr 2011
Posts: 33

PostPosted: Tue Jun 18, 2013 8:45 am    Post subject: Reply with quote

Instructor wrote:
А так?

Так работает. Только на Win7 с включённым UAC нужны права администратора.

VladSh wrote:
У меня при запуске первого reg-файла вылетает сообщение

Такое сообщение обычно появляется, если отсутствует строка:
Windows Registry Editor Version 5.00
Back to top
View user's profile Send private message
addhaloka



Joined: 30 Oct 2010
Posts: 10
Location: СССР

PostPosted: Tue Jun 18, 2013 10:04 am    Post subject: Reply with quote

InnI wrote:

"Icon"="\"C:\\Program Files\\AkelPad\\AkelPad.exe\""

И иконка в контекстном меню есть? Surprised У меня нет, при таком раскладе.
Вообще для добавления в реестр чего-то "путезависимого", лучше, имхо reg.exe (или nircmd, как алт. вариант) использовать в батнике, типа такого
Code:
@echo off
cls
%~d0
cd "%~dp0"
reg query HKCR\^*\shell | findstr /i "AkelPad" >NUL
if not errorlevel 1 (
reg delete HKCR\^*\shell\AkelPad /f >NUL
cls
echo.
echo Интеграция с оболочкой отключена. Нажмите любую клавишу для выхода . . .
pause >NUL
) else (
rem reg add HKCR\^*\shell\AkelPad /v Icon /d "%cd%\AkelPad.exe,0" /f >NUL
reg add HKCR\^*\shell\AkelPad\command /ve /d \""%cd%\AkelPad.exe\" \"%%1"" /f >NUL
cls
echo.
echo Интеграция с оболочкой включена. Нажмите любую клавишу для выхода . . .
pause >NUL
)
Back to top
View user's profile Send private message
InnI



Joined: 13 Apr 2011
Posts: 33

PostPosted: Tue Jun 18, 2013 10:44 am    Post subject: Reply with quote

addhaloka wrote:
И иконка в контекстном меню есть?

На Win7 есть, на WinXP нет.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group