Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

Обратботка своего пункта меню   Найти похожие ветки 

 
LiveSoft   (2006-05-24 02:19) [0]

Здравствуйте! Спасибо этому сайту, я нашёл, как можно добавить свой пункт меню в системное меню Windows. Однако у меня возникли проблемы с его обработкой. Я не знаю, как сделать следующее: когда я выбираю один или несколько файлов, то при щелчке на этом пункте меню их адреса нужно добавить, скажем, в ListBox. Сама программа-то запускается, это и понятно, но где и какой создавать обработчик для выполнения действий, - с этим у меня трудности. Помогите, пожалуйста.
Вот код с этого сайта:

Procedure Integrate(AMenuName, AMenuCaption, ACommandLine: String; AIntegrate: Boolean);
Var R: TRegistry;

Procedure WriteIntegrationData;
Begin
  If Not AIntegrate Then
    Begin
      If R.KeyExists(AMenuName) Then
        R.DeleteKey(AMenuName);
    End
  Else
    Begin
      R.OpenKey(AMenuName, True);
      R.WriteString("", AMenuCaption);
      R.OpenKey("Command", True);
      R.WriteString("", ACommandLine);
    End;
End;

Begin
R := TRegistry.Create;
R.RootKey := HKEY_CLASSES_ROOT;

R.OpenKey("*\shell", True);
WriteIntegrationData;
R.CloseKey;
R.OpenKey("Directory\shell", True);
WriteIntegrationData;

R.CloseKey;
R.Free;
End;


 
GanibalLector ©   (2006-05-24 09:21) [1]

ParamCount&ParamStr


 
LiveSoft   (2006-05-26 02:34) [2]

Спасибо! Но как программе узнать, адреса каких именно файлов я хочу занести в неё? Я-то вижу, какие файлы выделил, а как это может увидеть программа?


 
LiveSoft   (2006-06-05 06:58) [3]

А в случае нескольких выделенных файлов (папок) как эти функции использовать? Если у меня выделено две папки, то в ListBox надо добавить адрес одной и адрес второй.


 
n0name   (2006-06-05 16:09) [4]

В командной строке передаются имена пути к выбранным файлам.


 
LiveSoft   (2006-06-06 07:23) [5]

Можете пояснить? Или привести пример, посоветовать что-нибудь почитать?


 
Virgo_Style ©   (2006-06-06 08:03) [6]

Почитать? [1]


 
n0name   (2006-06-06 10:40) [7]


for i := 1 to ParamCount - 1 do
DoWithFile(ParamStr(i));


 
LiveSoft   (2006-06-08 03:24) [8]

Помещаю пункт меню:
Integrate("Добавить","Project",ExtractFilePath(ParamStr(0))+"Project.exe",True);

В FormShow пишу:

for i := 1 to ParamCount - 1 do
ListBox.Items.Add(ParamStr(i));

Ничего не добавляет.
Если написать:
Integrate("Добавить","Project",ExtractFilePath(ParamStr(0))+"Project.exe %1",True);

А в FormShow:

for i := 1 to ParamCount do
ListBox.Items.Add(ParamStr(i));

тогда добавляет максимум адрес одной папки.
Что делать? Что не так?



Страницы: 1 вся ветка

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
2-1160292131
m-kirill-2003
2006-10-08 11:22
2006.10.22
Типы переменных


2-1159690084
Rem02
2006-10-01 12:08
2006.10.22
InterBase Прошу помочь!!!


2-1159847702
qp
2006-10-03 07:55
2006.10.22
У кого какие мысли будут?


2-1160208207
iamdanil
2006-10-07 12:03
2006.10.22
memo в webbrowser


15-1159610751
SergP
2006-09-30 14:05
2006.10.22
Октябрь, ноябрь, декабрь - почему они так называются?