CoAllowSetForegroundWindow в C#

Обсуждение технических вопросов работы с системами управления базами данных (СУБД), работе с языком SQL и скриптовыми языками.
Ответить
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

CoAllowSetForegroundWindow в C#

Сообщение Disillusioned »

Цитата из документации по API:
Если при обращении к API на экран выводится диалоговое окно, то в некоторых случаях оно будет размещено на заднем плане, под окном активного приложения. Для того, чтобы окно отображалось на переднем плане и могло получить фокус ввода, необходимо использовать системную функцию Windows CoAllowSetForegroundWindow. За подробностями следует обратиться к MSDN.
Возможно кому-то пригодится обертка CoAllowSetForegroundWindow для C#.

Код: Выделить всё

//декларируем CoAllowSetForegroundWindow
[ComVisible(true)]
    public static class ComAPI
    { 
        [DllImport("ole32.dll")]
        public static extern int CoAllowSetForegroundWindow(
           IntPtr pUnk, IntPtr lpvReserved);
    }

Код: Выделить всё

//Вызов CoAllowSetForegroundWindow
ComAPI.CoAllowSetForegroundWindow(Marshal.GetIUnknownForObject(Lotsia), (IntPtr)null)
Ах и с ними невозможно
И без них никак нельзя
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: CoAllowSetForegroundWindow в C#

Сообщение Disillusioned »

К сожалению, описанный выше способ запуска CoAllowSetForegroundWindow работает далеко не всегда... :( :( :( :( :( :( :(
Теперь, вместо того чтобы хвастаться успехами, я вынужден просить вашей помощи, уважаемые коллеги!
Что мы делаем не так?
Ах и с ними невозможно
И без них никак нельзя
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: CoAllowSetForegroundWindow в C#

Сообщение Disillusioned »

Вроде как проблема оказалась не в нас, а в API. Так что ждем когда исправят ошибку...
Ах и с ними невозможно
И без них никак нельзя
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: CoAllowSetForegroundWindow в C#

Сообщение Старик Крупский »

Так ведь исправили вроде:
5.00 Сборка 111003
[%] При вызове действия над объектами из API окно выполнения действия в некоторых случаях открывалось на заднем плане.
"Лучше меньше, да лучше" (C)
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: CoAllowSetForegroundWindow в C#

Сообщение Disillusioned »

Ну и замечательно! Как только продлим техподдержку, так сразу и проверим...
Ах и с ними невозможно
И без них никак нельзя
Ответить