Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-1158231300
простак
2006-09-14 14:55
2006.10.22
связность графа....


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


2-1160377062
Gloomer
2006-10-09 10:57
2006.10.22
Права доступа при открытии процесса


1-1158224202
_Mouse_
2006-09-14 12:56
2006.10.22
Проблемка с указателями


15-1159427354
ocean
2006-09-28 11:09
2006.10.22
Накат рабочего места





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский