我对vs.net宏的应用

来源:互联网 发布:编c语言用什么软件 编辑:程序博客网 时间:2024/06/16 13:38

vs.net宏的功能很是强大,很有意思。下面是我使用时写的一些宏。当然常用的宏还可以定义自己的快捷键。

1.自动添加javascript脚本

    Sub Add_javascript()
        Dim AddStr As String
        AddStr = "      <script language=""javascript"">" + Chr(13)
        AddStr += " " + Chr(13)
        AddStr += "   function check()" + Chr(13)
        AddStr += "   {" + Chr(13)
        AddStr += "}" + Chr(13)
        AddStr += "</script>"

        DTE.ActiveDocument.Selection.Text = AddStr
        DTE.ActiveDocument.Selection.LineUp(False, 2)
        DTE.ActiveDocument.Selection.EndOfLine()
        DTE.ActiveDocument.Selection.NewLine()
        DTE.ActiveDocument.Selection.Indent()
    End Sub 

2.加裁调试,参考例子里的。我用的vs2003.刚才运行后停止太快了,vs报告发生错误,是否发送错误?。


    Sub AttachToDebug()
        Dim attached As Boolean = False

        Dim proc As EnvDTE.Process
        For Each proc In DTE.Debugger.LocalProcesses
            If (Right(proc.Name, 13) = "aspnet_wp.exe") Then
                proc.Attach()
                attached = True
                Exit For
            End If
        Next

        If attached = False Then
            MsgBox("process aspnet_wp.exe is not running")
        End If

3.Asp_regiis 运行方便一点,(安装 ASP.NET,.net有问题可以试一下)

    Sub Asp_regiis()
        DTE.ExecuteCommand("View.CommandWindow")
        DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Activate()
        DTE.ExecuteCommand("Tools.Shell", "cmd /c ""C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Aspnet_regiis.exe -i""")

    End Sub

 

4.ping

    Sub ping()

        System.Diagnostics.Process.Start("cmd.exe", "/c ping 192.168.0.1")
    End Sub

下面的也可以,麻烦一点

Sub ping()

        DTE.ExecuteCommand("View.CommandWindow")
        DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Activate()
        DTE.ExecuteCommand("Tools.Shell", "cmd /c ping 192.168.0.1")

End Sub

5.rar压缩

    Sub Rar(ByVal SFile, ByVal DFile)
        Dim RarPath As String = """C:/Program Files/WinRAR/rar.exe"""
        Dim ExeStr As String = "cmd /c  " + RarPath + " a -k -s -m1 " + DFile + " c:/MyMacros.vsmacros"
        DTE.ExecuteCommand("View.CommandWindow")
        DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Activate()
        DTE.ExecuteCommand("Tools.Shell", "cmd /c copy """ + SFile + """  c:/MyMacros.vsmacros")
        System.Threading.Thread.Sleep(1000)
        DTE.ExecuteCommand("Tools.Shell", ExeStr)

        '' "rar a -k -s -m1 c:/1.rar c:/1.xls"
    End Sub

    Sub testRar()
        Rar("c:/1.xls", "c:/2.rar")

    End Sub

6.FTP自动压缩文件并上传

 Sub FtpUpload()

        Rar("D:/lcw/我的文档/Visual Studio Projects/VSMacros71/MyMacros/MyMacros.vsmacros", "c:/mymacros.rar")
        System.Threading.Thread.Sleep(3000)
        DTE.ItemOperations.NewFile("常规/文本文件")
        Dim FtpStr = "open 192.168.0.1" + Chr(13)
        FtpStr += "username" + Chr(13)
        FtpStr += "password" + Chr(13)
        FtpStr += "put ""c:/mymacros.rar""" + Chr(13)
        FtpStr += "by" + Chr(13)

        DTE.ActiveDocument.Selection.Text = FtpStr
        DTE.ActiveDocument.Save("C:/TextFile1.dat")
        DTE.ExecuteCommand("Window.CloseDocumentWindow")
        DTE.ActiveWindow.Close(vsSaveChanges.vsSaveChangesNo)

        DTE.ExecuteCommand("View.CommandWindow")
        DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Activate()

        System.Threading.Thread.Sleep(1000)
        DTE.ExecuteCommand("Tools.Shell", "ftp -s:c:/TextFile1.dat")
        'DTE.ExecuteCommand("Tools.Shell", " c:/tel.txt")
        System.Threading.Thread.Sleep(1000)
        DTE.ExecuteCommand("Tools.Shell", "cmd /c del c:/TextFile1.dat")
        DTE.ExecuteCommand("Tools.Shell", "cmd /c del c:/mymacros.rar")
        DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Close()

    End Sub

7.代码中选择sql语句运行宏后输出查询结果。查询时间长的话会出错,最好是写判断查询的进程是否结束,结束再显示查询结果。

    Sub SqlQuery()

        Dim sql As String = "isqlw -S SERVER -d databasename -U username -P password -i c:/sqlin.txt -o c:/sqlout.txt"
        Dim selection As TextSelection = DTE.ActiveDocument.Selection()
        If selection.Text <> "" Then
            Dim sw As StreamWriter
            sw = File.CreateText("c:/sqlin.txt")
            sw.WriteLine(selection.Text)
            sw.Close()

            DTE.ExecuteCommand("View.CommandWindow")
            System.Threading.Thread.Sleep(1000)

            DTE.ExecuteCommand("Tools.Shell", sql)
            System.Threading.Thread.Sleep(3000)
            ''open

            DTE.ItemOperations.OpenFile("C:/sqlout.txt")
            System.Threading.Thread.Sleep(1000)
            File.Delete("c:/sqlin.txt")

            DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Close()
            File.Delete("c:/sqlout.txt")
        Else
            MsgBox("select sql to query")
        End If

    End Sub

 

8.打开编译临时目录

    Sub Temp_Path()
        DTE.ExecuteCommand("View.CommandWindow")
        DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Activate()
        DTE.ExecuteCommand("Tools.Shell", "explorer ""C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files""")

    End Sub

9.杀掉asp.net进程,并删除编译临时目录

    Public myProcesses() As System.Diagnostics.Process
    Public myProcess As System.Diagnostics.Process

    Sub Kill_Asp()
        Dim a As String

        'myProcesses = System.Diagnostics.Process.GetProcessesByName("aspnet_wp.exe")
        myProcesses = System.Diagnostics.Process.GetProcesses()
        For Each myProcess In myProcesses
            a = myProcess.ProcessName()
            If a = "aspnet_wp" Then
                myProcess.Kill()
            End If
        Next
        System.Threading.Thread.Sleep(3000)
        System.IO.Directory.Delete("C:/WINNT/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/xpsweb", True)

    End Sub

 

原创粉丝点击