2017-06-22 12 views
-1

それを呼び出すthatsのプログラムの背後に隠されている、私は別の実行可能ファイルを開封しておりますが、それはそれは呼び出しの実行の最上部に表示されません開いたときそれ。ここでプログラムは、<strong>Winapi.Windows</strong>ユニットから<strong>のCreateProcess</strong>機能を使用して

は、私は一緒に入れ手順です:

procedure Tfrm1.ExecuteProg(Cmdl: String; Pause: Boolean); 
var SI : TStartUpInfo; 
    PI: TProcessInformation; 
begin 
FillChar(SI, Sizeof(SI), 0); 

with SI do 
begin 
    cb := SizeOf(TStartUpInfo); 
    dwFlags := StartF_UseShowWindow; 
    wShowwindow := SW_SHOWNORMAL; 
end; 

if (CreateProcess(nil, PChar(Cmdl), nil, nil, False, 0, nil, nil, SI, PI)) then 
    if Pause then WaitForInputIdle(PI.hProcess, INFINITE); 
end; 

は何か他のものは、私がやってする必要があることはありますか?

ご協力いただきありがとうございます。

+0

[MCVE]を提供してください。あなたが描く行動は、自明に再現することはできません。 –

答えて

-1

上記の手順が呼び出された後、私は次のようでした:

WinHandle := FindWindow(nil, WindowName); 

if WinHandle <> null 
    then SetForegroundWindow(WinHandle); 
+0

必要ありません。上で述べたように、あなたが記述する振る舞いは、単純な空のアプリケーションでは再現できません。明らかに、私たちが見ることができないあなたのシナリオでは何かが起こっています。あなたが私が言ったようにして[mcve]を作るなら、これは実行可能な質問になるでしょう。 –

+0

こんにちはDavidさん、ご指摘いただきありがとうございます。これは一時的な修正となります。私が取り組んでいるプロジェクトには多くのコードが含まれており、問題を特定するまでに時間がかかります。もともとXE3で行われていましたが、この問題は起こりませんでした。プロジェクトを最新にして、それ以降のバージョンに変換しました。 - 10.1 berlin - これが起こっていることに気がついたとき、Ilが原因もう一度ありがとうございます:) –

+0

これを理解することを強く感じていない場合は、投稿全体を削除する必要があります。 –

関連する問題