Страница: 1 |
Страница: 1 |
Вопрос: Как деактивировать окно с помощью API ?
Добавлено: 14.10.06 12:15
Автор вопроса: someone | Web-сайт:
Мне вот надо деактивировать окно. чтобы юзер спокойно мог с ним работать, но при этом чтобы ОКНО не считалось активным.
Я вот думал WM_ACTIVATE с нужным параметром поможет.. Но это не то:(
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #1
Добавлено: 14.10.06 13:00
Отак пробовал, не работает
Номер ответа: 2
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #2
Добавлено: 14.10.06 15:43
Только недавно отвечал - это делается установкой стиля. Не помню счас флаг - поищи по форуму.
Номер ответа: 3
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #3
Добавлено: 14.10.06 17:34
Вот не могу найти Может все таки ты припомнишь? Посмотришь в журнале IE?
Номер ответа: 4
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #4
Добавлено: 15.10.06 14:24
Нашел. Но не катит:E
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 15.10.06 19:16
Empro, ну даже у Ирины получилось...
http://www.vbnet.ru/forum/show.aspx?id=119659
Номер ответа: 6
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #6
Добавлено: 15.10.06 19:26
Ладно, объясню в чем дело, чтобы таких постов не было
прога - BORGChat.
она показывает мой статус. типа активно окно чата или нет. мне надо сделать чтобы оно было всегда активно. НО! sendmessage не катит. Активным его он делает, а неактивным не умеет. Мне помогал чел, программист на C. Он сделал с помощью того же API: sendmessage. Даже перевел код на VB. Но НЕ РАБОТАЕТ хоть головой об стенку.
С установкой стиля. Ну попробовал я. Вставил hwnd чата в приведенный в том топике код. А толку? :E
Номер ответа: 7
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #7
Добавлено: 15.10.06 19:32
Хочешь сказать так?
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const WS_EX_NOACTIVATE As Long = &H8000000
Private Const GWL_EXSTYLE As Long = (-20)
Private Const SW_SHOWNOACTIVATE As Long = 4
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim a
Private Sub Form_Load()
a = FindWindow("", "BORGChat"
Me.Visible = False
ShowWindow a, SW_SHOWNOACTIVATE
SetWindowLong a, GWL_EXSTYLE, GetWindowLong(a, GWL_EXSTYLE) + WS_EX_NOACTIVATE
End Sub
Номер ответа: 8
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #8
Добавлено: 15.10.06 19:54
кстати у тебя переменная a типа variant
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 15.10.06 23:39
Кидай сюда на Си, попробуем перевести мы.
Теоретически сделать это невозможно, т.е. ты противоречишь... ты хочешь чтобы прога показывала, что окно чата активное, и в то же время нехочешь чтобы оно было активное... Т.е. это уже напоминает манипуляцию адресного пространства в самом чате.
Номер ответа: 10
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #10
Добавлено: 16.10.06 21:59
Мне не надо чтобы прога показывала! Мне надо чтобы окно чата БЫЛО НЕАКТИВНЫМ. Но в то же время в нем можно было бы набирать текст.
В проге этого чела стоял таймер и менюшками пользоваться было нереально так как они исчезали все время. Но значок у моего ника был тусклым: значит что окно чата неактивно.
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 17.10.06 19:50
Ну создай прозрачное окно поверх него и передавай все нажатия клавиш на верхнем окне нижнему
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 18.10.06 23:04
Да наверное имеется ввиду чтобы другие окна других приложений были активные, а текст всеравно набирался...
Непонятный момент... Что если и в другой проге ставят курсор и начинают набирать... Набирается и в твоей и той что-ли?
Т.е. твоя прога например захучила клаву, ну и набирает у себя... Можно попробовать перебрать все дочерние окошки все окон и проверить стоит ли у какие-то из них фокус (курсор), и соответственно этому печатать или нет в своей... Но как это самое проверить, я что-то не нашел...