1. VisualBasic / Говнокод #14192

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    Добрый день.
    
    я пытаюсь сделать иконку в трее, чтоб вне зависимости видно окно программы или нет, программу можно было остановить. В моём коде не одно окно(( я так понимаю AddSysTrayIcon привязывается к окну. я попытался запустить цыкл контроля нажатия на иконку в отдельном потоке, компилятор матерится(( подскажите что не так делаю плиз? (в моём коде не один цыкл, при нажатие на определённые кнопки, открываются другие окна, и я не понял как сделать чтоб иконка в трее была постоянно((( может я вапше не правильно понимаю логику?)
    Код:
    Procedure.s GetSysDirectory() ; Путь к системной папке
       Path.s=Space(500)
       GetSystemDirectory_(@Path,500)
    ProcedureReturn Path
    EndProcedure
    
    Procedure.s Tray()
    CreatePopupMenu(0) ; Контекстное меню для трея
     MenuItem(0,"Выход")
    OpenWindow(0,0,0,200,100,"",#PB_Window_Invisible)
    AddSysTrayIcon(1,WindowID(0),ExtractIcon_(0,GetSysDirectory()+"\shell32.dll",4))
    AddWindowTimer(0,2,100)
    Repeat
      Event=WaitWindowEvent()
      If Event=#PB_Event_SysTray
        If EventType()=#PB_EventType_RightClick
          DisplayPopupMenu(0,WindowID(0))
        EndIf
      ElseIf Event=#PB_Event_Menu
        If EventMenu()=0
          End
        EndIf
     
      EndIf
    Until Event=#PB_Event_CloseWindow
    EndProcedure
    CreateThread(@Tray(), 0)
    ;Tray()
    ;Дальше код ...

    Да не покажутся мои слова обидны богу, но как же портит парадигму этот ваш вайсик! (
    p/s/ еще каких то 6 лет назад я бы сам себе язык вырвал за эти слова.

    Запостил: Stertor, 06 Декабря 2013

    Комментарии (2) RSS

    • Until Event=#PB_Event_CloseWindow
      EndProcedure
      CreateThread(@Tray(), 0)
      ;Tray()
      ;Дальше код ...


      Возможно, я бы не стал постить это, но репа у сего товарища - док.
      А подать сюда доктора, к ответу доктора.
      http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=3595
      Ответить
    • Мда.
      Ответить

    Добавить комментарий