VB-Homepage Tipp 160

Befehlseingabezeile, analog "Ausführen" bei 32Bit Windows

Nichts ist so gut, als das man es nicht noch besser machen könnte.
Dies trifft insbesondere für diesen Tipp zu, denn diesen hier vorzustellen war fest geplant, da der Einsatz einer Befehlszeile auch in eigenen Projekten des öfteren durchaus sinnvoll sein kann. Nun habe ich aber in den letzten Tagen etwas gefunden, das die selbe Funktionalität beinhaltet, aber anderes an dies Problematik heran geht.

Ersteres erzeugt eine eigene Befehlseingabe (für DOS und Windows) und Zweiteres nutzt die systemeigene Befehlszeile -Ausführen- , allerdings auch mit der Option eigene Infotexte einzubinden.

Da die Nutzung der systemeigenen Befehlszeile nur Bestandteil eines Tipps sein soll, der undokumentierte Funktionen der shell32.dll behandelt und demnächst als Tipp erscheint und es desweiteren ja durchaus gefragt sein kann, sich etwas eigenes zu kreieren möchte ich den Tipp hier also dennoch vorstellen.
Allen anderen sei also der Tipp zur shell32 empfohlen.

Prompt.vbp
Form=PROMPT.Frm
ProjWinSize=77,512,249,227
ProjWinShow=2
IconForm="PrompterMain"
HelpFile=""
Title="PROMPT"
ExeName32="PROMPT.exe"
ExeName="WINPRMPT.EXE"
Name="Project1"
HelpContextID="0"
StartMode=0
VersionCompatible32="0"
VersionCompatible="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0

Prompt.frm
VERSION 4.00
Begin VB.Form PrompterMain
BorderStyle = 1 'Fixed Single
Caption = "VB-Homepage Tipp"
ClientHeight = 1725
ClientLeft = 2505
ClientTop = 2835
ClientWidth = 5595
ClipControls = 0 'False
ControlBox = 0 'False
Height = 2130
Left = 2445
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 1725
ScaleWidth = 5595
Top = 2490
Width = 5715
Begin VB.CommandButton Command1
Caption = "Exit"
Height = 375
Left = 5040
TabIndex = 1
Top = 1200
Width = 495
End
Begin VB.ComboBox Combo1
Height = 315
Left = 360
TabIndex = 0
Text = "<Befehlseingabe>"
Top = 600
Width = 4815
End
Begin VB.Label Label2
BackStyle = 0 'Transparent
Caption = "Entdeckt auf Inside VB"
Height = 255
Left = 120
TabIndex = 3
Top = 1440
Width = 1695
End
Begin VB.Label Label1
BackStyle = 0 'Transparent
Caption = "Befehlszeileninterpreter für DOS [ attrib *.* -a ] und Windows [ run notepad ]"
Height = 255
Left = 120
TabIndex = 2
Top = 120
Width = 5415
End
End
Attribute VB_Name = "PrompterMain"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Private Function parse_command(cString As String)
Dim nRet As Integer
Dim RetVal As Double
Dim cupper As String
nRet = 0
On Error GoTo Errorhandler
If Len(cString) > 0 Then
If UCase(Left(cString, 2)) = "CD" Then
If Not Len(cString) = 2 Then ChDir Mid$(cString, 3)
Else
'DOS Aufruf
If UCase(Left(cString, 3)) <> "RUN" Then
cupper = Chr$(34) & cdir & Chr$(34) + "prompt.bat " & UCase(cString) 'win95
'für win3.1 cupper = cdir + "windos.bat " & UCase(cString)
RetVal = Shell("command.com /c " & cupper, 1)
Else
'Windows Aufruf
cupper = Chr$(34) & Mid$(cString, 5) & Chr$(34) 'win95
'für win3.1 cupper = Mid$(cString, 5)
RetVal = Shell(cupper, 1)
End If
End If
End If
Exit Function
Errorhandler:
MsgBox "Windowsanweisung nicht ausführbar", 16, "Eingabefehler"
Resume Next
End Function
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Combo1.AddItem Combo1.Text
parse_command (Combo1.Text)
Combo1.Text = ""
End If
'hier ggf. Befehle in Datei auslagern, damit sie bei erneutem
'Start wieder verfügbar sind.
End Sub
Private Sub Command1_Click()
Unload Me
End
End Sub
Private Sub Form_Load()
cdir = App.Path + "\"
End Sub
Prompt.bat
@Echo off
echo.
echo DOS - Befehlszeileninterpreter
echo ... Ihre Anweisung wird abgearbeitet
echo.
echo.
%1 %2 %3 %4 %5 %6 %7 %8 %9
echo.
echo.
pause

Um den Code zu nutzen, erstellen Sie sich mit einem Editor Dateien, die Sie wie angegeben benennen. Starten Sie nun die *.vbp Datei oder rufen sie über Datei/Öffnen aus Ihrer VB-Anwendung heraus auf.

Tipp-Download

Quelle : Inside VB

Zurück zur Übersichtsseite