Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703

Отобразить BalloonTip

24.08.2015, 22:43. Показов 2751. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как отобразить BalloonTip в PureBasic? (всплывающие сообщение, например когда брандмауэр Windows отключаешь). Пробовал пример, который нашел:
Кликните здесь для просмотра всего текста

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#NIN_BALLOONSHOW=$402
#NIN_BALLOONHIDE=$403
#NIN_BALLOONTIMEOUT =$404
#NIN_BALLOONUSERCLICK=$405
#NOTIFYICON_VERSION = $3
#NOTIFYICONDATA_V1_SIZE = 88
#NOTIFYICONDATA_V2_SIZE = 488
#NOTIFYICONDATA_V3_SIZE = 504
 
 
 
Structure NOTIFYICONDATA_95
cbSize.l
hwnd.l
uID.l
uFlags.l
uCallbackMessage.l
hIcon.l
szTip.b[64]
EndStructure
Structure NOTIFYICONDATA_2K Extends NOTIFYICONDATA_95
szTipEx.b[64]
dwState.l
dwStateMask.l
szInfo.b[256]
StructureUnion
uTimeout.l
uVersion.l
EndStructureUnion
szInfoTitle.b[64]
dwInfoFlags.l
EndStructure
Structure NOTIFYICONDATA_XP Extends NOTIFYICONDATA_2K
guid.GUID
EndStructure
 
 
 
Procedure HideSysTrayIcon(Tray, WindowID, state.l)
 
Protected nid.NOTIFYICONDATA_XP
 
If OSVersion() >= #PB_OS_Windows_2000
 
nid\cbSize = #NOTIFYICONDATA_V2_SIZE
nid\uID = Tray
nid\hwnd = WindowID
nid\uFlags = #NIF_STATE
nid\dwStateMask = #NIS_HIDDEN
 
If state
nid\dwState = #NIS_HIDDEN
EndIf
 
ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nid)
 
EndIf
 
EndProcedure
 
 
Procedure SysTrayIconBalloon(Tray, WindowID, Title.s, Message.s, TimeOut.l, TypeIcon)
; Tray - идентификатор значка в трее
; WindowID - Системный идентификатор окна
; Title - текст в заголовке баллона
; Message - текст в баллоне
; TimeOut - Время (в миллисекундах) отображения баллона
; TypeIcon - тип значка #NIIF_NONE #NIIF_INFO #NIIF_WARNING #NIIF_ERROR #NIIF_USER
 
Protected nid.NOTIFYICONDATA_XP
 
If OSVersion() >= #PB_OS_Windows_XP
nid\cbSize = #NOTIFYICONDATA_V3_SIZE
ElseIf OSVersion() >= #PB_OS_Windows_2000
nid\cbSize = #NOTIFYICONDATA_V2_SIZE
Else
ProcedureReturn #False
EndIf
 
nid\uVersion = #NOTIFYICON_VERSION
Shell_NotifyIcon_(#NIM_SETVERSION, @nid)
nid\uCallbackMessage=#PB_Event_SysTray
nid\uID = Tray
nid\hwnd = WindowID
nid\dwInfoFlags = TypeIcon;#NIIF_INFO
nid\uFlags = #NIF_INFO
nid\uTimeout = timeOut
 
nid\dwState = #NIS_SHAREDICON
 
PokeS(@nid\szInfo, message, 256)
PokeS(@nid\szInfoTitle, title, 64)
 
ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nid)
 
EndProcedure
 
SysDir.s=Space(255)
GetSystemDirectory_(@SysDir,255)
 
If OpenWindow(0, 0, 0, 200, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
;AddSysTrayIcon(1, WindowID(0), ExtractIcon_(0,SysDir+"\SetupAPI.dll",2))
AddSysTrayIcon(2, WindowID(0), ExtractIcon_(0,SysDir+"\SetupAPI.dll",2))
SysTrayIconToolTip(2, "Icon 2")
ButtonGadget(1,10,10,170,24,"Отобразить баллон")
ButtonGadget(2,10,50,170,24,"Спрятать баллон") : DisableGadget(2,1)
 
count=0
Repeat
Event = WaitWindowEvent()
Gadget=EventGadget()
If Event = 12502 ; События балона
Select EventlParam()
 
Case #NIN_BALLOONSHOW
Debug "Отображён баллон"
DisableGadget(2,0)
Case #NIN_BALLOONTIMEOUT
Debug "Закончилось время отображения либо баллон закрыт щёлчком по крестику" ; The 'X' doesn't seem to be available in W2K?!
DisableGadget(2,1)
Case #NIN_BALLOONUSERCLICK
Debug "Клик по баллону"
DisableGadget(2,1)
 
Case #NIN_BALLOONHIDE
Debug "Баллон спрятан"
DisableGadget(2,1)
 
EndSelect
EndIf
 
 
 
If Event = #PB_Event_SysTray
x=EventType()
If x = #PB_EventType_LeftDoubleClick
MessageRequester("SysTray", "Left DoubleClick on SysTrayIcon "+Str(EventGadget()),0)
EndIf
EndIf
 
If Event = #PB_Event_Gadget
If Gadget=1
SysTrayIconBalloon(2, WindowID(0), "1234", "90", 10000, count )
count+1
If count>4
count=0
EndIf
ElseIf Gadget=2
HideSysTrayIcon(2, WindowID(0), 1)
HideSysTrayIcon(2, WindowID(0), 0)
EndIf
EndIf
 
Until Event = #PB_Event_CloseWindow
 
EndIf


Но он не работает. Просто не показывается.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.08.2015, 22:43
Ответы с готовыми решениями:

balloonTip
Как обратиться к событию нажатия на уведомление иконки из панели задач?

Мгновенное замещение BalloonTip другим сообщением
Здравствуйте. В моей программе присвоены горячие клавиши, при нажатии на клавишу нужно выводить сообщение в область уведомлений. Сделал это...

Как отобразить?
Помогите пожалуйста, не как не могу понять. В общем в чем суть, решил я сделать программу,решение квадратных уравнений. Вот только как...

4
Эксперт по электронике
6800 / 3227 / 335
Регистрация: 28.10.2011
Сообщений: 12,597
Записей в блоге: 7
24.08.2015, 23:26
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Structure NOTIFYICONDATA_95 Align #PB_Structure_AlignC
  cbSize.l
  hwnd.i 
  uID.i 
  uFlags.i
  uCallbackMessage.i 
  hIcon.i 
  szTip.s{64} 
EndStructure 
 
Structure NOTIFYICONDATA_2K Extends NOTIFYICONDATA_95 Align #PB_Structure_AlignC
  szTipEx.s{64}
  dwState.l
  dwStateMask.l 
  szInfo.s{256} 
  StructureUnion 
    uTimeout.i 
    uVersion.i 
  EndStructureUnion 
  szInfoTitle.s{64}
  dwInfoFlags.l
EndStructure
 
Procedure HideSysTrayIcon(Tray, WindowID, state.l)
  
  Protected nid.NOTIFYICONDATA_2K
  
  If OSVersion() >= #PB_OS_Windows_2000
    
    nid\cbSize = SizeOf(NOTIFYICONDATA_2K)
    nid\uID = Tray
    nid\hwnd = WindowID
    nid\uFlags = #NIF_STATE
    nid\dwStateMask = #NIS_HIDDEN
    
    If state
      nid\dwState = #NIS_HIDDEN
    EndIf
    
    ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nid)
    
  EndIf
  
EndProcedure
 
 
Procedure SysTrayIcon_Balloon(Tray, WindowID, Title.s, Message.s, TimeOut, TypeIcon) 
; Tray     - идентификатор значка в трее
; WindowID - Системный идентификатор окна
; Title    - текст в заголовке баллона
; Message  - текст в баллоне
; TimeOut  - Время (в миллисекундах) отображения баллона
; TypeIcon - тип значка #NIIF_NONE #NIIF_INFO #NIIF_WARNING #NIIF_ERROR #NIIF_USER
 
  Protected nid.NOTIFYICONDATA_2K 
  nid\cbSize      = SizeOf(NOTIFYICONDATA_2K)
  nid\uVersion = #NOTIFYICON_VERSION
  Shell_NotifyIcon_(#NIM_SETVERSION, @nid)
  nid\uCallbackMessage=#PB_Event_SysTray
  nid\uID         = Tray
  nid\hwnd        = WindowID
  nid\dwInfoFlags = TypeIcon
  nid\uFlags      = #NIF_INFO
  nid\uTimeout    = TimeOut
  nid\dwState = #NIS_SHAREDICON
  
  nid\szInfo = message
  nid\szInfoTitle= title
  
  ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nid) 
  
EndProcedure
 
SysDir.s=Space(255)
GetSystemDirectory_(@SysDir,255)
 
If OpenWindow(0, 0, 0, 200, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ;AddSysTrayIcon(1, WindowID(0), ExtractIcon_(0,SysDir+"\SetupAPI.dll",2))
  AddSysTrayIcon(2, WindowID(0), ExtractIcon_(0,SysDir+"\SetupAPI.dll",2))
  SysTrayIconToolTip(2, "Icon 2")
  ButtonGadget(1,10,10,170,24,"Отобразить баллон")
  ButtonGadget(2,10,50,170,24,"Спрятать баллон")
  
  count=0
  Repeat
    Event = WaitWindowEvent()
    Gadget=EventGadget()
    If Event = 12502 ; События балона
      Select EventlParam()
          
        Case #NIN_BALLOONSHOW
          Debug "Отображён баллон"
          DisableGadget(2,0)
        Case #NIN_BALLOONTIMEOUT
          Debug "Закончилось время отображения либо баллон закрыт щёлчком по крестику" ; The 'X' doesn't seem to be available in W2K?!
          DisableGadget(2,1)
        Case #NIN_BALLOONUSERCLICK
          Debug "Клик по баллону"
          DisableGadget(2,1)
          
        Case #NIN_BALLOONHIDE
          Debug "Баллон спрятан"
          DisableGadget(2,1)
          
      EndSelect
    EndIf
    
    
    If Event = #PB_Event_SysTray
      x=EventType()
      If x = #PB_EventType_LeftDoubleClick
        MessageRequester("SysTray", "Left DoubleClick on SysTrayIcon "+Str(EventGadget()),0)
      EndIf
    EndIf
    
    If Event = #PB_Event_Gadget
      If Gadget=1
        SysTrayIcon_Balloon(2, WindowID(0), "1234", "90", 10000, count)
        count+1
        If count>4
          count=0
        EndIf
      ElseIf Gadget=2
        HideSysTrayIcon(2, WindowID(0), 1)
        HideSysTrayIcon(2, WindowID(0), 0)
      EndIf
    EndIf
    
  Until Event = #PB_Event_CloseWindow
  
EndIf
3
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
24.08.2015, 23:47  [ТС]
locm, спасибо большое.
0
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 108
18.04.2025, 21:59
А для более поздних Windows как?
0
Эксперт по электронике
6800 / 3227 / 335
Регистрация: 28.10.2011
Сообщений: 12,597
Записей в блоге: 7
18.04.2025, 22:04
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
Structure NOTIFYICONDATA_2K Align #PB_Structure_AlignC
  cbSize.l
  hwnd.i
  uId.l
  uFlags.l
  uCallbackMessage.l
  hIcon.i
  StructureUnion
    szTip.s{64}
    szTipEx.s{128}
  EndStructureUnion
  dwState.l
  dwStateMask.l
  szInfo.s{256}
  StructureUnion
    uTimeout.l
    uVersion.l
  EndStructureUnion
  szInfoTitle.s{64}
  dwInfoFlags.l
EndStructure
 
Procedure HideSysTrayIcon(Tray, WindowID, state.l)
  
  Protected nid.NOTIFYICONDATA_2K
  
  If OSVersion() >= #PB_OS_Windows_2000
    
    nid\cbSize = SizeOf(NOTIFYICONDATA_2K)
    nid\uID = Tray
    nid\hwnd = WindowID
    nid\uFlags = #NIF_STATE
    nid\dwStateMask = #NIS_HIDDEN
    
    If state
      nid\dwState = #NIS_HIDDEN
    EndIf
    
    ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nid)
    
  EndIf
  
EndProcedure
 
 
Procedure SysTrayIcon_Balloon(Tray, WindowID, Title.s, Message.s, TimeOut, TypeIcon) 
; Tray     - идентификатор значка в трее
; WindowID - Системный идентификатор окна
; Title    - текст в заголовке баллона
; Message  - текст в баллоне
; TimeOut  - Время (в миллисекундах) отображения баллона
; TypeIcon - тип значка #NIIF_NONE #NIIF_INFO #NIIF_WARNING #NIIF_ERROR #NIIF_USER
 
  Protected nid.NOTIFYICONDATA_2K 
  nid\cbSize      = SizeOf(NOTIFYICONDATA_2K)
  nid\uVersion = #NOTIFYICON_VERSION
  Shell_NotifyIcon_(#NIM_SETVERSION, @nid)
  nid\uCallbackMessage=#PB_Event_SysTray
  nid\uID         = Tray
  nid\hwnd        = WindowID
  nid\dwInfoFlags = TypeIcon
  nid\uFlags      = #NIF_INFO
  nid\uTimeout    = TimeOut
  nid\dwState = #NIS_SHAREDICON
  
  nid\szInfo = message
  nid\szInfoTitle= title
  
  ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nid) 
  
EndProcedure
 
SysDir.s=Space(255)
GetSystemDirectory_(@SysDir,255)
 
If OpenWindow(0, 0, 0, 200, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ;AddSysTrayIcon(1, WindowID(0), ExtractIcon_(0,SysDir+"\SetupAPI.dll",2))
  AddSysTrayIcon(2, WindowID(0), ExtractIcon_(0,SysDir+"\SetupAPI.dll",2))
  SysTrayIconToolTip(2, "Icon 2")
  ButtonGadget(1,10,10,170,24,"Отобразить баллон")
  ButtonGadget(2,10,50,170,24,"Спрятать баллон")
  
  count=0
  Repeat
    Event = WaitWindowEvent()
    Gadget=EventGadget()
    If Event = 12502 ; События балона
      Select EventlParam()
          
        Case #NIN_BALLOONSHOW
          Debug "Отображён баллон"
          DisableGadget(2,0)
        Case #NIN_BALLOONTIMEOUT
          Debug "Закончилось время отображения либо баллон закрыт щёлчком по крестику" ; The 'X' doesn't seem to be available in W2K?!
          DisableGadget(2,1)
        Case #NIN_BALLOONUSERCLICK
          Debug "Клик по баллону"
          DisableGadget(2,1)
          
        Case #NIN_BALLOONHIDE
          Debug "Баллон спрятан"
          DisableGadget(2,1)
          
      EndSelect
    EndIf
    
    
    If Event = #PB_Event_SysTray
      x=EventType()
      If x = #PB_EventType_LeftDoubleClick
        MessageRequester("SysTray", "Left DoubleClick on SysTrayIcon "+Str(EventGadget()),0)
      EndIf
    EndIf
    
    If Event = #PB_Event_Gadget
      If Gadget=1
        SysTrayIcon_Balloon(2, WindowID(0), "1234", "90", 10000, count)
        count+1
        If count>4
          count=0
        EndIf
      ElseIf Gadget=2
        HideSysTrayIcon(2, WindowID(0), 1)
        HideSysTrayIcon(2, WindowID(0), 0)
      EndIf
    EndIf
    
  Until Event = #PB_Event_CloseWindow
  
EndIf
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2025, 22:04
Помогаю со студенческими работами здесь

Отобразить данные
Есть контролер, на не приходи ид профиля public ActionResult Info(string steamIDS) { XDocument...

отобразить на форме
люди пожалуйста помогите,надо прочитать информацию с файл и отобразить на форме как сделть пожалуйста помогите визуал бейсик 6.0

Отобразить коллекцию
Возник следующий вопрос: Некоторым образом формируется коллекция документов. Хотелось бы всю эту коллекцию выводить во вью в...

отобразить число
нужно создать функцию для зеркально отображения числа

отобразить процессом
здравствуйте! есть процедура... Form5.ADOTable1.Edit; Form5.ADOTable1.FieldByName('nomer').AsString:=Form5.sDBEdit2.Text; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru