![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обратботка своего пункта меню [D6, Win95/98, WinME, NT4, Win2k, WinXP]
LiveSoft © (2006-05-24 02:19:00)Здравствуйте! Спасибо этому сайту, я нашёл, как можно добавить свой пункт меню в системное меню 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;
LiveSoft (2006-06-08 03:24:00) [1]Помещаю пункт меню:
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));
тогда добавляет максимум адрес одной папки.
Что делать? Что не так?
n0name (2006-06-06 10:40:00) [2]
for i := 1 to ParamCount - 1 do
DoWithFile(ParamStr(i));
Virgo_Style (2006-06-06 08:03:00) [3]Почитать? [1]
LiveSoft (2006-06-06 07:23:00) [4]Можете пояснить? Или привести пример, посоветовать что-нибудь почитать?
n0name (2006-06-05 16:09:00) [5]В командной строке передаются имена пути к выбранным файлам.
LiveSoft (2006-06-05 06:58:00) [6]А в случае нескольких выделенных файлов (папок) как эти функции использовать? Если у меня выделено две папки, то в ListBox надо добавить адрес одной и адрес второй.
LiveSoft (2006-05-26 02:34:00) [7]Спасибо! Но как программе узнать, адреса каких именно файлов я хочу занести в неё? Я-то вижу, какие файлы выделил, а как это может увидеть программа?
GanibalLector (2006-05-24 09:21:00) [8]ParamCount&ParamStr