毎度スミマセン.質問ではありません.
昔,こんなスレッドあり,レスしたのですが,
[コマンドプロンプトに間接的に文字を入力するには?]
https://www.petitmonte.com/bbs/answers?question_id=3808
HDD 内を整理していたら,このスレッド終了後に作成したコードがありました.
今更ですが,検索でくる方もいると思いますので掲載しておきます.
コマンドプロンプトは起動しているものとします.
//=============================================================================
// コマンドプロンプトに文字列を送る
// クリップボードを利用
// usesにClipbrdが必要
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
const
ID_Paste = $FFF1; //65521
var
LCmdWnd : HWND;
LCmdText : String;
begin
LCmdWnd := FindWindow('ConsoleWindowClass', nil);
if LCmdWnd = 0 then begin
MessageBox(Handle, 'コマンドプロンプトが起動していません', '情報', MB_OK);
exit;
end;
//コマンドの文字列の末尾に改行文字を追加して,クリップボードにコピー
LCmdText := Trim(Edit1.Text) + sLineBreak;
Clipboard.AsText := LCmdText;
//コマンドプロンプトのウィンドウに[貼り付け]のコマンドを送る
SendMessage(LCmdWnd, WM_COMMAND, ID_Paste, 0);
Edit1.SetFocus;
end;
私のサイトからサンプルのプロジェクト (EXE 付き) がダウンロードできます.
[490_コマンドプロンプトを ShellExecute 関数で起動]
http://mrxray.on.coocan.jp/Delphi/plSamples/490_CmdPrompt1.htm
動作確認は,以前の質問の時と違い,サイトの記事と同じです.
Windows 7 U64(SP1) + Delphi XE(UP1) Pro です.
ツイート | ![]() |