大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
dimiasintegeri=shell(Filename,style,wait,timeout)后面的3个参数是可以省略的具体说明以下PublicSharedFunctionShell(_PathNameAsString,_StyleAsAppWinStyle,_WaitAsBoolean,_TimeoutAsInteger_)AsInteger参数PathName类型:System..::.String必须。String.要履行的程序的名称,和所有必须的参数和命令行开关。PathName也能够包括驱动器和目录路径或文件夹。如果不知道程序的路径,则可使用GetFiles进行定位。例如,可以调用My.Computer.FileSystem.GetFiles(C:\,True,testFile.txt),这将返回驱动器C:\上所有目录中每一个名为testFile.txt的文件的完全路径。
成都创新互联一直在为企业提供服务,多年的磨炼,使我们在创意设计,营销型网站到技术研发拥有了开发经验。我们擅长倾听企业需求,挖掘用户对产品需求服务价值,为企业制作有用的创意设计体验。核心团队拥有超过十年以上行业经验,涵盖创意,策化,开发等专业领域,公司涉及领域有基础互联网服务成都联通服务器托管、成都app软件开发、手机移动建站、网页设计、网络整合营销。
shell "cmd /c dir c:\*.*",1
msgbox("执行完毕")
另外CMD窗口是无法隐藏执行的,当然,你可以换另外一个思路,就是启用一个新线程,然后将线程后台执行CMD语句,这样前台就看不到CMD窗口了
请参考下面的示例
shell "cmd /c dir",1'/c表示执行完即关闭窗口
shell "cmd /k dir",1'/k表示执行完停留
shell "cmd /c dir pause",1'多条语句可用连接
关于cmd的具体用法可以在命令提示符下敲入cmd/?看看
太多了,只列举一些典型的:
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] string]
/C 执行字符串指定的命令然后终断
/K 执行字符串指定的命令但保留
/S 在 /C 或 /K 后修改字符串处理(见下)
/Q 关闭回应
/D 从注册表中停用执行 AutoRun 命令(见下)
/A 使向内部管道或文件命令的输出成为 ANSI
/U 使向内部管道或文件命令的输出成为 Unicode
/T:fg 设置前景/背景颜色(详细信息,请见 COLOR /?)
/E:ON 启用命令扩展(见下)
/E:OFF 停用命令扩展(见下)
/F:ON 启用文件和目录名称完成字符 (见下)
/F:OFF 停用文件和目录名称完成字符(见下)
/V:ON 将 ! 作为定界符启动延缓环境变量扩展。如: /V:ON 会
允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法
在输入时扩展变量,这与在一个 FOR 循环内不同。
/V:OFF 停用延缓的环境扩展。
在代码里直接用Shell命令调用cmd
Private Sub Command1_Click()
Shell "cmd /c ipconfig net user arp -a pause", vbNormalFocus
End Sub
上面这个就是在按钮里面的实例,共运行了3个命令ipconfig 、net user 、 arp -a 然后一个暂停命令pause,每个cmd命令之间用 来连接运行。
加以一个panel用来显示应用程序的,就是放你那个easycap的,代码如下
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Int32, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Int32) As Int32
Private Const WM_SYSCOMMAND As Int32 = H112
Private Const SC_MAXIMIZE As Int32 = HF030
Private Const SC_MINIMIZE As Int32 = HF020
Private Const SC_RESTORE As Int32 = HF120
Public Const SW_HIDE = 0
Public Const SW_SHOW = 5
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Int32, ByVal nCmdShow As Int32) As Int32
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ShellExecute(Me.Panel1.Handle, "open", "c:\windows\system32\cmd.exe", Nothing, ".", SW_HIDE)
System.Threading.Thread.Sleep(50)
Dim h As IntPtr = FindWindow(Nothing, "c:\windows\system32\cmd.exe")
ShowWindow(h, SW_HIDE)
SetParent(h, Me.Panel1.Handle) '嵌到panel1内
SendMessage(h, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
End Sub
把其中的c:\windows\system32\cmd.exe换成你要嵌入的应用程序
VB.NET 里面会有一个main方法表示函数的入口
main方法的参数就是命令行传给它的
shutdown.exe能直接调用是因为你的环境变量有C盘的windows目录
你只要在你程序的输出目录(一般为bin)里面打开命令行输入程序名称.exe就可以直接执行你的窗体
如果你要调试输入命令的效果,你打开你项目的属性,找到调试里面的命令行参数,在里面输入测试参数就能在你main函数里面看到结果了
那如果你想打开任何命令行都可以执行你的窗体程序,那你把你程序的安装目录设置为环境变量,这样就可以直接执行这个命令了
调用c:\1.bat,可以这样:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Shell("cmd.exe /c call c:\1.bat", AppWinStyle.NormalFocus)
End Sub