10

ユーザーがボタンをクリックすると、指定されたサーバーとデータベース接続で SQL Server Management Studio クエリ エディターを開く C# アプリケーションがあります。私がやりたいのは、これと同じ機能を使用できるようにすることですが、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 に答える