掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecute()後のフォーカスを取り戻すには (ID:45242)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
みなさんよろしくお願いします。環境はWindows7 Delphi6Personalです。 やりたいこと: Vキーを押したら、画像を表示し、最前画面にFormをだす。 次に、Zキーを押したら、画像のパスをLabelにコピーしたい。 現象: Zキーが効かない。Form1をクリックすれば、効きます。 画像を表示した後も、引き続きキーが効くようにする方法を教えて頂けませんか。よろしくお願いします。 type TForm1 = class(TForm) Label1: TLabel; //ココへパスをコピーする Edit1: TEdit; //表示する画像のパスを置く Button1: TButton; //当初フォーカスを置いておく procedure FormCreate(Sender: TObject); private procedure MsgHandler(var Msg: TMsg; var Handled: Boolean); public end; var Form1: TForm1; implementation uses ShellAPI; {$R *.dfm} //Vキーを押すと画像を表示する。 //次にzキーを押してEdit1.textをコピーしたいがキーが効かない。 procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean); begin if (GetAsyncKeyState(Ord('V')) and $8000)<>0 then begin Sleep(300); ShellExecute(Handle, 'OPEN', PChar(trim(Edit1.Text)+#0),nil, nil, SW_SHOWNORMAL); SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE or SWP_NOMOVE);//最前面に表示する end; if (GetAsyncKeyState(Ord('Z')) and $8000)<>0 then begin Sleep(300); Label1.Caption:=Edit1.Text; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage:= MsgHandler; Edit1.Text:='C:\Users\yokoi\Desktop\xxx.JPG';//サンプル画像 ActiveControl:=Button1;//キーでEditに入力しないように end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.