10

我有一个 C# 应用程序,当用户单击一个按钮时,它将打开具有指定服务器和数据库连接的 SQL Server Management Studio 查询编辑器。我想要做的是能够拥有相同的功能,但使用已经运行的 SSMS 实例(而不是启动新进程)。

到目前为止我的代码:

if (IsProcessOpen("Ssms") == false)
        {
            Process ssms = new Process();
            ssms.StartInfo.FileName = "C:\\Program Files (x86)\\Microsoft SQL Server\\110\\Tools\\Binn\\ManagementStudio\\Ssms.exe";
            ssms.StartInfo.Arguments = "-S " + StaticVariables.Getserver + " -d " + StaticVariables.Getdatabase;
            ssms.Start();
        }
        else
        {
            //In already running SSMS process, open connection to server and database with new query window.
        }
4

2 回答 2

2

就我的研究而言,没有可用于与现有 SSMS 流程交互的 API。(http://stackoverflow.com/questions/2334435/how-do-i-programmatically-open-a-new-tab-in-an-open-instance-of-sql-management-s)

您可以尝试进行涉及 SendKeys 的破解,但这会带来不知道 SSMS 窗口当前状态的缺点(如果它打开了任何活动窗口或任何东西)

如果您可以分享原始要求,我们可能会寻找一些更好的替代方案。

于 2012-10-24T18:09:35.673 回答
0

这个问题快把我逼疯了,我终于发现,当我从“sa”登录改为使用Windows身份验证时,问题就解决了。

于 2020-08-19T14:04:23.233 回答