Главная страница
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.036 c
9-1137509777
wow
2006-01-17 17:56
2006.10.22
Как правильно писать движёк


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


15-1159435468
Desdechado
2006-09-28 13:24
2006.10.22
Oriflame - нездоровые ассоциации :)


2-1159967094
ArtemESC
2006-10-04 17:04
2006.10.22
Приведение типов...


15-1159692378
Khabibulin
2006-10-01 12:46
2006.10.22
Научите меня SQL!