2011-09-15 4 views
0

私はexe(test.exe)があります。これは32ビットのC++で書かれています(ユニコード文字セット)。このexeは復元操作を実行します。手順は次のとおりです。speing exeが権限を継承しない

  1. チェック見通しのインストールと負荷msmapi32.dll
  2. 指定したユーザーの受信トレイにサブフォルダを作成します。
  3. emlファイルをサブフォルダにインポートしています。

これらの操作は、完全なアクセス権を与えられた一時的なユーザーを使用して行われます。

このexeは正常に実行されています。問題は、C#Process.start()を使用してこのexeを生成しようとすると、[MAPI_E_FAILONEPROVIDER]で失敗し、 "createstoreentryid"を呼び出しています。

お願いします。

+0

UNC資格情報を使用してください。 – 62071072SP

+0

マシンはドメイン管理者としてログインしています。 UNC資格情報の使用方法を説明できますか? – inmar

答えて

0
 using (UNCAccessWithCredentials unc = new UNCAccessWithCredentials()) 
     { 
      if (unc.NetUseWithCredentials(path, 
              userName, 
              domain, 
              passWord,textFile)) 
      { 
       System.Diagnostics.Process.Start(path); 
      } 

     } 
+0

私はその共有にアクセスしたくありません。 Mapiは他のユーザーのメールボックスにログオンするためのアクセス許可が必要です。私は別のC + +のコンソールアプリケーションを作成して、exeファイルを正常に生成してみました。ここで問題は、C#から同じexeを産んでいます。 – inmar

+0

@inmar ok私は今あなたが問題を解決するために管理したかどうかを理解していますが、これを見ないとhttp://stackoverflow.com/questions/3513830/process-start-slow-when-spawning-more-new-processes – 62071072SP

+0

問題が見つかりました。これで、process.start()を使用してexe形式のC#を生成することができました。 問題:C++ exeがUnicode文字セットを使用していました。私はprj設定で設定したマルチキャラクターに変更しました。 ありがとう – inmar

関連する問題