Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; <COMPILER: v1.1.32.00>
- #SingleInstance Force
- SetworkingDir, %A_workingdir%
- ;-------- saved at Najeeb 2021-12-12 17:36 UTC --------------
- cmd=
- (
- HELP /?
- TYPE DATA\ALL.ls
- TYPE DATA\ATTRIB.ls
- TYPE DATA\CMD.ls
- TYPE DATA\COPY.ls
- TYPE DATA\DEL.ls
- TYPE DATA\DIR.ls
- TYPE DATA\FIND.ls
- TYPE DATA\HELP.ls
- TYPE DATA\MD.ls
- TYPE DATA\NET.ls
- TYPE DATA\NIR.ls
- TYPE DATA\REN.ls
- TYPE DATA\START.ls
- )
- cmdx:="" ;- first command for test
- ;cmdx:="ping autohotkey.com -n 4"
- #warn
- #noenv
- name1:="NAJEEB CMD"
- global name1
- e:=""
- CPX:="cp" . DllCall("GetOEMCP", "UInt") ;- get CODEPAGE e.g. CP850
- ;setworkingdir,%a_scriptdir%
- Gui,1:default
- Gui,1: -DPIScale
- Gui,1:Color,Black,Black ; GUI black / EDIT is BLACK
- wa:=A_screenwidth,ha:=A_screenHeight,xx:=100
- ;- maybe change fontsize
- ;============ GUISIZEx DPIx 4Kx 3840*2160 is 100% ============
- if (wa=3840)
- Gui,1:Font,s16 cYellow,Lucida Console
- ;============ GUISIZEx DPIx FHD 1920*1080 is 100% ============
- else if (wa=1920)
- Gui,1:Font,s12 cYellow,Lucida Console
- else
- Gui,1:Font,s12 cYellow,Lucida Console
- ;=============================================================
- x:=(wa*1)/xx,y:=(ha*1)/xx,w:=(wa*70)/xx,h:=(ha*60)/xx
- Gui, Add, Edit, x%x% y%y% w%w% h%h% vED1,%cmd% ;- here the output
- x:=(wa*1)/xx,y:=(ha*63)/xx,w:=(wa*65)/xx,h:=(ha*6)/xx
- Gui, Add, Edit, x%x% y%y% w%w% h%h% vED2,%cmdx% ;- added CMDx command above for test / write command here and then ENTER
- x:=(wa*67)/xx,y:=(ha*63)/xx,w:=(wa*6)/xx,h:=(ha*3.2)/xx
- Gui, add, Edit, x%x% y%y% w%w% h%h% vED3, ;- write ENDED when command finished
- x:=(wa*67)/xx,y:=(ha*67)/xx,w:=(wa*6)/xx,h:=(ha*3.2)/xx
- Gui,add,button, x%x% y%y% w%w% h%h% gPrintx, PRINT ;- write to file last commands and outputs
- x:=(wa*2)/xx,y:=(ha*2)/xx,w:=(wa*75)/xx,h:=(ha*75)/xx
- Gui, Show,x%x% y%y% w%w% h%h%,%name1%
- gosub,a0
- GuiControl,1: Focus,ED2
- ;send,^{end}
- return
- ;-------------------------
- Guiclose:
- Exitapp
- esc::exitapp
- ;-------------------------
- ~$enter::
- gosub,a0
- return
- ;=========================================================
- AddOutputInGui(output) {
- Control, EditPaste, %output%`r`n, Edit1,%name1% ;- display output in 1st EDIT
- }
- ;=========================================================
- A0:
- Gui,1:submit,nohide
- ed2a:="cmd /c " . ed2
- ;CmdRet(ED2a, Func("AddOutputInGui"),CPX)
- xxc:=cmdret(ED2a, Func("AddOutputInGui"),CPX)
- e .="`r`n===============================`r`n" . ed2 . " =`r`n-------------------------------`r`n" . xxc . "`r`n===============================`r`n"
- e := RegExReplace(e, "((^)|\R)\h*(?=\R|$)(?(2)\R)") ;- remove empty lines
- gosub,clear
- return
- ;-------------------------
- CLEAR:
- Gui,1:submit,nohide
- Guicontrol,1:,ED2,
- Guicontrol,1:,ED3,ENDED
- GuiControl,1: Focus,ED2
- return
- ;-------------------------
- printx:
- f1=%a_desktop%\%a_now%_DOS_SCREEN_OUTPUT.txt
- Gui,1:submit,nohide
- if e<>
- {
- fileappend,%e%,%f1%,utf-8
- run,%f1%
- e:=""
- }
- return
- ;=========================================================
- CmdRet(sCmd, callBackFuncObj := "", encoding := "CP0")
- {
- static HANDLE_FLAG_INHERIT := 0x00000001, flags := HANDLE_FLAG_INHERIT
- , STARTF_USESTDHANDLES := 0x100, CREATE_NO_WINDOW := 0x08000000
- hPipeRead:=""
- hPipeWrite:=""
- sOutput:=""
- DllCall("CreatePipe", "PtrP", hPipeRead, "PtrP", hPipeWrite, "Ptr", 0, "UInt", 0)
- DllCall("SetHandleInformation", "Ptr", hPipeWrite, "UInt", flags, "UInt", HANDLE_FLAG_INHERIT)
- VarSetCapacity(STARTUPINFO , siSize := A_PtrSize*4 + 4*8 + A_PtrSize*5, 0)
- NumPut(siSize , STARTUPINFO)
- NumPut(STARTF_USESTDHANDLES, STARTUPINFO, A_PtrSize*4 + 4*7)
- NumPut(hPipeWrite , STARTUPINFO, A_PtrSize*4 + 4*8 + A_PtrSize*3)
- NumPut(hPipeWrite , STARTUPINFO, A_PtrSize*4 + 4*8 + A_PtrSize*4)
- VarSetCapacity(PROCESS_INFORMATION, A_PtrSize*2 + 4*2, 0)
- if !DllCall("CreateProcess", "Ptr", 0, "Str", sCmd, "Ptr", 0, "Ptr", 0, "UInt", true, "UInt", CREATE_NO_WINDOW
- , "Ptr", 0, "Ptr", 0, "Ptr", &STARTUPINFO, "Ptr", &PROCESS_INFORMATION)
- {
- DllCall("CloseHandle", "Ptr", hPipeRead)
- DllCall("CloseHandle", "Ptr", hPipeWrite)
- throw Exception("CreateProcess is failed")
- }
- DllCall("CloseHandle", "Ptr", hPipeWrite)
- VarSetCapacity(sTemp, 4096), nSize := 0
- while DllCall("ReadFile", "Ptr", hPipeRead, "Ptr", &sTemp, "UInt", 4096, "UIntP", nSize, "UInt", 0) {
- sOutput .= stdOut := StrGet(&sTemp, nSize, encoding)
- ;sOutput .= stdOut := StrGet(&sTemp, nSize)
- ;sOutput .= stdOut := StrGet(&sTemp, nSize, CPX)
- ( callBackFuncObj && callBackFuncObj.Call(stdOut) )
- }
- DllCall("CloseHandle", "Ptr", NumGet(PROCESS_INFORMATION))
- DllCall("CloseHandle", "Ptr", NumGet(PROCESS_INFORMATION, A_PtrSize))
- DllCall("CloseHandle", "Ptr", hPipeRead)
- Return sOutput
- }
- ;--------------------- END SCRIPT---------------------------------
- #R::Reload
- #S::Suspend
- #P::Pause
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement