MKANET Posted May 29, 2012 Share Posted May 29, 2012 Unfortunately, I didn't word my previous thread appropriately. The moderator was kind enough to allow me to start a new thread using the correct terminology... Mcaffee at my work doesn't allow me to use cmdow.exe; even for legitimate reasons. Unfortunately, they won't make an exception just for me due to the size of the organization. Luckily, autoit scripts work fine; which is why I'm interested in learning autoit. I've been using batch files + commandline tools for years at my work; however, autoit can do so much more!! Below is my best attempt and making a simple utility to hide/unhide the "GUI" a program. However, I need help with the syntax. I'm still getting used to using if statements in autoit. Usage: mahider.exe /unhide calc.exe or mahider.exe /hide calc.exe Thanks so much in advance! -MKANET ------------------------------------------------------------------ AutoItSetOption("WinTitleMatchMode", 1) if $CmdLine[0] > 0 Then if $CmdLine[1] == "/hide" Then WinSetState($CmdLine[2], "", @SW_HIDE) ElseIf $CmdLine[1] == "/unhide" Then WinSetState($CmdLine[2], "", @SW_SHOW) Else EndIf EndIf ------------------------------------------------------------------ Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted May 29, 2012 Moderators Share Posted May 29, 2012 All,I am happy for this thread to continue - as long as it stays on the subject of hiding/showing GUIs. I do not want to see any move towards the hiding of processes. 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...
MKANET Posted May 29, 2012 Author Share Posted May 29, 2012 I modified the code a little bit so the if and then are both on the same line. It's not giving an error anymore; however, its not working either AutoItSetOption("WinTitleMatchMode", 1) if $CmdLine[0] > 0 Then if $CmdLine[1] == "/hide" Then WinSetState($CmdLine[2], "", @SW_HIDE) ElseIf $CmdLine[1] == "/unhide" Then WinSetState($CmdLine[2], "", @SW_SHOW) Else EndIf EndIf Link to comment Share on other sites More sharing options...
Zedna Posted May 29, 2012 Share Posted May 29, 2012 (edited) It seems your script is OK just call it like this: mahider.exe /unhide Calculator Don't use calc.exe because it finds target window by title text and not by EXE name. Edited May 29, 2012 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
MKANET Posted May 29, 2012 Author Share Posted May 29, 2012 (edited) Sorry for all the trouble, but for some reason, it's STILL just doing nothing after I type "mahider.exe /hide Calculator". I even tried using just the script: mahider.au3 /hide Calculator Im not getting errors... I just see a quick flash showing the autoit icon in my taskbar. Calculator is still there. EDIT: Is it because I'm using a 64bit OS? I'm using 32bit autoit. Edited May 29, 2012 by MKANET Link to comment Share on other sites More sharing options...
BrewManNH Posted May 29, 2012 Share Posted May 29, 2012 Make sure that the title of the window you're passing to the script is the actual title of the window you want to close. Because when I test that on Windows 7, it works fine. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
MKANET Posted May 29, 2012 Author Share Posted May 29, 2012 (edited) Edit: I got it working!! Even in my RDP session. However How can I get the code to actually use the process name instead of the title name? Some of the processes have extremely long titles. Thanks for all your help guys! Edited May 29, 2012 by MKANET Link to comment Share on other sites More sharing options...
BrewManNH Posted May 29, 2012 Share Posted May 29, 2012 As long as the titles are distinct enough from each other you could use a partial match to the title of the window instead of matching it only from the beginning. Using this AutoItSetOption("WinTitleMatchMode", with option 2 for instance, you would only have to match a part of the window title rather than starting from the beginning of the title. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
MKANET Posted May 29, 2012 Author Share Posted May 29, 2012 Thanks. One more thing...I want to add one more important command line argument to mahider.au3..../activateI've been trying and trying, I just can't get my head around how to add both unhide/hide AND activate commands together or have them in opposite order (see examples below). This will help me to make other tools with multiple arguments in the future!such as:mahide /hide Calculatormahide /unhide /activate Calculatormahide /activate /unhide CalculatorBelow is a very simple code which will only allow one command at a time:AutoItSetOption("WinTitleMatchMode", 1) if $CmdLine[0] > 0 Then if $CmdLine[1] == "/hide" Then WinSetState($CmdLine[2], "", @SW_HIDE) ElseIf $CmdLine[1] == "/unhide" Then WinSetState($CmdLine[2], "", @SW_SHOW) ElseIf $CmdLine[1] == "/activate" Then WinActivate($CmdLine[2]) Else EndIf EndIf Link to comment Share on other sites More sharing options...
Zedna Posted May 29, 2012 Share Posted May 29, 2012 Some concept: AutoItSetOption("WinTitleMatchMode", 1) Global $hide = False Global $unhide = False Global $activate = False Global $title = '' If $CmdLine[0] > 0 Then For $i = 1 To $CmdLine[0] If $CmdLine[$i] = "/hide" Then $hide = True ElseIf $CmdLine[$i] = "/unhide" Then $unhide = True ElseIf $CmdLine[$i] = "/activate" Then $activate = True Else $title = $CmdLine[$i] EndIf Next If $hide Then WinSetState($title, "", @SW_HIDE) ElseIf $unhide Then WinSetState($title, "", @SW_SHOW) EndIf If $activate Then WinActivate($title) EndIf Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
BrewManNH Posted May 29, 2012 Share Posted May 29, 2012 It's not mentioned in WinSetState, but @SW_SHOWNORMAL is one of the options for GUISetState, it might work. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
MKANET Posted May 30, 2012 Author Share Posted May 30, 2012 Thank you very much for all your help and suggestions. I can apply the concepts and syntax with other scripts I write as well. 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