Jump to content
Sign in to follow this  
bourny

Multiple Adlibs

Recommended Posts

bourny

I am pretty sure from what I have read I cannot call 2 adlibs in a script and expect them both to work ....

Is there any way around this maybe thinking out of the box ... The reason I ask is my script currently runs a tray adlib which updates the tray with messages about the script. The main purpose of this adlib is to provide a nice rotating tray icon to replace the static icon I was previously using.

I have discovered this may cause an issue as in the installer function I use adlibs to handle misbehaving installers. This will inevitably cause my tray to stop adlibing therefore stop updating with messages and stop the graphic from rotating.

(The rotating graphic is simply 4 icons on a rotational cycle using the adlib)

I know I need the adlib for the misbehaving installers more than I need the pretty icon rotating in the tray however I need to find a new way of doing the icon rotating without using an adlib.

Here is the code I use to create the rotating icon in the tray using an adlib to keep it going and updated...

***************************************************************************

AdlibEnable("UpdateTray", 300)

Func UpdateTray()

If $StealthMode <> "1" Then

TraySetToolTip($TrayMessage)

;This simply sets the tray icon depending on if an error or warning or none have occured

Dim $FlagType

Select

Case $Ympkg_error_on = 1

$FlagType = 3

;19

Case $WarningFlag = 1

$FlagType = 2

;18

Case Else

$FlagType = 1

;17

EndSelect

If $TipMessage <> "" Then

$TipArray = StringSplit($TipMessage, ",")

UBound($TipArray)

If @error Then

;Do not set TrayTip to dynamic as it is empty

Else

;Dynamic TrayTip has values - Decide how many

$SizeOfTrayTip = UBound($TipArray) -1

Select

Case $SizeOfTrayTip > 2

Select

Case $SizeOfTrayTip = 3

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 4

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 5

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4] & @lf & $TipArray[5], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 6

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4] & @lf & $TipArray[5] _

& @lf & $TipArray[6], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 7

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4] & @lf & $TipArray[5] _

& @lf & $TipArray[6] & @lf & $TipArray[7], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 8

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4] & @lf & $TipArray[5] _

& @lf & $TipArray[6] & @lf & $TipArray[7] & @lf & $TipArray[8], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 9

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4] & @lf & $TipArray[5] _

& @lf & $TipArray[6] & @lf & $TipArray[7] & @lf & $TipArray[8] & @lf & $TipArray[9], 30, $FlagType)

EndIf

Case $SizeOfTrayTip = 10

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2] & @lf & $TipArray[3]& @lf & $TipArray[4] & @lf & $TipArray[5] _

& @lf & $TipArray[6] & @lf & $TipArray[7] & @lf & $TipArray[8] & @lf & $TipArray[9] & @lf & $TipArray[10], 30, $FlagType)

EndIf

EndSelect

Case $SizeOfTrayTip = 2

If $Silent <> 1 Then

TrayTip ( "", "", 0)

TrayTip($TipArray[1], $TipArray[2], 30, $FlagType)

EndIf

Case Else

;Do Nothing - Tray Tip has less than 2 values - At least 2 are required to build Tray Tip

EndSelect

EndIf

EndIf

Dim $ActiveIcon

Select

Case $WarningFlag = 1

Dim $ActiveIcon

If $num = 1 Then

$ActiveIcon = $Icon2

$num = 0

Else

$ActiveIcon = $icon1

$num = 1

EndIf

Case $ErrorFlag = 1

Dim $ActiveIcon

If $num = 1 Then

$ActiveIcon = $Icon2

$num = 0

Else

$ActiveIcon = $icon1

$num = 1

EndIf

Case Else

Select

Case $num = 1

$ActiveIcon = $Icon1

$num = 2

Case $num = 2

$ActiveIcon = $Icon2

$num = 3

Case $num = 3

$ActiveIcon = $Icon3

$num = 4

Case $num = 4

$ActiveIcon = $Icon4

$num = 1

EndSelect

EndSelect

TraySetIcon($ActiveIcon)

TrayItemDelete ($item2)

$item2 = TrayCreateItem($Progress)

EndIf

EndFunc

***************************************************************************

Share this post


Link to post
Share on other sites
SmOke_N

The use of code tags would be great :) !

When I need more than one adlib, I generally make an Adlibmanager function:

http://www.autoitscript.com/forum/index.ph...st&p=301924

http://www.autoitscript.com/forum/index.ph...st&p=211166

However, you could also use something like SetTimer + DllCallBack:

http://www.autoitscript.com/forum/index.ph...st&p=493146

Edit:

Clarity

Edited by SmOke_N

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites
bourny

Thanks for that - Sounds like the kind of solution I was looking for - Will test this out in my script.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.