Форум: "WinAPI";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизОбратботка своего пункта меню Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.047 c