Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Создание кнопки в чужом окне


Автор: MrBanochka 18.3.2012, 16:23
Всем привет. Собственно САБЖ: как создать собственную кнопку в проводнике windows средствами delphi?? 

Автор: Canyon 19.3.2012, 12:14
Нашел в интернете за несколько минут

Код

 var Hnd: THandle;
      Btn: TButton;
  begin
    Hnd:=FindWindow('TMain', 'Main');
//    Hnd:=Handle;
    if Hnd <> 0 then begin
        Btn:=TButton.Create(Self);
        with Btn do begin
            Name:='SuperButton';
            SetBounds(150,150,200,600);
            ParentWindow:=Hnd;
        end;
    end;



Но вот как прикрутить к этой кнопке код увы не знаю.

Автор: MrBanochka 19.3.2012, 14:41
Попробовал через реестр, но почему то не работает (вручную все работает). 
Кстати, ошибка ни на какую строку не вылазит, а выскакивает окно с: "Failed to set data for 'InfoTip'"
Вот собственно сам код:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Reg:TRegistry;
begin
     Reg:=TRegistry.Create;
     Reg.RootKey := HKEY_LOCAL_MACHINE;
     Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\{5c4f28b5-f869-4e84-8e60-f11db97c5cc7}\TasksItemsSelected', false); //Данный ключ уже существует
     Reg.OpenKey('\0\{c53ac272-7f42-44f0-9fb2-c660d077a6c8}',true);//Этот ключ создаем, т.е. он будет новый
     Reg.WriteString('InfoTip',' ');//В созданном ключе создаем строковый параметр
     Reg.WriteString('Title',' ');//Аналогично
     Reg.OpenKey('\shell\InvokeTask\command',true);//Продолжаем создавать ключ
     Reg.WriteString(' ','wscript.exe "C:\Users\??????\Desktop\edit.js" %0');//В созданном ключе еще один строковый параметр
     Reg.CloseKey;
     Reg.Free;
end;

Что мне нужно исправить?? Заранее спасибо...

Автор: MetalFan 19.3.2012, 15:20
Canyon, Автору немного не это нужно...


MrBanochka, Код, это хорошо... Но используй его с умом. 
Во-первых - где хоть одна проверка на успешность совершаемой операции? OpenKey - это функция, возвращающая значение...
Во-вторых... скопипастил код? GUID новый(свой) подставил?
Вот еще один пример реализации добавления http://delphiworld.narod.ru/base/own_ie_button.html.

Но все-таки рекомендую изучить первоисточник: http://msdn.microsoft.com/en-us/library/aa753588%28v=vs.85%29.aspx

Но все вышесказанное наверное не совсем то...

Приведенный автором пример кода актуален для Win7 (на сколько я понял)... автор, какую кнопку для какой винды тебе надо добавить то?

А ошибка в приведеном коде скорее всего возникает из-за нехватки прав... в общем см."Во-первых".

Автор: Canyon 19.3.2012, 22:21
Малость не дочитал вопрос.

А возможно образом правки реестра создать trackbar на панели пуск?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)