2011-07-06 8 views
2

iについても、私はアクロバットリーダーでこれを試みた私はこの読むMainWindowHandleプロセス

private Process pDocked; 
private IntPtr hWndDocked; 
pDocked = Process.Start(path, PDFPath); 
while (hWndDocked == IntPtr.Zero) 
{ 
    pDocked.WaitForInputIdle(1000); 
    pDocked.Refresh(); 
    if (pDocked.HasExited) 
    { 
     return; 
    } 
    hWndDocked = pDocked.MainWindowHandle; 
} 

を試み、結果がhWndDocked = 0 あるAcrobat Readerが10のプロセスのためMainWindowHanldeを読み取るしようと9と私はMainWindowHandleを得たが、それはその次のプロパティがあるときに、TR 10

と感謝

+0

「AR 10では動作しませんでした」とはどういう意味ですか?あなたはメインウィンドウのハンドルを見つけることができなかったか、そのウィンドウで操作できませんでしたか? – Tigran

+0

この作業を確実に行うことはできません。主なウィンドウが何であるかを.NETが把握できない場合、acrord32.exeも単一のインスタンスアプリケーションです。すでに実行中の場合、コードがクラッシュします。その新しい行動は、あなたの計画の大きな穴を撃ち、窓の親と絡み合う。 –

+0

こんにちはTigranとありがとう、私はMainWindowHandle、そしておかげでハンスをうまくできませんでしたが、あなたがそう言うなら、これを行う適切な方法は何ですか、私は私のアプリケーションでそれをドッキングしたい、助けてください –

答えて

1

I持っていた同じ問題を助け、そして見つけてくださいアクロバットリーダー上で動作しませんでしたue、MainWindowHandleがなく、 "メインフォーム"に子ウィンドウがある場合、プロセスのMainWindowHandleは、予想されるメインウィンドウではなく子ウィンドウハンドルになります。 WEIRD !!!なぜ私は理解することができればと思います。しかし、私はこれを見つけると、別の方法で私の問題を解決します(私の場合、MainWindowHandleは本当に必要ありません)!以下

public frmMain() 
     { 
      InitializeComponent(); 
      this.ShowInTaskbar = false; 
      this.ShowIcon = false; 
     } 

なしMainWindowHandle(= 0)!

あなたはサブウィンドウを作成する場合、この場合の処理​​のMainWindowHandleがfrmLogonのハンドルになります。

private void frmMain_Load(object sender, EventArgs e) 
     { 
      frmLogon frm = new frmLogon(); 
      frm.Show(); 
     } 

がゼロに戻って、プロセスのfrmLogonとMainWindowHandleを閉じます(= 0)!!

この情報は役に立ちましたか?

関連する問題