2012-04-26 14 views
0

私はこのチュートリアルhttp://blogs.msdn.com/b/codefx/archive/2010/09/14/writing-windows-shell-extension-with-net-framework-4-c-vb-net-part-1.aspx [^]今Windowsシェル拡張DLLとWinフォームプロセス

以下、Windowsのシェル拡張統合のためのdllを作った、私は次のことをやって、そのDLLでWindowsフォームを追加しました:

void OnVerbDisplayFileName(IntPtr hWnd) 
{ 
    ShowSelectedFiles form = new ShowSelectedFiles(); 
    form.Show(selectedFiles); 
} 

すべてがうまくいき、フォームアイコンがタスクバーに表示されず、フォームを実行するプロセスが見つかりません。

どのようにこの問題を解決するためのヒント?新しいプロセスを開始し、フォームを表示することによって、おそらく?

おかげ

答えて

0

これを解決する唯一の方法は、別のプロセスを作成することです。

void OnVerbDisplayFileName(IntPtr hWnd) 
    { 
     string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath; 
     string executableName = file.Substring(0, file.LastIndexOf("/")); 
     executableName += "/MyApp.exe"; 

     Process gui = new Process(); 

     gui.StartInfo.FileName = executableName; 
     gui.StartInfo.Arguments = selectedFiles.JoinFileNames(" "); 

     gui.Start(); 
    } 

乾杯!

0

あなたがオーナーウィンドウを指定することができるようにForm.Show Method (IWin32Window)方法を使用してみてください。

hWndからオーナーウィンドウを指定する方法は、http://ryanfarley.com/blog/archive/2004/03/23/465.aspxを参照してください。

また、フォームのShowInTaskBarプロパティがtrueであることを確認してください。

+0

私は試みましたが、この場合は動作しません。私の提案された解決策を見てくださいしかし、ありがとう! – MaiOM

関連する問題