Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как деактивировать окно с помощью API ? Добавлено: 14.10.06 12:15  

Автор вопроса:  someone | Web-сайт: 123
Мне вот надо деактивировать окно. чтобы юзер спокойно мог с ним работать, но при этом чтобы ОКНО не считалось активным.
Я вот думал WM_ACTIVATE с нужным параметром поможет.. Но это не то:(

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #1
Добавлено: 14.10.06 13:00
Отак пробовал, не работает:(
SendMessage FindWindow(vbNullString, "заголовок";), WM_ACTIVATE, WA_INACTIVE, vbNull

Ответить

Номер ответа: 2
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #2
Добавлено: 14.10.06 15:43
Только недавно отвечал - это делается установкой стиля. Не помню счас флаг - поищи по форуму.

Ответить

Номер ответа: 3
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #3
Добавлено: 14.10.06 17:34
Вот не могу найти:( Может все таки ты припомнишь? Посмотришь в журнале IE?

Ответить

Номер ответа: 4
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #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-сайт: 123
 Профиль | | #6
Добавлено: 15.10.06 19:26
Ладно, объясню в чем дело, чтобы таких постов не было;)
прога - BORGChat.
она показывает мой статус. типа активно окно чата или нет. мне надо сделать чтобы оно было всегда активно. НО! sendmessage не катит. Активным его он делает, а неактивным не умеет. Мне помогал чел, программист на C. Он сделал с помощью того же API: sendmessage. Даже перевел код на VB. Но НЕ РАБОТАЕТ хоть головой об стенку.
С установкой стиля. Ну попробовал я. Вставил hwnd чата в приведенный в том топике код. А толку? :E

Ответить

Номер ответа: 7
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #7
Добавлено: 15.10.06 19:32
Хочешь сказать так?

Option Explicit
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-сайт: neco.pisem.net
 Профиль | | #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-сайт: 123
 Профиль | | #10
Добавлено: 16.10.06 21:59
Мне не надо чтобы прога показывала! Мне надо чтобы окно чата БЫЛО НЕАКТИВНЫМ. Но в то же время в нем можно было бы набирать текст.
В проге этого чела стоял таймер и менюшками пользоваться было нереально так как они исчезали все время. Но значок у моего ника был тусклым: значит что окно чата неактивно.

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 17.10.06 19:50
Ну создай прозрачное окно поверх него и передавай все нажатия клавиш на верхнем окне нижнему

Ответить

Номер ответа: 12
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #12 Добавлено: 18.10.06 23:04
Да наверное имеется ввиду чтобы другие окна других приложений были активные, а текст всеравно набирался...

Непонятный момент... Что если и в другой проге ставят курсор и начинают набирать... Набирается и в твоей и той что-ли?

Т.е. твоя прога например захучила клаву, ну и набирает у себя... Можно попробовать перебрать все дочерние окошки все окон и проверить стоит ли у какие-то из них фокус (курсор), и соответственно этому печатать или нет в своей... Но как это самое проверить, я что-то не нашел...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам