Jump to content

Command Line Interface in gui


Recommended Posts

Well I am trying to make my own console program because the developers of Console2Beta dont seem to be updating or fixing old problems. I know there is a better way to do this but right now this is my code:

CODE
#Include <Misc.au3>

#include <Date.au3>

#Include <File.au3>

#Include <Array.au3>

#Include <Guitab.au3>

#Include <GuiEdit.au3>

#Include <GuiRebar.au3>

#Include <GuiButton.au3>

#Include <GuiListView.au3>

#include <GuiToolbar.au3>

#include <TabConstants.au3>

#include <GuiConstants.au3>

#include <GUIConstantsEx.au3>

#include <EditConstants.au3>

#include <ButtonConstants.au3>

#include <WindowsConstants.au3>

#NoTrayIcon

HotKeySet("{ESC}","Terminate")

Global $btn,$t,$b, $rdo, $chk, $iMemo, $hCtrl, $edit, $index,$tab

$index = 0

$gui1 = GUICreate("Console", 900, 900, -1, -1,$WS_CLIPCHILDREN)

$tab = GUICtrlCreateTab(10,60,850,800)

;$item = GUICtrlCreateTabItem("test");_GUICtrlTab_InsertItem($tab,$index,"test")

$button = GUICtrlCreateButton("Button1",0,860,20,20)

$height = @DesktopHeight - 30

GuiSetState(@SW_SHOW)

$btncreate = False

$btnclicked = False

$var = WinList()

$location = 3

GUIRegisterMsg($WM_COMMAND,"WM_COMMAND")

GUIRegisterMsg($WM_NOTIFY,"WM_NOTIFY")

Run("cmd.exe /k COLOR 07")

Sleep(1000)

$handle = WinGetHandle("Administrator: C:\Windows\system32\cmd.exe","")

$gui = WinGetHandle("Console","")

$handle1 = ControlGetHandle("Console","","[CLASS:SysTabControl32; INSTANCE:1]")

_WinAPI_SetParent($handle,$handle1)

Sleep(1000)

WinMove("Administrator: C:\Windows\system32\cmd.exe","",0,0)

Do

Sleep(100)

Until GUIGetMsg() = $gui_EVENT_CLOSE

;Gets all visible windows

Func IsVisible($handle)

If BitAnd( WinGetState($handle), 2 ) Then

Return 1

Else

Return 0

EndIf

EndFunc

Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)

#forceref $hWnd, $Msg, $wParam

Local Const $BCN_HOTITEMCHANGE = -1249

Local $tNMBHOTITEM = DllStructCreate("hwnd hWndFrom;int IDFrom;int Code;dword dwFlags", $lParam)

Local $nNotifyCode = DllStructGetData($tNMBHOTITEM, "Code")

Local $nID = DllStructGetData($tNMBHOTITEM, "IDFrom")

Local $hCtrl = DllStructGetData($tNMBHOTITEM, "hWndFrom")

Local $dwFlags = DllStructGetData($tNMBHOTITEM, "dwFlags")

Local $sText = ""

Switch $nNotifyCode

Case $BCN_HOTITEMCHANGE ; Win XP and Above

If BitAND($dwFlags, 0x10) = 0x10 Then

;MsgBox(0,"","test")

$sText = "$BCN_HOTITEMCHANGE - Entering: " & @CRLF

ElseIf BitAND($dwFlags, 0x20) = 0x20 Then

$sText = "$BCN_HOTITEMCHANGE - Leaving: " & @CRLF

EndIf

EndSwitch

Return $GUI_RUNDEFMSG

EndFunc ;==>WM_NOTIFY

; React on a button click

Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)

#forceref $hWnd, $Msg

Local $nNotifyCode = BitShift($wParam, 16)

Local $nID = BitAND($wParam, 0x0000FFFF)

Local $hCtrl = $lParam

Local $sText = ""

Switch $nNotifyCode

Case $BN_CLICKED

state()

Case $BN_PAINT

$sText = "$BN_PAINT" & @CRLF

Case $BN_PUSHED, $BN_HILITE

$sText = "$BN_PUSHED, $BN_HILITE" & @CRLF

MsgBox(0,"","test1")

Case $BN_UNPUSHED, $BN_UNHILITE

$sText = "$BN_UNPUSHED" & @CRLF

Case $BN_DISABLE

$sText = "$BN_DISABLE" & @CRLF

Case $BN_DBLCLK, $BN_DOUBLECLICKED

$sText = "$BN_DBLCLK, $BN_DOUBLECLICKED" & @CRLF

Case $BN_SETFOCUS

$sText = "$BN_SETFOCUS" & @CRLF

Case $BN_KILLFOCUS

$sText = "$BN_KILLFOCUS" & @CRLF

EndSwitch

Return 0 ; Only workout clicking on the button

Return $GUI_RUNDEFMSG

EndFunc ;==>WM_COMMAND

Func state()

_GUICtrlTab_InsertItem($tab,$index,"test")

$sel = _GUICtrlTab_GetCurSel($tab)

MsgBox(0,"",$sel)

$index = $index + 1

EndFunc

Func Terminate()

ProcessClose("cmd.exe")

Exit

EndFunc

My question is can I use ObjCreate and actually create my own command line object(if it is an object???) instead of running the .exe itself and putting it in the gui. I am running x64 bit Vista right now. You may have to change the window titles for the wingethandle and controlgethandle. I was going to try and look at Console's source but I really want to try and work this out on my own. Thanks

Link to comment
Share on other sites

Run("cmd.exe /k COLOR 07")
Sleep(1000)
$handle = WinGetHandle("Administrator: C:\Windows\system32\cmd.exe","")oÝ÷ Øz0q©ò¢è¶§vW¨}§±yø¥y«­¢+ØÀÌØíIÕ¸ôIÕ¸ ÅÕ½Ðíµ¹á½¬
=1=HÀÜÅÕ½Ðì¤)M±À ÄÀÀÀ¤(ÀÌØí¡¹±ô]¥¹Ñ!¹± ÀÌØíIÕ¸°ÅÕ½ÐìÅÕ½Ðì¤

UnderWorldVN- Just play the way you like it
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...