vb如何用代码创建vb中command和form?


项目
06/09/2015
Visual Studio 2013 中已弃用 Visual Studio 的外接程序。 你应该升级外接程序到 VS 的扩展包。 有关升级的更多信息,请参见 。常见问题:将外接程序转换为 VSPackage 扩展当使用**“外接程序向导”创建外接程序并选择将其显示为命令的选项时,默认情况下该命令位于“工具”菜单。 但是,如果创建外接程序时跳过该选项,则只需再次运行“外接程序向导”**,选中该选项,然后将现有的代码复制到新的外接程序中。即使不可能完成,但是下面的过程会完成相同的任务。备注显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。这些过程是在“常规开发设置”处于活动状态时开发的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关详细信息,请参阅在 Visual Studio 中自定义开发设置。向现有外接程序添加菜单命令在外接程序的 Connect 类中,添加 Implements IDTCommandTarget。
它使您可以访问创建命令时所需的 IDTCommandTarget 命令接口。
在 OnConnection 过程中,添加以下内容:
Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
If connectMode = ext_ConnectMode.ext_cm_Startup Then
Dim commands As Commands2 = CType(_applicationObject.Commands, _
Commands2)
Dim toolsMenuName As String
Try
Dim resourceManager As System.Resources.ResourceManager = _
New System.Resources.ResourceManager _
("MyAddin1.CommandBar", System.Reflection.Assembly. _
GetExecutingAssembly())
Dim cultureInfo As System.Globalization.CultureInfo = New _
System.Globalization.CultureInfo(_applicationObject. _
LocaleID)
toolsMenuName = resourceManager.GetString(String.Concat _
(cultureInfo.TwoLetterISOLanguageName, "Tools"))
Catch e As Exception
toolsMenuName = "Tools"
End Try
Dim commandBars As CommandBars = _
CType(_applicationObject.CommandBars, CommandBars)
Dim menuBarCommandBar As CommandBar = _
commandBars.Item("MenuBar")
Dim toolsControl As CommandBarControl = _
menuBarCommandBar.Controls.Item(toolsMenuName)
Dim toolsPopup As CommandBarPopup = CType(toolsControl, _
CommandBarPopup)
Try
Dim command As Command = _
commands.AddNamedCommand2(_addInInstance, "MyAddin1", _
"MyAddin1", "Executes the command for MyAddin1", True, _
59, Nothing, CType(vsCommandStatus. _
vsCommandStatusSupported, Integer) + _
CType(vsCommandStatus.vsCommandStatusEnabled,
_
Integer), vsCommandStyle.vsCommandStylePictAndText, _
vsCommandControlType.vsCommandControlTypeButton)
command.AddControl(toolsPopup.CommandBar, 1)
Catch argumentException As System.ArgumentException
End Try
End If
在 Visual Studio 中加载(“连接”)外接程序时,此代码将执行。 该代码确定外接程序是否使用 ext_cm_UISetup 的 ext_ConnectMode 值加载。 这意味着外接程序自安装后首次被启动。 如果为 true,则使用 AddNamedCommand 方法在**“工具”**菜单上为该外接程序创建命令。 有关详细信息,请参阅如何:添加和处理命令。
将下面的两个过程添加到 Connect 类中。
更新该命令的可用性时调用 QueryStatus 方法。 调用该命令时调用 Exec 方法。
Public Sub QueryStatus(ByVal commandName As String,
_
ByVal neededText As vsCommandStatusTextWanted, ByRef status As _
vsCommandStatus, ByRef commandText As Object) Implements _
IDTCommandTarget.QueryStatus
If neededText = vsCommandStatusTextWanted. _
vsCommandStatusTextWantedNone Then
If commandName = "MyAddin1.Connect.MyAddin1" Then
status = CType(vsCommandStatus.vsCommandStatusEnabled _
+ vsCommandStatus.vsCommandStatusSupported, _
vsCommandStatus)
Else
status = vsCommandStatus.vsCommandStatusUnsupported
End If
End If
End Sub
Public Sub Exec(ByVal commandName As String, ByVal executeOption _
As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As _
Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
handled = False
If executeOption = vsCommandExecOption. _
vsCommandExecOptionDoDefault Then
If commandName = "MyAddin1.Connect.MyAddin1" Then
handled = True
Exit Sub
End If
End If
End Sub
每次实现 IDTCommandTarget 时,必须添加这两个过程。 一个执行此操作的快速方法是在编辑器左上角的**“类名”下拉框中选择 IDTCommandTarget。 在右上角的“方法名”**下拉框中依次选择各个过程。 这将用正确的参数创建可以添加代码的必需的空过程。
用户单击菜单命令时调用 Exec 过程,因此在此处插入要在此时执行的代码。
任务如何:在“工具”菜单上公开外接程序 (Visual C#)如何:使用外接程序管理器控制外接程序如何:创建外接程序概念自动化对象模型图表
[在vb中如何调用autocad进行打印]''''取得当前文档对象 VB a中的方法,如果是在VB中时需要从顶层对象开始引用取得) Dim currentDoc As AcadDocument Set currentDoc = ThisDrawing''''文档的模型空间 Dim sp A要看你调用的是DOS什么命令首先DOS命令分内部命令和外部命令,内部命令是DOS启动后驻留在内存中可直接调用的,比如DIR、CD等,外部命令是需要在磁盘上有可执行文件的,扩展名为COM或EXE,比如CHKDSK、FORMAT等。VB里调用DOS命令可用Shell函数。Shell 有2个参数,使用格式:Shell(程序文件标识符 [,启动程序后的窗口式样])程序文件标识符 ---- 可以包括程序的盘符、路径、文件名,还可以带有该程序的文档文件启动程序后的窗口式样 ---- 该程序启动后的窗口,该参数是个可选参数,如果不提供该参数则程序是以具有焦点的最小化窗口来执行的。Shell函数的返回值为Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。窗口样式命名参数有以下这些值:常量 值 描述vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。调用举例:1.要启动windows里的“记事本”软件,这个文件名为 notepad.exe ,通常安装在C:\Windows\System32 文件夹里,那么你可以这样写启动它的代码:v = Shell("C:\Windows\System32\notepad.exe",1)2.如果在启动“记事本”软件的同时,希望打开一个已经存在的文本文件,可以这样:v = Shell("C:\Windows\System32\notepad.exe ABC.TXT",1)3.如果要调用内部命令创建目录C:\TEMPv = Shell("cmd /c MD C:\TEMP",1)vb中用shell函数都能调用那些程序?vb中调用SHELL用法一. 调用系统“创建快捷方式”向导是否为VB不支持创建快捷方式而于着急呢?虽然 您可以调用vb5stkit.Dll中的fCreateShellLink函 数,但它是为安装程序设计的,快捷方式的默认路径 总是从当前用户的“\Start Menu\Programs”开始,也 就是说,如果您的Windows95装在C盘上,您无法通过 fCreateShellLink函数把快捷方式创建到D盘上去。现在,给大家说明一种极为方便、巧妙的方法: 用Shell语句调用系统“创建快捷方式”向导。新建一个项目,在窗体上放一个按钮,双击此按 钮,加入以下代码:Private Sub Command1_Click()Open App.Path & "\temp.lnk" For Output As #1Close #1 '以上两句在程序所在目录建立一 个临时文件Shell "Rundll32.exe AppWiz.Cpl,NewLinkHere"& App.Path & "\temp.lnk"End Sub(注意:Shell语句中NewLinkHere后面跟着一个 空格才是引号,否则将出错。)运行程序,按一下命令按钮,怎么样?“创建快 捷方式”向导出现了,如果创建成功,快捷方式将取 代临时文件temp.lnk的位置,如果选取消,temp.lnk 也会自动消失。当然,您可以在硬盘的任意位置建立 temp.lnk。好,现在又可以为您的程序增添一项新功 能了。Enjoy!二. Rundll32.exe的用途我们知道,用Shell语句只能调用可执行文件,即 exe、com、bat和pif文件,有时我们想要调用其他一 些系统功能该怎么办呢?此时,Windows提供的 Rundll32.exe可大显身手了。下面我们来认识一下这 些用法,也许会给您带来一点惊喜。1.要打开设置系统时间的控制面板文件 (Timedate.cpl),只需运行如下代码:Shell "Rundll32.exeShell32.dll,Control_RunDLL Timedate.cpl"至于打开其他控制面板文件,相信您一定能够举 一反三,尝试一下,换个文件名就成了。2.要运行某一快捷方式(*.lnk)则可以用以下 代码:She11 "Rundll32.exe url.dll, FileProtocolHandler X" (X代表要运行的文件,包括 路径,下同。3. 也可以这样写来打开ActiveMovie控制:Shell "RUNDLL32.EXE amovie.ocx,Rundll",1而用Shell "RUNDLL32.EXE amovie.ocx,Rundll /play X",1 将直接播放媒体文件。4. Shell "rundll32.exe desk.cpl,InstallScreenSaver X”当然是安装屏幕保 护啦,如果你写了一个屏幕保护程序,那么可以在安 装程序中写上它,而不一定要装到system目录下。顺 便提一下,VB不是自捞一个“Application Setup Wizard”么?它的VB源代码都在安装目录下的 “\setupkit\setup1”中放着呢,好好把它研究一下。 你完全能做出富有个性的安装程序来。5.按住shift键,右击某一文件,菜单中会出现 “打开方式”选项,这也许已不是什么秘密。但现在, 用shell "rundll32.exe shell32.dll OpenAs_RunDLL X" 便能直接调用“打开方式”框。6. 甚至能用这样一句来打印文件(包括HTML所 支持的所有文本与图像格式):Shell "rundll32.exe MSHTML.DLL,PrintHTML X”, 1vb关于shell调用cmd执行命令VB中Shell执行CMD命令使用如下代码1Shell "cmd.exe /c 你要执行的命令"其中要执行的命令中需要注意空格问题 如果一个参数中有空格就需要使用双引号引起来,双引号在VB字符串中使用两个双引号("")表示。例如:1Shell "cmd.exe /c copy ""d:\ab c.txt"" ""d:\a bc.txt"""Shell 函数执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。语法Shell(pathname[,windowstyle])Shell 函数的语法含有下面这些命名参数:部分 描述pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。windowstyle 命名参数有以下这些值:常量 值 描述vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。说明如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。本文地址:http://www.docexcel.net/show/23_77125.html以下为关联文档:如何在vb中调用 api函数VB不能直接调用Win API,要先声名然后在调用。 声明 API 过程 ,比如声名SetWindowTextA 首先,在模块的声明部分对过程进行声明: Private Declare Function SetWindowText Lib "use...在VB中如何调用API函数' 声明 API 过程 ,比如声名SetWindowTextA '首先,在模块的声明部分对过程进行声明: Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As...在VB程序中函数如何调用小示例,在vb6.0中判断输入的数是否为质数,用Function过程实现,希望对楼主有帮助 Option Explicit Private Sub Form_Click() Dim i As Integer Dim IsZS As Boolean i = Val(In...DOS命令下的删除呵呵 这是我进入回答的第一个问题哦 希望我的处女作(答案)可以帮助你解决问题o(∩_∩)o... 首先说删除文件的问题,我想一楼的小海同志已经描述得相当的全面了。在这里我就不赘述...怎么在DOS中删除命令删除很简单:不知道你说的dos不是指cmd,如果是请往下看: 一般情况下,在cmd 中输入 gpedit.msc 是可以打开组策略的,因为一般默认的cmd目录是 c:\windows\system32\ 而gpedit.msc这...VB调用按键精灵的命令VB调用按键精灵的命令,vb按键精灵实现按键盘上同一个键让循环暂停与执行:1 VB里引用 那个QMDispatch.dll 2 在系统中用regsvr32命令注册 DLL 注.QMDispatch.dll是按键精灵中...在DOS中恢复系统用到的命令有哪些在DOS中恢复系统用到的命令有哪些,dos恢复删除命令:一般都是在DOS下用ghost备份或者恢复! 键入HELP命令看一下有你想要的命令没有 1)DIR--显示指定路径上所有文件或目录的信息...如何在vb的模块中调用窗体中文本框的值如何在vb的模块中调用窗体中文本框的值,VB中列表框List赋值并在文本框输出:窗体:form1 模块:module1 Form1中创建文本输入text1 Form1内容如下: Private Sub Command1_Click() Ms...VB NET如何使用DOS命令VB NET如何使用DOS命令,vb中怎么调用批处理文件:运行一个可执行程序,并且如果该程序仍然在运行,则返回一个包含该程序的进程 ID 的整数。 Public Function Shell( _ ByVal PathN...

我要回帖

更多关于 vb中command和form 的文章

 

随机推荐