![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
Нужно вызвать программу из контекстного меню.
Для этого первоначально нужно сделать setup.exe, которая пропишет нужные изменения в реестре. Я попробовал так сделать Код:
Для продолжения работы (так как пока что у меня не получилось setup написать), я сделал саму прогу, и все изменения в реестре вручную прописал: 1. Создал папку HEKY_CLASSES_ROOT//*//____delete В ней по умолчанию был создан файл. В качестве значения я прописал строку, которая будет выплывать при клике правой кнопкой мыши по файлу. В этой папке я создал папку command, в которой по умолчанию был создан файл. Присвоил значение "C:\masm32\bin\____delete.exe"" %1" Вот сам листинг http://zalil.ru/31398963 Ошибка при создании файла. Вероятно, я криво с путём к файлу работал. Хотя MessageBox-ом вывел, вроде всё нормально. Подскажите, пожалуйста, что не так и как исправить. Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
1. Что значит при создании файла. Там файл не создаётся, а открывается существующий.
2. После вызова MessageBox регистр eax конечно же уже не содержит адрес строки, поэтому при вызове CreateFile и возникает ошибка. И как то вообще сумбурно. Я мало чего понял. То вы файл какой то открываете, то его же удаляете. То в реестре какие-то файлы с папками создаёте. В реестре нет файлов и папок. В реестре есть разделы и параметры. То какой-то setup пишите. И чего именно из этого не получается?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
с MessageBox спасибо.
Теперь про реестр. Вот хочу я написать утилиту, которая будет удалять файлы. Ну типа стандартного удаления. Так, ради интереса. Для того, чтобы при щелчке правой кнопкой мыши появлялся соответствующий пункт меню, необходимо это всё дело прописать в реестре. В ручную я это прописал так: Создал раздел HEKY_CLASSES_ROOT//*//____delete В ней по умолчанию был создан файл. В качестве значения я прописал строку, которая будет выплывать при клике правой кнопкой мыши по файлу. Далее необходимо чтобы этот пункт меню был каким-то образом связан с программой. Для этого в этом разделе я создал раздел command, в котором по умолчанию был создан файл. Присвоил значение "C:\masm32\bin\____delete.exe"" %1" Всё работает. Теперь же хочу написать setup.exe, который все эти действия выполнит автоматически. Код привёл в первом своём посте, правда код пока что не работающий. |
![]() |
![]() |
![]() |
#4 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
У меня (на XP) ваш вариант не работает вообще. Там должен быть ещё раздел shell. Вот накидал программку, посмотрите, может чем поможет. Правда я там использовал раздел HKEY_LOCAL_MACHINE\SOFTWARE\Classes - но это отображение HKEY_CLASSES_ROOT. Программка выводит размер файла в MessageBox. Пути к экзешникам естественно мои, надо будет поправить.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]() Цитата:
Спасибо |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
Всё скопилировалось, однако создаётся только папка ____delete
В ней почему-то не создаётся вложенная папка Command. И значения ключей реестра не устанавливаются. http://zalil.ru/31403109 так что тут не так? Можете подсказать? |
![]() |
![]() |
![]() |
#7 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Код:
strName1 - второй парметр функции RegSetValueEx, это указатель на строку, содержащую имя параметра. strName1 - это во первых, не указатель, а во вторых не название параметра, а его значение. REG_EXPAND_SZ - почему expand, у вас же нет переменных в значении параметра.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
![]() Код:
Нет, ну правда..
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
Спасибо. Но только один косяк с этой функцией остался
;задаём значение ключа iinvoke RegSetValueEx, hKey_1, offset strName1, 0, REG_SZ, offset const_forSaveData, 18 где теперь const_forSaveData=REG_SZ |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
![]()
вопрос непонятен, косяки с функциями - на мсдн
Нет, ну правда..
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
eX-Tools v3.4.1 Набор программ для контекстного меню | Blourid | Софт | 0 | 16.08.2010 15:26 |
отключить возможность вызова контекстного меню | artemavd | Microsoft Office Word | 0 | 04.06.2010 17:50 |
Заблокировать пункт контекстного меню в excel 2007 | Mint86 | Microsoft Office Excel | 13 | 25.05.2010 15:04 |
Как запретить отображение контекстного меню | kovalevskivf | Microsoft Office Excel | 2 | 10.05.2009 15:18 |
При создание edit, в режиме run-time, нет стандартного контекстного меню | slips | Общие вопросы Delphi | 6 | 08.11.2008 17:05 |