2009-09-04 3 views
1

を上書きしません。それはUACのダイアログを表示し、昇格し、 "危険な"フォルダにファイルをコピーしますが、既存のファイル(exeファイル)を上書きしません。上昇過程では、私はVista上でShellExecuteExをしてlpVerb =「runasコマンド」を持つ別のホストプロセスから、file_copier.exe、たとえば、上昇プロセスを実行しようとしているファイル

私はここ読んで:UACは、実際に既存のファイルを上書きするが、ある種のキャッシュに新しいファイルを格納していませんhttp://www.codeproject.com/KB/vista-security/UAC__The_Definitive_Guide.aspxを。しかし、私は把握することはできません(その場合)、それを作る方法は、実際には既存のファイルを上書きします。どんな助けもありがとうございます。

+0

あなたはどのフォルダに書き込みますか? –

答えて

3

あなたはvirtualization of file systemについて話しています。あなたのプログラムがWindowsルールを認識していることをWindowsに伝えるには、manifest fileを変更する必要があります。それはちょうど私の間違いだった

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
     <!--The ID below indicates application support for Windows Vista --> 
     <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
     <!--The ID below indicates application support for Windows 7 --> 
     <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
     <!--The ID below indicates application support for Windows 8 --> 
     <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> 
    </application> 
    </compatibility> 
+0

+1:それは役に立ちます!私はちょうど(参照[ここ](http://msdn.microsoft.com/en-us/library/windowsのWindows 8のGUIDである '' "{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" というを追加したいです/desktop/hh848036(v=vs.85).aspx)例えば) – Oleg

0

申し訳ありませんが、みんな:

は、マニフェストに次のテキストを追加します。コードはこのようなものだった:file_copier.exeプロセスが終了する前に実際に

ShellExecuteEx(file_copier.exe); 
LaunchFreshVersionOfApplication(); 

、ShellExecuteExを返さ。したがって、後のプロセスは実行中のファイルを更新できませんでした。あなたの答え、キリルありがとう!

+0

なぜ彼にチェックマークを与えることによってキリルに彼に値する担当者を与えていませんか? –

+0

喜んで、しかし私の評判は9だけであり、投票には15が必要です、申し訳ありません。 –

関連する問題