Вопрос № 95003: Уважаемые любители Delphi! Есть программа для электронной подписи:SberSign. При установке программы в контекстном меню системы прописывается пункт и подпись файла производится только через этот пункт меню. возникла необходимоть программно нажать на э...
Вопрос № 95.003
Уважаемые любители Delphi! Есть программа для электронной подписи:SberSign. При установке программы в контекстном меню системы прописывается пункт и подпись файла производится только через этот пункт меню. возникла необходимоть программно нажать на этот пункт меню, чтобы подписать файл. Подскажите, пожалуйста, как это можно осуществить- программно нажать на пункт контекстного меню системы (запустить действие ассоциированное с пунктом контекстного меню системы).
Отправлен: 13.07.2007, 08:52
Вопрос задал: Dragon (статус: 2-ой класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: LanK
Здравствуйте, Dragon!
Странно никто не отвечает :(, чтож не судите строго ;) попробую предложить такой вариант :
Что значит "контекстном меню системы"? Предположу, что по правой мышке?
1. Найти приложение
2. Послать событие мышки
3. Послать события клавиатуры
Только Вы должны понимать что в этот момент никто не должен трогать клавиатуру и мышь.
В приложении написаны все шаги - по их образу и подобию "соберите" свои. Только учтите, что нажатие кнопки - это ДВА события - нажал и отпустил :) !!!
P.S. Мышь можно исключить если меню вызывается кнопкой клавиатуры.
P.P.S. Прежде чем писать пройдитесь по поискам используя функции из приложения типа: keybd_event PostMessage FindWindow WM_LBUTTONDBLCLK - и хорошенько разберитесь, потому что неправильное управление чревато сообщением "Format disk C: complete" ;)
Приложение:
--------- Пусть все будет хорошо! Давайте жить дружно! :) И будет жить еще лучше!
Ответ отправил: LanK (статус: Студент)
Ответ отправлен: 13.07.2007, 14:09
Отвечает: Примак Руслан Николаевич
Здравствуйте, Dragon!
На самом деле пункт меню - всего лишь ярлык выполнения определенной команды.
Далее, если под контекстным меню вы понимаете меню, которое вызывается при нажатии правой клавиши мыши на файле, то вам нужно в реестр. Ищем наименование пункта контекстного меню, например, для ACDSee 5.0 - пункт контекстного меню "Browse with ACDSee".
Находим в реестре "C:Program FilesACD SystemsACDSee5.0ACDSee5.exe" "%1"
Соответственно, что-бы выполнить действия данного пункта меню в Delphi,
мне необходимо вызвать
ShellExecute(HInstance, 'open', 'C:Program FilesACD SystemsACDSee5.0ACDSee5.exe', 'C:Windows', 'C:Program FilesACD SystemsACDSee5.0', SW_SHOWNORMAL);
Ответ отправил: Примак Руслан Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.07.2007, 15:55
Отвечает: Дмитрий С.
Здравствуйте, Dragon!
ищи ответ в информации о горячих клавишах.
--------- Наши программисты самые программистые программисты!..
Ответ отправил: Дмитрий С. (статус: 2-ой класс)
Ответ отправлен: 13.07.2007, 18:42