Sign in to follow this  
Followers 0
rawrr

Im stumped

9 posts in this topic

#1 ·  Posted (edited)

Well, I want this to when typed create a trayitem with the name typed in (Check...)

Then I want it to save it.. So every time the person loads it will have the same settings.. (Not working...)

Then I want it to when the created tray item is clicked to bring up another input box and type 2 other things and then save those to the tray item so when clicked it will write something in a file..(Got the write in file part but not the other..)

Please help..

Heres my script..

#include <GUIConstants.au3>
Opt("TrayMenuMode",1)

$GUI = Guicreate("", 100 , 100, 200, 200)
$label = Guictrlcreatelabel("Name:", 15, 8, 70, 20)
$input = GUICtrlCreateInput("", 15, 25, 70, 20)
$button = GUICtrlCreateButton("Ok", 15, 75, 70, 20)
GUISetState()

While 1
    Switch GuiGetMsg()
        Case $btn
            traycreateitem (GuiCtrlRead($file))
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Edited by rawrr

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

I got it to work! Hey, I fixed it :) Here ya go.

Although its kinda funny, that your Variables dont even match...I fixed it...

#include <GUIConstants.au3>
#include <File.au3>
Opt("TrayMenuMode",1)

$GUI = Guicreate("", 100 , 100, 200, 200)
$label = Guictrlcreatelabel("Name:", 15, 8, 70, 20)
$input = GUICtrlCreateInput("", 15, 25, 70, 20)
$button = GUICtrlCreateButton("Ok", 15, 75, 70, 20)
GUISetState()
If FileExists("File.txt") Then
Dim $Array
_FileReadToArray("File.txt", $Array)
For $x = 1 to $Array[0]
    TrayCreateItem($Array[$x])
Next
EndIf
While 1
    Switch GuiGetMsg()
        Case $button
            traycreateitem (GuiCtrlRead($input))
            $f = FileOpen("File.txt", 1)
            FileWriteLine($f, GUICtrlRead($input))
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Just run the script, make a few tray items, and then rerun it, and it sets them automatically :) enjoy!

Edited by Swift

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Ty, I changed my variables at the last minute but forgot to change all of em..

EDIT : When I click the tray item it doesn't bring up another GUI where theres 2 input boxes.

Edited by rawrr

Share this post


Link to post
Share on other sites

Does it work as planned for you?

Share this post


Link to post
Share on other sites

Yes, except for the GUI part when I click the tray item.

Share this post


Link to post
Share on other sites

B U M P

=]

Share this post


Link to post
Share on other sites

What exactly are you looking for?

Share this post


Link to post
Share on other sites

Post your updated script, tell us what is not working and change this thread's subject from "Im stumped."

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Hi,

I'm not sure what your trying to exactly do, but I gather each new tray menu item will be running a program or something?

Try this crude throw together script if you like.. Just drop your file or directory into either input fields, it'll use the file/folder as the tray item name and use the drop path as the program to run when you click the tray item.

#include <GUIConstants.au3>
#Include <Constants.au3>

Opt("TrayMenuMode",1)
Opt("GUIOnEventMode", 1)
Opt("TrayOnEventMode",1)

Global $Ini = @ScriptDir & "\settings.ini"

$Gui = Guicreate("Drag & Drop File", 200 , 150, -1, -1, -1, BitOr($WS_EX_TOPMOST,$WS_EX_ACCEPTFILES))
GUISetOnEvent($GUI_EVENT_DROPPED, "GuiEvent", $Gui)
GUISetOnEvent($GUI_EVENT_CLOSE, "GuiEvent", $Gui)


GUICtrlCreateGroup("Tray Item Name:", 5, 5, 190, 50)
$ItemName = GUICtrlCreateInput("", 15, 25, 170, 20)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)

GUICtrlCreateGroup("What To Run:", 5, 60, 190, 50)
$WhatToRun = GUICtrlCreateInput("", 15, 80, 170, 20)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)

$AddItem = GUICtrlCreateButton("Add Item To Tray", 30, 120, 140, 20)
GUICtrlSetOnEvent(-1, "GuiEvent") 

GUISetState(@SW_HIDE, $Gui)

TrayCreateItem("Add Item",-1, 49)
TrayItemSetOnEvent(-1, "TrayEvent")
TrayCreateItem("Exit",-1, 50)
TrayItemSetOnEvent(-1, "TrayEvent")
TraySetState()

LoadTray()

While 1
   Sleep(100)
WEnd

Func GuiEvent()
    Switch @GUI_CtrlId
        Case $AddItem
            If GuiCtrlRead($ItemName) <> "" And FileExists(GuiCtrlRead($WhatToRun)) Then
                TrayCreateItem("", -1, 0)
                TrayCreateItem(GuiCtrlRead($ItemName), -1, 0)
                TrayItemSetOnEvent(-1, "TrayEvent")
                IniWrite($Ini, "TrayItems", GuiCtrlRead($ItemName), GuiCtrlRead($WhatToRun))
                GUICtrlSetData($ItemName, "")
                GUICtrlSetData($WhatToRun, "")
                GUISetState(@SW_HIDE, $Gui)
            EndIf   
        Case $GUI_EVENT_DROPPED
            Local $FileName = StringTrimLeft(@GUI_DragFile, StringInStr(@GUI_DragFile, "\", 0, -1))
            If @GUI_DropId = $ItemName Then
                GUICtrlSetData($ItemName, $FileName)
                GUICtrlSetData($WhatToRun, @GUI_DragFile)
            ElseIf @GUI_DropId = $WhatToRun Then
                GUICtrlSetData($ItemName, $FileName)
            EndIf   
        Case $GUI_EVENT_CLOSE
            GUICtrlSetData($ItemName, "")
            GUICtrlSetData($WhatToRun, "")
            GUISetState(@SW_HIDE, $Gui)
    EndSwitch
EndFunc

Func TrayEvent()
    Switch TrayItemGetText(@TRAY_ID)
        Case "Add Item"
            GUISetState(@SW_SHOW, $Gui)
        Case "Exit"
            Exit
        Case Else
            Local $IR = IniRead($Ini, "TrayItems", TrayItemGetText(@TRAY_ID), "") 
            If FileExists($IR) Then ShellExecute($IR)
    EndSwitch
EndFunc

Func LoadTray()
    $IRS = IniReadSection($Ini, "TrayItems")
    If Not @error Then
        For $i = 1 To $IRS[0][0]
            TrayCreateItem("", -1, 0)
            TrayCreateItem($IRS[$i][0], -1, 0)
            TrayItemSetOnEvent(-1, "TrayEvent") 
        Next
    EndIf
    If Not FileExists($Ini) Then GUISetState(@SW_SHOW, $Gui)
EndFunc
Hope it gives you some idea of what your trying to do.

Cheers

Edited by smashly

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  
Followers 0