Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 20:14   #11
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от t2skler Посмотреть сообщение
Такой пример у меня уже есть, а вот как сделать, чтобы все пункты отображались, а не только стандартные, я не знаю.
Ну, тогда нужно было тему правильно назвать ! Например -
"Регистрация своего типа файлов и пункт в контекстном меню"

Последний раз редактировалось asmodey1; 10.02.2011 в 21:11.
asmodey1 вне форума Ответить с цитированием
Старый 10.02.2011, 20:19   #12
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
Сообщение от asmodey1 Посмотреть сообщение
"Как добавить свой пункт в системное меню Windows"
кстати такое мне тоже встречалось, поже заиду поишу, t2skler ты б тоже попробывал
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 10.02.2011, 21:10   #13
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от asmodey1 Посмотреть сообщение
Ну, тогда нужно было тему правильно назвать ! Например -
"Как добавить свой пункт в системное меню Windows"
Не не не, мне не нужно добавлять своё пункт. Мне нужно вывести просто тот который есть. Пример который дал ArtGrek показывает его без дополнительных полей. Т.е. например WinRAR добавляет свои пункты, например: Добавить в архив... Вот эти пункты у меня в примере ArtGrek не отображаются, а отображаются только стандартные: Открыть, Копировать, Переименовать и т.д.
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 10.02.2011, 21:31   #14
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от t2skler Посмотреть сообщение
Не не не, мне не нужно добавлять своё пункт. Мне нужно вывести просто тот который есть. Пример который дал ArtGrek показывает его без дополнительных полей. Т.е. например WinRAR добавляет свои пункты, например: Добавить в архив... Вот эти пункты у меня в примере ArtGrek не отображаются, а отображаются только стандартные: Открыть, Копировать, Переименовать и т.д.
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 10.02.2011, 22:28   #15
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

кстати, если я не ошибаюсь когда гуглиш правельнее вводить контекстное меню, а не системное
или ето одно и тоже?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 10.02.2011, 23:19   #16
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Общий подход к проблеме :
Цитата:
Регистрация своего типа файлов и пункт в контекстном меню

После регистрации расширения система будет открывать такие файлы с помощью указанной программы - т.е. передавать имя файла как параметр
и соответственно обработать имя файла можно с помощью ParamsCount + ParamStrКод

----- Регистрация своего типа файлов -----------
uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt2' , True);
Reg.WriteString('', 'TXT2file');
Reg.CloseKey;
Reg.OpenKey('TXT2fileDefaultIcon', True);
Reg.WriteString('', Application.ExeName + ',0');
Reg.CloseKey;
Reg.OpenKey('TXT2fileshellopencomma nd', True);
Reg.WriteString('', Application.ExeName + ' "%1"');
Reg.CloseKey;
Reg.Free;
end;
------------------------------------------------
---------- Пункт в контекстном меню ------------
uses Registry;

procedure AddToContext(FileExt, text : string);
// FileExt - расширение типа файлов без точки вначале!
var R : TRegistry;
s : string;
begin
r := TRegistry.Create;
r.RootKey := HKEY_LOCAL_MACHINE;
r.OpenKey('SoftwareClasses',false);
if not (r.KeyExists('.'+FileExt)) then
begin
ShowMessage('Такой тип файлов не найден.');
Exit;
end
else
r.OpenKey('.'+FileExt,true);
s := r.ReadString('');
ShowMessage(s);
r.CloseKey;
r.OpenKey('SoftwareClasses',false);
r.OpenKey(s,true);
r.OpenKey('shell',true);
r.OpenKey('Crypt', true);
r.WriteString('',text)
r.OpenKey('command',true);
r.WriteString('',Application.ExeNam e + '"%1"');
r.CloseKey;
r.Free;
end;
З.Ы. Специально сделал в виде цитаты, а не кода, ибо задолбал уже тэг "код", размазывающий все по всей высоте экрана...

Последний раз редактировалось asmodey1; 10.02.2011 в 23:21.
asmodey1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка из файла ini в ListView DenisVoronov Компоненты Delphi 9 08.11.2010 20:16
Вызов макросов из меню с параметрами tae1980 Microsoft Office Excel 4 22.09.2010 22:59
contextMenuStrip и ListView, всплывающее меню с условием Casper-SC Общие вопросы .NET 0 31.03.2010 02:43
PopUp меню в ListView Altera Компоненты Delphi 9 28.09.2009 11:58
Вызов контекстной справки для компонента из Help-файла в Delphi7 Olyshka14 Помощь студентам 0 12.06.2009 20:00