Jump to content

setting a debug mode with runwait


Go to solution Solved by BrewManNH,

Recommended Posts

Hey,

So for this question ive knocked together the following quick script which has a debug checkbox at the bottom right, if its turned on then its sets the two debug variables so they are ' /k ' to keep the command window open at end of the command being ran, and 'SW_SHOW' to show the command box, the first debug variable is fine, i seem to be having trouble with it calling @SW_SHOW or @SW_HIDE from a variable

Anyone got any ideas?

#include <GUIConstantsEx.au3>

$Main = GUICreate("Command Debug",600,480,-1,-1,-1)
GUISetState(@SW_SHOW)
Global $button_notepad = GUICtrlCreateButton("Open Notepad", 484, 74, 89, 20)
Global $checkbox_debug = GUICtrlCreateCheckbox("Debug Mode", 495, 400)
Global $var_debugmode = " /c "
Global $var_debugmode2 = "@SW_SHOW"

While (1)
        $nMsg=GUIGetMsg()
        switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    Case $button_notepad
        Button()
    Case $checkbox_debug 
        If _IsChecked($checkbox_debug) Then ;Turn on debug mode
            $var_debugmode = " /k "
            $var_debugmode2 = "@SW_HIDE"
            MsgBox(0, "TEST ANSWER", "You have just turned debug mode on, all cmd windows will be shown and stay open")
        Else ;Turn off debug mode
            $var_debugmode = " /c "
            $var_debugmode2 = "@SW_SHOW"
            MsgBox(0, "TEST ANSWER", "You have just turned debug mode off, all cmd windows will be hidden")
        EndIf
    EndSwitch        
Wend

Func Button()
$cmd_notepad = RunWait(@ComSpec & $var_debugmode & 'notepad.exe', "", $var_debugmode2)
EndFunc ;==>Button

Func _IsChecked($iControlID)
    Return BitAND(GUICtrlRead($iControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked

;RunWait Cmd comspec Information:
; /k keeps it there on new line
; /c closes after complete
; @SW_SHOW shows the command window
; @SW_HIDE hides the command window
Link to comment
Share on other sites

  • Solution

Try removing the quotes from around the macros @SW_HIDE and @SW_SHOW and see if that works.

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 Gude
How 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

So I now have:

#include <GUIConstantsEx.au3>

$Main = GUICreate("Command Debug",600,480,-1,-1,-1)
GUISetState(@SW_SHOW)
Global $button_notepad = GUICtrlCreateButton("Open Notepad", 484, 74, 89, 20)
Global $checkbox_debug = GUICtrlCreateCheckbox("Debug Mode", 495, 400)
Global $var_debugmode = " /c "
Global $var_debugmode2 = @SW_HIDE

While (1)
        $nMsg=GUIGetMsg()
            switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $button_notepad
            Button()
        Case $checkbox_debug 
            If _IsChecked($checkbox_debug) Then ;Turn on debug mode
                $var_debugmode = " /k "
                $var_debugmode2 = @SW_HIDE
                MsgBox(0, "TEST ANSWER", "You have just turned debug mode on, all cmd windows will be shown and stay open")
                Else ;Turn off debug mode
                $var_debugmode = " /c "
                $var_debugmode2 = @SW_SHOW
                MsgBox(0, "TEST ANSWER", "You have just turned debug mode off, all cmd windows will be hidden")
            EndIf
        EndSwitch        
Wend

Func Button()
$cmd_notepad = RunWait(@ComSpec & $var_debugmode & 'notepad.exe', "", $var_debugmode2)
EndFunc ;==>Button

Func _IsChecked($iControlID)
    Return BitAND(GUICtrlRead($iControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked

;RunWait Cmd comspec Information:
; /k keeps it there on new line
; /c closes after complete
; @SW_SHOW shows the command window
; @SW_HIDE hides the command window

but that still doesnt seem to work.

When I turn debug on, and click the button, notepad opens, but i then cant close the command debug program, its stuck cause of this variable I think

Link to comment
Share on other sites

oh I was being stupid and putting the wrong /c or /k on the wrong varible changes.

This works: 

#include <GUIConstantsEx.au3>

$Main = GUICreate("Command Debug",600,480,-1,-1,-1)
GUISetState(@SW_SHOW)
Global $button_notepad = GUICtrlCreateButton("Open Notepad", 484, 74, 89, 20)
Global $checkbox_debug = GUICtrlCreateCheckbox("Debug Mode", 495, 400)
Global $var_debugmode = " /c "
Global $var_debugmode2 = @SW_HIDE

While (1)
        $nMsg=GUIGetMsg()
            switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $button_notepad
            Button()
        Case $checkbox_debug 
            If _IsChecked($checkbox_debug) Then ;Turn on debug mode
                $var_debugmode = " /k "
                $var_debugmode2 = @SW_SHOW
                MsgBox(0, "TEST ANSWER", "You have just turned debug mode on, all cmd windows will be shown and stay open")
                Else ;Turn off debug mode
                $var_debugmode = " /c "
                $var_debugmode2 = @SW_HIDE
                MsgBox(0, "TEST ANSWER", "You have just turned debug mode off, all cmd windows will be hidden")
            EndIf
        EndSwitch        
Wend

Func Button()
$cmd_notepad = RunWait(@ComSpec & $var_debugmode & 'notepad.exe', "", $var_debugmode2)
EndFunc ;==>Button

Func _IsChecked($iControlID)
    Return BitAND(GUICtrlRead($iControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked

;RunWait Cmd comspec Information:
; /k keeps it there on new line
; /c closes after complete
; @SW_SHOW shows the command window
; @SW_HIDE hides the command window
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...