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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2011, 08:25   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Назначение события кнопке, созданной в Internet Explorer

Добрый день! Интересует такой вопрос. Я создаю кнопку в Internet Explorer (IE) так:
Код:
procedure CreateExplorerButton;
const
  TagID = '\{10954C80-4F0F-11d3-B17C-00C0DFE39736}\';
var
  Reg: TRegistry;
  ProgramPath: string;
  RegKeyPath: string;
begin
  ProgramPath := 'D:\ERRORREADER\Project.exe';
  Reg := TRegistry.Create;
  try
    with Reg do
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      RegKeyPath := 'Software\Microsoft\Internet Explorer\Extensions';
      OpenKey(RegKeyPath + TagID, True);
      WriteString('ButtonText', 'Обработать в ER v.1');
      WriteString('MenuText', 'Обработать в ER v.1');
      WriteString('MenuStatusBar', '');
      WriteString('ClSid', '{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}');
      WriteString('Default Visible', 'Yes');
      WriteString('Exec', ProgramPath);
      WriteString('HotIcon', ',4');
      WriteString('Icon', ',4');
    end
  finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;
Вызываю данную процедуру так:
Код:
procedure TForm1.sBitBtn2Click(Sender: TObject);
begin
 CreateExplorerButton;
end;
Но, при нажатии на созданную в браузере кнопку, выдается ошибка, что не удается найти программу по пути, который находится в ProgramPath. Как назначить событие созданной кнопке? Может как-то можно написать
Код:
begin
...//тут код, который будет выполняться при нажатии на кнопку, созданную в браузере
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.07.2011, 08:54   #2
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию

Судя по всему, вы неверно указали путь к программе.
Я испытал ваш код, только в параметре ProgramPath написал
1 испытание - ProgramPath := 'http://programmersforum.ru';
2 испытание - ProgramPath := 'mailto:mymail@mail.ru';
3 испытание - ProgramPath := 'C:/WINDOWS/notepad.exe';
У меня при нажатии кнопки в первый раз открылся этот форум в браузере по умолчанию, во втором яндекс.мейл
в третьем - блокнот.
Цитата:
Как назначить событие созданной кнопке? Может как-то можно написать
Код:


begin
...//тут код, который будет выполняться при нажатии на кнопку, созданную в браузере
end;
Однако моих познаний Delphi пока мало, чтобы ответить на ваш вопрос.
Самому стало интересно
Буду следить за течением диалога.

Последний раз редактировалось )Игнат(; 02.07.2011 в 08:56.
)Игнат( вне форума Ответить с цитированием
Старый 02.07.2011, 09:02   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Хз, не знаю. Путь-то правильный был и существовал. Интересно...Может кто знает как надо сделать и назначить свой код к кнопке.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.07.2011, 11:06   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

как вариант, открыть реестр и посмотреть как другие расширения прописывают себя....
Человек_Борща вне форума Ответить с цитированием
Старый 02.07.2011, 12:48   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Мы выяснили, что возможно путь ошибочный у меня прописывался. Вопрос в том, можно ли как-то назначить кнопке событие и написать для нее код. Или bar-панель. Как это делает Download Master например. Его же кнопки наверняка выполняют код, который прописан в них.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.07.2011, 12:56   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

тогда пишите расширение IE. а не просто кнопочку в реестре.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.07.2011, 13:18   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Ух, как все сложно-то оказывается
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработчик события onClose для формы созданной в Run-Time tonatas Общие вопросы Delphi 3 13.08.2010 21:46
Назначение обработчика события Gypsy Общие вопросы Delphi 2 22.12.2009 09:50
События, выполняемые во время работы созданной компоненты Denager Общие вопросы Delphi 13 22.04.2008 16:48
Назначение события EA_Sports Общие вопросы Delphi 2 11.03.2007 00:45