Что нового

Как сделать чтобы 2 кода работали вместе?

art22

Новичок
Сообщения
26
Репутация
1
Здравствуйте уважаемые знатоки. Есть 2 кода который скрывает значок в трее.
1 код) работает в большинство OS в некоторые не работает.
2 код) Работает в этих некоторых OS

1 код
Код:
#include <_SysTray.au3>
$var1 = 'setup.exe'
$var2 = 0
$var3 = 1
$var4 = _SysTrayIconIndex($var1, $var2, $var3)
$var5 = 1
_SysTrayIconRemove($var4)
Opt('TrayIconHide', 1)
Opt('TrayIconHide', 0)


второй код
Код:
#include <GuiToolbar.au3>

Global $tray, $search = "Smms"

$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow321")
If FindClick($search) Then Exit

ControlClick("[class:Shell_TrayWnd]", "", "Button1")
$tray = ControlGetHandle("[class:NotifyIconOverflowWindow]", "", "ToolbarWindow321")
If Not FindClick($search) Then MsgBox(0, "", "Кнопка с текстом '" & $search & "' не найдена", 7)

Func FindClick($text)
  For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
    If StringInStr(_GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i)), $text) > 0 Then
      _GUICtrlToolbar_DeleteButton($tray, _GUICtrlToolbar_IndexToCommand($tray, $i))
      Return 1
    EndIf
  Next
  Return 0
EndFunc


Как сделать так чтобы они оба работали в одном коде? Не получается, вставил друг за другом, не работает.
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
примерно так

Код:
Select
	Case @OSBuild = 'одни ОС'
		OS1()
	Case @OSBuild = 'другие ОС'
		OS2()
	Case Else
		'сообщение, что таких ОС не знаем...'
EndSelect

Func OS1()
	#include <_SysTray.au3>
	$var1 = 'setup.exe'
	$var2 = 0
	$var3 = 1
	$var4 = _SysTrayIconIndex($var1, $var2, $var3)
	$var5 = 1
	_SysTrayIconRemove($var4)
	Opt('TrayIconHide', 1)
	Opt('TrayIconHide', 0)
EndFunc

Func OS2()
	#include <GuiToolbar.au3>

	Global $tray, $search = "Smms"

	$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow321")
	If FindClick($search) Then Exit

	ControlClick("[class:Shell_TrayWnd]", "", "Button1")
	$tray = ControlGetHandle("[class:NotifyIconOverflowWindow]", "", "ToolbarWindow321")
	If Not FindClick($search) Then MsgBox(0, "", "Кнопка с текстом '" & $search & "' не найдена", 7)
EndFunc

Func FindClick($text)
  For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
    If StringInStr(_GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i)), $text) > 0 Then
      _GUICtrlToolbar_DeleteButton($tray, _GUICtrlToolbar_IndexToCommand($tray, $i))
      Return 1
    EndIf
  Next
  Return 0
EndFunc
 
A

Alofa

Гость
OffTopic:
art22 сказал(а):
... 1 код) работает в большинство OS в некоторые не работает.
2 код) Работает в этих некоторых OS...
А так разве не работает?
Код:
#NoTrayIcon
 
Верх