Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SendMessage в Vista, Не проходят сообщения 
:(
    Опции темы
Real McCoy
  Дата 16.3.2009, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте, все!

По форуму не нашёл, поэтому создаю тему.

Есть два приложения, написанные на C# (.NET Framework 3.5) и общающиеся между собой посредством SendMessage. Под XP всё это прекрасно работает, а под Vista создаётся впечатление, что сообщения либо не уходят, либо не принимаются... Или всё вместе. Упоминаний о том, кто виноват, нашёл много, а вот что делать при этом?

Кто-нибудь знает решение? Или ссылки с HOWTO, примерами и т.п.

Спасибо!
PM MAIL   Вверх
mihryak
Дата 17.3.2009, 02:35 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



попробуй вызвать в начале один раз
Код

[DllImport("user32.dll", SetLastError=true)]
static extern IntPtr ChangeWindowMessageFilter(uint message, uint dwFlag);

Код

ChangeWindowMessageFilter(WM_YOURMESSAGE, 1);

на всякий случай - сначала сообщение нужно зарегистрить
Код

[DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern uint RegisterWindowMessage(string lpString);

Код

uint WM_YOURMESSAGE = RegisterWindowMessage("WM_YOURMESSAGE");

Цитата

Vista prohibits applications of different integrity levels from sending most
windows messages between each other. IE in protected mode runs in LOW
integrity; normal applications run in MEDIUM; and programs running with
administrator privileges run as HIGH. (There is also a SYSTEM level for some
system services).

ChangeWindowMessageFilter allows an application in a higher integrity level
to specify additional windows messages that it wants to accept from
applications running in a lower privilege level.

For example, if you run say NOTEPAD.exe, it will have a MEDIUM integirty
level. If you then run an administrative application, let's use task
scheduler as an example, it will run with HIGH integrity level.

notepad is isolated from task scheduler because they are running in
different integrity levels; the system prevents notepad from sending task
scheduler most window messages, prevents it from injecting code into task
scheduler via hooks, prevents it from writing into its process memory, etc,
etc, because of the difference in integrity level.

The ChangeWindowMessageFilter api can be used in this example by task
scheduler to allow it to receive additional window messages from notepad.


Это сообщение отредактировал(а) mihryak - 17.3.2009, 09:54
PM MAIL ICQ   Вверх
Real McCoy
Дата 17.3.2009, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо! Вечером будет под рукой Виста - попробую и напишу здесь о результатах.
PM MAIL   Вверх
ZmeyNet
Дата 18.3.2009, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.1.2008
Где: Belarus, Minsk

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



mihryak, спасибо ,процетированный текст прояснил пару мелочей 
и я еще раз убедился , что не кошерно программам общаться между собой WM -ами
PM MAIL ICQ Skype   Вверх
Real McCoy
Дата 18.3.2009, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ZmeyNet, а какие есть варианты? Очень актуально.
PM MAIL   Вверх
ZmeyNet
Дата 19.3.2009, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.1.2008
Где: Belarus, Minsk

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



1)  Using Named Pipes
2) Using .Net Remoting for Inter-Process Communication 


Это сообщение отредактировал(а) ZmeyNet - 19.3.2009, 00:33
PM MAIL ICQ Skype   Вверх
Real McCoy
Дата 20.3.2009, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ZmeyNet, спасибо!
Сейчас уезжаю, по приезде буду изучать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

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


 




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


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

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