2009-04-07 48 views
2

他のアプリケーションがビジー状態になっているかどうかを確認するにはどうすればよいですか?他のアプリケーションがビジー状態かどうかを確認してください

私はコンソールにテキストを送信するプログラムを持っています。送信するテキストに#13文字(例:ls#13cd documents#13dir)が含まれています。言い換えれば、私は一度に多くのコマンドを送信したいと思うし、コンソールはそれらを1つずつ処理します。私は文字で文字を送信しています。場合によっては、コンソールはlscd documentsしか実行しないことがあります。私は多分これはコンソールがビジー状態であっても私のプログラムが文字を連続的に送信しているからだと思います。その場合、コンソールは着信文字を受信しません。

この

は私のコードです:

procedure TForm1.SendTextToAppO(Str: String; AHandle: Integer); 
var 
    iWindow, iPoint, i: Integer; 
    SPass: PChar; 
    sList: TStringList; 
begin 
sList := TStringList.Create; 
    ExtractStrings([#13],[' '],PChar(Str),sList); 
    iWindow := AHandle;// AHandle is the handle of the console 
    iPoint := ChildWindowFromPoint(iWindow, Point(50,50)); 
    for i:=0 to sList.Count-1 do begin 
    SPass := PChar(sList[i]); 
    try 
     while(SPass^ <> #$00) do begin 
     SendMessage(iPoint,WM_CHAR,Ord(SPass^),0); 
     Inc(SPass); 
     end; 
     SendMessage(iPoint,WM_KEYDOWN,VK_RETURN,0); 
    except 
     // do nothing; 
    end; 
    end; 
end; 

私はあなたが正しくあなたがシェル/コマンドラインインタプリタのいくつかの並べ替えにテキストを送信している質問を解釈した場合、私は、Delphi 7

+0

"コードサンプル"ボタンを使用して、あなたの質問を編集してください。 –

答えて

5

を使用していますが、あなたはそれをしたいですあなたのコマンドを実行する。

通常、コマンドラインインタプリタは、新しいコマンドを受け入れることができることを示す特定のプロンプト(Linuxシステムでは$、DOSではC:¥など)を出力します。別のコマンドを送信する前に、適切なプロンプトを待つために出力を読み取る必要があります。そうしないと、送信されたテキストは、(経験したように)現在実行中のコマンドによって入力として消費されます。

+0

はい、それは私が何を考えているのですか?キャラクターを送った後、私はコンソールの出力を読むでしょうか?私はそれが理想だとは思わない。 WaitforInputIdleについて読んだことがあります。しかし、私はshellexecuteを使ってコンソールを開きます。それは私にとってはうまくいかないでしょう。 – junmats

+0

ロター、私はあなたの提案を試みたが、私がコピーできる唯一のテキストは私が入力したものである。定義済みのテキスト(例:c:\\)はコピーできません。あなたはコンソールの中のすべてのテキストをコピーするようなことを知っていますか?あなたの助けに感謝します。 – junmats

+0

私は過度の過失が正しいと思います。コマンドインタープリタをプロセスとして起動する必要があります。このプロセスを使用すると、入力と出力を読み書きできます。パイプ。それははるかに簡単です。 – lothar

0

私はそれのための修正を持っていることを、私は何が起こっているか理解できないと思う:

あなたがコンソールにコマンドを送信してください。コマンドが実行されている間、そのプログラムは送信したキーを受信します。

3

ロタールが正しいトラックにあります。 ShellExecuteを使用する代わりに、CreateProcessを使用します。 "Console Redirection"のためにStack OverflowとGoogleの周りを見て - それはあなたが探しているものを得るでしょう。

関連する問題