2017-03-10 9 views
0

test.mdbファイルを開く必要があります。 パスはフルパスそれはC#のプログラムのexeファイルに対するC#process.ファイル名を開始し、引数を渡す

に位置しているものは何でもディレクトリから構築しなければならない私は、バッチで/ CMDスイッチの場合、この/ CMD「myargumentに」 のように渡される引数の行を渡す必要があります作業を行うには、インストールされているMSACCESS.EXEへのフルパスを含める必要があります

MSACCESS> EXEに完全パスを渡してから、test.mdbに続いて引数を指定する方法はありません。

、私は作品次のバッチの文字列を掲載してい手助けしようとするが、私は、C#を必要とするために、

"C:\プログラムファイル\ Microsoft Officeの\ OFFICE10 \ MSACCESS.EXE"「C:\ DocumentsとSettings \ユーザー\試験例フォルダの\ TEST.MDB」/ CMD 『myargumentに』

明確な二つの重要なポイントにするには:

TEST.MDBのフルパスが自動的に起動したC#のexeファイルによって決定されなければならない、それはC#のEXEファイルになりますtest.mdbを使用します。

MSACCESS> EXEパスは、C#exeプログラムがOffice 10、Office 12などのバージョンを自動的にチェックし、これが優れていると思われる場合は、インストールされているMSACCESS.EXEのフルパスでなければなりません。

これは、これまでの私のコードです:

var filePath = @"test.mdb"; 

Process process = new Process(); 
process.StartInfo.FileName = filePath; 
process.StartInfo.Arguments = "/cmd " + "\"MyArgument\""; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
process.Start(); 
+0

へのパスdbファイルが引数の1つになります。 変更 'VAR filePathに= @ "TEST.MDB";' に '文字列filePathに=新しいSystem.IO.FileInfo( "TEST.MDB"): – juharr

+0

TEST.MDBフルパスを取得するに十分に簡単です.FullName; ' – Mvarta

+0

juharr&Mvarta私はそれを試みましたが、うまくいきません。私の投稿のすべてのポイントに対処する作業コードの例を投稿すると、C#に新しいImをコンパイルし、それを動作させるようにしてください。私のすべての点に対処するコードの実例は、私にとって良いことになるでしょう。 –

答えて

1

私はあなただけで、これはあなたのために働く必要があり、オフィスのバージョンを検出心配する必要はないと思う:

 string filepath = '"' + Directory.GetCurrentDirectory() + "\\test.mdb" + '"'; 
     string acc_cmd_arg = "HELLO"; 

     using (System.Diagnostics.Process process = new System.Diagnostics.Process()) { 
      process.StartInfo.FileName = "msaccess.exe"; 
      process.StartInfo.Arguments = filepath + " /cmd " + acc_cmd_arg; 
      process.Start(); 
     } 
+0

私はそれを試しただけで動作します、ありがとう。 –

関連する問題