roofninja Posted January 4, 2012 Share Posted January 4, 2012 I am wondering if I can have 2 check marks on MenuItems? I have some testing code below. expandcollapse popup#include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #Include <Array.au3> #include <Misc.au3> #Include <File.au3> if _Singleton("Warning",1) = 0 Then Msgbox(0,"Warning","An occurence of your program is already running") Exit EndIf Opt('MustDeclareVars', 1) Global $list[20] Global $listbox, $StrippedString Global $msg, $space Global $OwenD[8] Global $OwenDi[7] ;install Global $OwenDu[7] ;uninstall Global $OwenH[26] ;printers Global $yes=1, $no=0 Global $Data[26]=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ;data RunWait(@ComSpec & " /c " & 'iprntcmd -l 10.8.0.5 > ipfile.txt',@ScriptDir,@SW_HIDE) If Not _FileReadToArray("ipfile.txt",$list) Then MsgBox(4096,"Error", " Error reading file to Array error:Closing program" & @error) Exit EndIf Menu() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE ExitLoop Case $OwenH[1] If BitAND(GUICtrlRead($OwenH[1]), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($OwenH[1], $GUI_UNCHECKED) $Data[1]=$no Else GUICtrlSetState($OwenH[1], $GUI_CHECKED) $Data[1]=$yes EndIf Case $OwenH[2] If BitAND(GUICtrlRead($OwenH[2]), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($OwenH[2], $GUI_UNCHECKED) $Data[2]=$no Else GUICtrlSetState($OwenH[2], $GUI_CHECKED) $Data[2]=$yes EndIf Case $OwenDi[1] GUIDelete() if $Data[1] = $yes Then MsgBox(0,"","printer 1.1",8) if $Data[2] = $yes Then MsgBox(0,"","printer 1.2",8) MsgBox(0,"","Installing Printers",8) Delete() Exit Case $OwenDu[1] GUIDelete() if $Data[1] = $yes Then MsgBox(0,"","printer 1.1",8) if $Data[2] = $yes Then MsgBox(0,"","printer 1.2",8) MsgBox(0,"","UNinstalling Printers",8) Delete() Exit EndSwitch WEnd Delete() ;------end of main------ Func Menu() GUICreate("list", 500, 200) GUICtrlCreateLabel("Current list of installed printers",5,1) $listbox = GUICtrlCreateList("",5,20,480,160) For $i = 0 To $list[0] GUICtrlSetData($listbox, StringStripWS($list[$i], BitOr(1,2))) Next ;-------------Menu---------------------------------------- $OwenD[1] = GUICtrlCreateMenu("&Owen") $OwenD[2] = GUICtrlCreateMenu("&Owen",$OwenD[1]);25 $OwenH[1] = GUICtrlCreateMenuItem("Printer1",$OwenD[2]) GUICtrlSetState(-1, $GUI_UNCHECKED) $OwenH[2] = GUICtrlCreateMenuItem("printer2",$OwenD[2]) GUICtrlSetState(-1, $GUI_UNCHECKED) $space = GUICtrlCreateMenuItem("",$OwenD[2]) ; create a separator line $OwenDi[1] = GUICtrlCreateMenuItem("install",$OwenD[2]) $space = GUICtrlCreateMenuItem("",$OwenD[2]) ; create a separator line $OwenDu[1] = GUICtrlCreateMenuItem("uninstall",$OwenD[2]) ;------------------------------------------------------------------------------ GUISetState() EndFunc Func Delete() FileDelete(@ScriptDir&"\ipfile.txt") EndFunc Exit RUN . . . Slide . . . TAG . . . Your out . . . PAINTBALL !!! Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 4, 2012 Moderators Share Posted January 4, 2012 roofninja,I am probably being a bit dense, but what do you mean by "2 check marks"? Do you mean check marks on 2 items in the submenu? If so then it is quite possible - if not please explain in a bit more detail. M23P.S. And this code gets your printer array without having to write and delete a temp file: Global $objWMIService = ObjGet("winmgmts:.rootcimv2") Global $colEvents = $objWMIService.ExecQuery("Select * From Win32_Printer") Global $sPrinter_List = "" For $objPrinter In $colEvents $sPrinter_List &= "|" & $objPrinter.DeviceID Next $list = StringSplit($sPrinter_List, "|") Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
guinness Posted January 4, 2012 Share Posted January 4, 2012 Do you mean check marks on 2 items in the submenu?I think they mean that. Look at TrayItemSetState @roofninja. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
roofninja Posted January 4, 2012 Author Share Posted January 4, 2012 At the time of writing the statement it made since to me, but I see that it didn't go very far..... I would like to have menu items that would let me have two different check marks for it. I can do it with one, but what if I need to do it with two different check marks. Say, install this printer and then make this other printer default. I would need a different command to make it default. Thanks, I have already changed the printer array in my working program. This was something that I had already had as a test example from earlier work. RUN . . . Slide . . . TAG . . . Your out . . . PAINTBALL !!! Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 4, 2012 Moderators Share Posted January 4, 2012 roofninja,At the time of writing the statement it made since to meAs my old university professor always used to say: "It is not what you think you said, but what the listener thinks they heard!" If you want different images in the menu then I believe you need to go for a user-drawn version. Search the forum for Holger's "ModernMenu" UDF - I have heard good things about it although I have not used it myself. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
czardas Posted January 4, 2012 Share Posted January 4, 2012 (edited) I also haven't tried the UDF mentioned by M23. Another simple solution would be to change the menu item text using GUICtrlSetData() I often do this to change the menu item text - for example from 'Hide Console' to 'Show Console' or something similar. You can use any text or symbol you like (of course). Edited January 4, 2012 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now