Guten Abend,
Ich habe mir aus langeweile eine kleines Script geschrieben, welches das Copy & Pasten in der Windows Console erleichtern soll.
Script
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Include <GuiEdit.au3>
#include <Misc.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <ScrollBarConstants.au3>
Global $iHoehe_Max = 900
Global $iBreite_Max = 900
Global $iHoehe_Min = 300
Global $iBreite_Min = 300
Global $stitle = "Cmd for easy Copy & Paste"
Global $hdll = DllOpen("user32.dll")
$hWindow = GUICreate($stitle,$iBreite_Min,$iHoehe_Min,"","",BitOR($WS_SIZEBOX,$WS_SYSMENU,$WS_MINIMIZEBOX,$WS_MAXIMIZEBOX,$WS_CAPTION))
GUISetBkColor(0x000000)
GUICtrlSetDefColor(0xFFFFFF)
GUICtrlSetDefBkColor(0x000000)
$cEdit = GUICtrlCreateEdit("dir",20,20,260,260,BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT + $GUI_DOCKRIGHT)
GUISetState(@SW_SHOW,$hWindow)
GUIRegisterMsg($WM_GETMINMAXINFO,"MY_WM_GETMINMAXINFO")
[/autoit] [autoit][/autoit] [autoit]While 1
$smsg = GUIGetMsg()
If $smsg = -3 Then Exit
If _IsPressed("0D", $hdll) And WinActive($stitle) Then
$sText = _GUICtrlEdit_GetLine($cEdit,_GUICtrlEdit_GetLineCount($cEdit)-2)
$hDos = Run(@ComSpec & " /c " & $sText, @SystemDir, @SW_HIDE,$STDERR_MERGED)
Local $sRead="",$sTmp=""
While 1
$sTmp = StdoutRead($hDos)
If @error Then ExitLoop
$sRead &= $sTmp
WEnd
If $sRead <> "" Then
$sOld = GUICtrlRead($cEdit)
GUICtrlSetData($cEdit,$sOld & $sRead)
_GUICtrlEdit_Scroll($cEdit,$SB_SCROLLCARET )
Else
_GUICtrlEdit_Undo($cEdit)
EndIf
EndIf
WEnd
Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
$minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
DllStructSetData($minmaxinfo, 7, $iBreite_Min) ; min X
DllStructSetData($minmaxinfo, 8, $iHoehe_Min) ; min Y
DllStructSetData($minmaxinfo, 9, $iBreite_Max) ; max X
DllStructSetData($minmaxinfo, 10, $iHoehe_Max) ; max Y
Return 0
EndFunc ;==>MY_WM_GETMINMAXINFO
Das Script funktioniert auch soweit, aber wenn ich jetzt das Script starte und den Befehl dir ausführe und am Ende einen neuen Befehl hineinschreiben will, wird mir die Eingabe verweigert bzw. ich sehe meine Eingabe nicht.
Ich denke ich habe die maximale Zeilen-Anzahl des Edit's errreicht oder seht ihr in meinem Script einen Fehler?
Vielen Dank für die Hilfe im Voraus
Lg, Fabian