На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Коротко о разделе:
Здесь разрешается создавать темы, относящиеся к любому языку программирования, для которого не существует раздела на форуме (например, Lisp, Tcl/Tk, FORTRAN и т.д.). Если раздел для нужного Вам языка есть, большая просьба создавать тему в нем.
Вопросы, связанные с JScript, Perl, PHP обсуждаются в разделе WWW Masters.

Обратите внимание:
1. Прежде чем задать вопрос, воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали.
2. Если Ваш вопрос связан с конкретным языком программирования, обязательно укажите название языка в имени темы.
3. Постарайтесь давать темам информативные названия. Темы с названиями типа "Помогите, горю" будут удалены.
4. Помните, чем грамотней будет задан Ваш вопрос, тем больше будет у Вас шансов получить на него ответ. Как правильно задавать вопросы
5. Ипользуйте тег [ code ] ...текст программы... [ /code ] для выделения текста программы.

Просьбы выполнить какую-либо работу за автора в этом разделе не обсуждаются. Темы с подобными просьбами будут перемещены или удалены. Для заказов у нас существуют специальные разделы: Разовые заказы и подработка, ПОМОЩЬ СТУДЕНТАМ.

Если кто не понял (а такие есть) — чтобы за вас решали ваши задачки, идите на другие ресурсы.

Полезные ссылки:
Есть. ;)
Наши Исходники | GPSS (en), GPSS (ru) (!) | Common Lisp | Tcl/Tk | Haskell | Lua
Модераторы: B.V.
  
> MessageBox, который всегда поверх всех окон , Windows 7
    Добрый день!

    Пишу на Python, но, уверен, здесь мне дадут лучший ответ. Это оповещалка для менеджеров.
    Показываю MessageBox с помощью Win32API, но он не всегда на самом верху. Хочется, чтобы пользователь его точно видел.
    Код такой:
    ExpandedWrap disabled
          def execute( self , title = None , message = None , timeout = 200 ) :
              win32gui.MessageBox( 0 , message , title , 0 | 64 )
       
              """
                      self.createWindowArgs = ( self.classAtom , "Taskbar" , self.style , 0 , 0 , win32con.CW_USEDEFAULT , win32con.CW_USEDEFAULT , 0 , 0 , self.hinst , None )
              self.hwnd = win32gui.CreateWindow( * self.createWindowArgs )
              win32gui.UpdateWindow( self.hwnd )
              win32gui.Shell_NotifyIcon( win32gui.NIM_ADD , (
                  self.hwnd , 0 , self.flags , win32con.WM_USER + 20 , self.hicon , "tooltip"
              ) )
              win32gui.Shell_NotifyIcon( win32gui.NIM_MODIFY , (
                  self.hwnd , 0 , win32gui.NIF_INFO , win32con.WM_USER + 20 , self.hicon , "tooltip" , message , timeout , title
              ) )
              """
       
              return self

    Здесь http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx читал, но ответа не нашёл.
    Или, в коде есть ещё закомментированное всплывающее сообщение. Какой бы timeout я ни выставил, оно скрывается с одинаковой скоростью, а нужно, чтобы висело всегда. Подойдёт любой вариант.
    Конечно, подойдёт ответ на С++.
    Сообщение отредактировано: Tishaishii -
      Попробуйте добавить флажок MB_SYSTEMMODAL:
      win32gui.MessageBox( 0 , message , title , 0 | 64 | 0x00001000L)
        Спасибо!
          А MB_SERVICE_NOTIFICATION еще лучше.
            Хочу посмотреть на два таких приложения одновременно. Интересно, на какой секунде оба будут добавлены в карантин антивирем?
              Qraizer, если ты о флаге MB_SERVICE_NOTIFICATION, то два таких сообщения не появятся одновременно. Второй будет ждать, пока сообщение первого не закроют. Поток же первого, который вызвал это сообщение, замораживается на время его отображения. Вообще, при вызове MessageBox с этим флагом, направляется сообщение серверу csrss, который и отображает его поверх всего. Так же это сообщение дублируется в журнал событий системы. Ну и антивирус, полагаю, вряд ли поместит приложение в карантин, т.к. ничего аморального тут не происходит.
              Сообщение отредактировано: ALXR -
                Нет. Я о том, что второе "опоздавшее" приложение не выполнило свою задачу. Чтобы её выполнить, ей придётся "хакнуть" первое, но тогда оно не выполнит свою задачу. Итд.

                P.S. Это мой стандартный встречный вопрос на вопросы типа "как сделать, чтобы моё приложение было самое-самое" - это "у меня два таких самых-самых приложения; каковы ориентировочные результаты их дуэли?".
                Сообщение отредактировано: Qraizer -
                  А, ну тут только опыт поможет, но не теория. :)
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0249 ]   [ 15 queries used ]   [ Generated: 11.05.25, 08:51 GMT ]