Как сделать системный вызов и перезагрузить файл в макросе Visual Studio 2010? - PullRequest
0 голосов
/ 22 сентября 2010

Когда вы читаете это, хотя у меня довольно хороший опыт работы с C ++ и Java, помните, что я начинающий, когда дело доходит до VB. :)

Вот одна идея о том, что я хочу сделать:

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module RecordingModule


    Sub TemporaryMacro()
// what is the right way to declare and define filename?
        dim String filename = DTE.ActiveDocument.FullName();
        DTE.ActiveDocument.Save()
// how do I make a system call, I'm pretty sure this is not correct
        System("astyle.exe " + filename);
// reload the formatted file, but how?
    End Sub
End Module

В качестве альтернативы, если я не могу перезагрузить его, я мог бы сделать что-то вроде:

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module RecordingModule


    Sub TemporaryMacro()
// what is the right way to declare and define filename?
        dim String filename = DTE.ActiveDocument.FullName();
        DTE.ActiveDocument.Save()
        DTE.ActiveDocument.Close()
// how do I make a system call, I'm pretty sure this is not correct
        System("astyle.exe " + filename);
        DTE.ExecuteCommand("File.Open",filename);
    End Sub
End Module

Мне это не очень нравится, так как это приведет к закрытию / открытию окон, и я, вероятно, потеряю всю свою историю отмен.

Кто-нибудь может дать мне какое-нибудь руководство здесь?

Спасибо!

1 Ответ

1 голос
/ 22 сентября 2010

Системный вызов может быть выполнен с помощью System.Diagnostics.Process.Start("executable.exe", "args") Если измененный Документ в данный момент открыт, Visual Studio спросит вас, хотите ли вы его перезагрузить.Если закрыть, если перед операцией вы можете перезагрузить его с помощью DTE.ItemOperations.OpenFile("filename")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...