Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сладить с режимом виртуализации в Win 7? Postmessage не работает в режиме Админа 
:(
    Опции темы
Zootekhnik
Дата 31.1.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



Доброго времени суток! Вынужден обратиться с проблемой.
Вкратце, как мне кажется, проблема в уровне привилегий Windows 7. В ОС XP и Vista без проблем.
Значит, есть прога которая загружает клавиатурный хук, из хука по некоторому событию посылаю сообщение WM_KBHOOK своей проге:
hWndInd = FindWindow(NULL, LPCTSTR("MyProga"));
PostMessage(hWndInd, WM_KBHOOK, (int)nNewMode, NULL);
Прога запускается из реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
В манифесте уровень привилегии выставил в As Invoker. 
Так вот, в этом виде прога работает нормально, т.е. в виде виртуализации, да  вот БЕДА, реестр Винды недоступен, не могу отключить автозапуск проги. 
Проблема возникает при запуске в режиме администратора, доступ к реестру появляется, но не могу послать PostMessage своей же проге - изложено выше ((( Вроде бы FindWindow находит а сообщение уходит в никуда (((. Есть ли решение этой проблемы, куда копать? Буду премного благодарен дельным советам!

PM MAIL   Вверх
Dem_max
Дата 31.1.2011, 11:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



программа запускается что ли на виртуальной машине ? а ты сообщение пытаешься передать в виртуальную машину ?



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Zootekhnik
Дата 31.1.2011, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



Дело не в виртуальной машине. Просто прога работала в XP и Vista, а в Windows 7 не желает нормально работать. Как мне кажется дело в самой ОС Win 7, вот сижу, копаю в этом направлении: Приложение без поддержки UAC в манифесте, которое не запускается явно с административными привилегиями, будет работать в режиме виртуализации совместимости. В этом режиме все глобальные операции записи, например в реестр или в разделы, не предназначенные для пользователя, перенаправляются в разделы, назначенные пользователю. Повышение пользователем уровня прав для такой программы невозможно. Система считает такую программу без манифеста UAC "старой" и создает в целях безопасности для такой программы выделенное пространство имен. Другие программы это пространство не видят.

Если вашему приложению требуется повысить уровень привелегий и отключить виртуализацию, необходимо добавить в манифест секцию Trust Info с разделом Security для поддержки управления учетными записями (UAC).

PM MAIL   Вверх
Zootekhnik
Дата 31.1.2011, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



В Вин 7 похоже дела именно так и обстоят 
Цитата

программа запускается что ли на виртуальной машине ? а ты сообщение пытаешься передать в виртуальную машину ? 
 smile 
PM MAIL   Вверх
ncr
Дата 1.2.2011, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 10.5.2010

Репутация: нет
Всего: нет



Цитата(Zootekhnik @ 31.1.2011,  11:19)
В манифесте уровень привилегии выставил в As Invoker. 
Так вот, в этом виде прога работает нормально, т.е. в виде виртуализации, да  вот БЕДА, реестр Винды недоступен, не могу отключить автозапуск проги.


Если в манифесте выславлено AsInvoker, то виртуализация отключается.
А реестр вам недоступен потому что в HKLM простым смертным писать нельзя (и это хорошо).
Пишите в HKCU.

Цитата
Проблема возникает при запуске в режиме администратора, доступ к реестру появляется, но не могу послать PostMessage своей же проге - изложено выше ((( Вроде бы FindWindow находит а сообщение уходит в никуда (((. Есть ли решение этой проблемы, куда копать?

Посылать сообщения из непривилегированного процесса окнам привилегированного процесса нельзя.
Либо не запускайте приёмник от имени администратора, либо запускайте передатчик от имени администратора, либо передавайте информацию другими способами.
PM MAIL   Вверх
Zootekhnik
Дата 1.2.2011, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



Стало быть дела у меня дрянь smile с UAC вроде разобрался, а посему, скрипя сердцем в основное приложение заюзал HKEY_CURRENT_USER, слатегосподи хоть чтение возможно с HKEY_LOCAL_MACHINE. Но все таки вопрос насчет Postmessage остался открытым, вот насчет 
Цитата

либо передавайте информацию другими способами.
 а они в природе существуют чтоли? Немного офтопа:  smile Не понимал - за что ругают МелкоТелых, стало быть SetWindowsHookEx запретили, это как бы у Джека Лондона "Я хозяин своего слова - могу дать, могу и забрать обратно" smile 
PM MAIL   Вверх
ncr
Дата 1.2.2011, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 10.5.2010

Репутация: нет
Всего: нет



Цитата(Zootekhnik @ 1.2.2011,  16:39)
а они в природе существуют чтоли?

Разумеется.


PM MAIL   Вверх
Dem_max
Дата 1.2.2011, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



Цитата

SetWindowsHookEx запретили

с чего это запретили все работает. 
В остальном просто надо понимать куда разрешено читать и писать а куда нет в Win 7


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Zootekhnik
Дата 1.2.2011, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



Yоur bunnу wrоte!!! Вот говорила мама "Учи английский"  smile NCR спасибо за ссылку!!! Начну чтоли с WM_COPYDATA.  smile вот почему большинство троянцев не проникают в Seven smile приметил за свою долгую жизнь юзверя!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.