|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.01.2011, 21:20 | #1 |
Новичок
Джуниор
Регистрация: 17.01.2011
Сообщений: 4
|
Как организовать обмен информацией между программой и собственной службой (сервисом)
Подскажите, как организовать передачу своих команд, (а не стандартных запросов к службе), чтобы собственная служба выполнила нужную операцию по запросу программы, например, запись определённого ключа в ветку регистра HKLM (HKEY_LOCAL_MACHINE)?
----------------------------------------------------- Это для проги, которой нужны права администратора, если она запускается из под учётной записи стандартного пользователя. Если к проге "прицепить" манифест, то при каждом запуске она будет просить пароль админа. Это не приемлемо. Поэтому, лучше создать службу, для выполнения "запрещённых" для стандартного пользователя операций. Установить её вместе с программой. Программа отсылает запрос службе, а та должна выполнить запрошенную операцию, т.к. она сама выполняется от имени системы(Local System). Саму службу написать несложно, а вот как обеспечить обмен информацией, передачу данных службе? Подскажите приемлемый механизм. Хорошо бы ссылку на небольшой пример на эту реализацию. Последний раз редактировалось pro2011; 17.01.2011 в 22:11. |
17.01.2011, 22:12 | #2 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Выбирайте любой механизм IPC и вперёд.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
17.01.2011, 23:42 | #3 | |
Новичок
Джуниор
Регистрация: 17.01.2011
Сообщений: 4
|
Цитата:
Вот в этом и вопрос. Очень странно, но я никак не могу найти пример в инете, который послужил бы "путеводной звездой". Одни говорят, что надо использовать Sockets for IPC. Но в той же MSDN "Named pipes and COM are probably the best for local IPC". Программирование в COM - дело сложное. Опять же, нет примеров(с точки зрения моей проблемы). Может кто-нить подкинет хоть какой пример? Ведь у меня не необычная задача. Наверняка у кого то уже есть такие наработки. Буду очень признателен. |
|
18.01.2011, 02:42 | #5 | ||
Новичок
Джуниор
Регистрация: 17.01.2011
Сообщений: 4
|
Всё таки методом "Named Pipes".
Я тоже склонялся к этому способу. За примеры, отдельное спасибо. Буду изучать. Цитата:
Цитата:
P.S. Посмотрел, вы тоже пишете на Delphi Судя по всему, вы очень отзывчивый, да к тому же ещё и толковый программист! Я программирую давно, с использованием СУБД. А эта тема для меня абсолютно новая... Может будут "непонятки". Можно будет к Вам лично обратиться? Не бросайте в беде единомышленника... Последний раз редактировалось pro2011; 18.01.2011 в 03:02. |
||
18.01.2011, 14:36 | #6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Можно .
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
18.01.2011, 15:41 | #7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
можно конечно и заглушками, но никто не мешает использовать и механизм сообщений, пример в блоге.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
18.01.2011, 16:00 | #8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Смотря какими сообщениями.
Ежели ControlService - это можно. Ежели оконными - кто ж вам даст сообщения между рабочими столами отправлять.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
20.01.2011, 04:11 | #9 |
Новичок
Джуниор
Регистрация: 17.01.2011
Сообщений: 4
|
Всё оказалось намного проще.
Тестируйте под правами стандартного юзера. UAC должен быть включён, как это и делается для станд.юзера. Примечание: 1 раз запросит пароль админа. а) если пароля у админа нет, то просто "Ввод"(Enter). б) если есть, то вы просите админа его ввести 1 раз(сами не подсматриваете) ссылка здесь Если заинтересует, выложу исходники и напишу реализацию идеи. Последний раз редактировалось pro2011; 20.01.2011 в 04:28. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
организовать взаимодействие между формами, как? | lexluter1988 | Общие вопросы .NET | 1 | 21.05.2010 06:49 |
Обмен данными между DLL и программой | Шульц | Общие вопросы Delphi | 8 | 16.03.2010 22:34 |
Обмен информацией | W0LF | Общие вопросы Delphi | 2 | 01.01.2010 22:57 |
как реализовать обмен данными между программами | Андрей.12 | Работа с сетью в Delphi | 1 | 26.11.2009 08:06 |
Как организовать вывод сообщений программой в VCL режиме Delphi? | Evgenii | Помощь студентам | 10 | 28.07.2008 11:28 |