サイトを閉じるには?

87 views
Skip to first unread message

nagao

unread,
Jun 26, 2020, 9:11:00 PM6/26/20
to Japan RAD Studio User Group
nagaoです。
いつも教えて頂きありがとうございます。
 
例えば、あるサイトでクラウドからファイルをダウンロードする作業を
実行させるため下記の操作をしたいと思います。
(1)例えば
   shellexecute(startdlg.handle,pchar('open'),
        pchar('https://www.miraikoji2.com/users/sign_in'),
        nil,nil,SW_SHOW);
 を実行して、あるサイトを表示させる。
(2)このサイトで操作して別のファイルがダウンロードできるサイトに
 移動させる。
(3)そのダウンロードサイトでファイルのダウンロードが完了したか
 否かをタイマーで1秒おきにチェックし、ダウンロードが完了したら
 ダウンロードサイトを閉じる。

私が使っているのはDelphi10.1 Belrinですが、これで上記(3)の
ダウンロードサイトを閉じるにはどのようなコードを使えばよいのか
お教えねがいます。

梅澤智実

unread,
Jul 9, 2020, 2:25:44 AM7/9/20
to radstu...@googlegroups.com
こんにちは。

すみませんコードではなく、何かのヒントになれば、ということで自分が他のアプリを
制御する場合の基本的なやり方だけ書きます。

------------------------------------------
<手順>
1.制御したいアプリケーション(ここではブラウザ)のウィンドウハンドルを取得する。
(EnumWindows() と GetWindowText() を使うことが多いです。)


2-a).取得したウィンドウハンドル(仮にhWnd)を使って、以下のような感じでWM_CLOSEを送信する
PostMessage(hWnd, WM_CLOSE, 0, 0)

あるいは

2-b). 取得したウィンドウハンドルに対して、仮のキーボード入力を送信する。
Ctrl + F4 でアプリ終了
Alt + F4 でタブを閉じる
------------------------------------------

2-b) をやる方法はいくつかあるかもしれませんが、
私の場合Delphiで行わずにAutoItというツールを使います。
(この場合、1) もAutoItで行います)

AutoItで、キー操作のexeを作成し、Delphiからはそのexeを呼び出します。


AutoIt に関して日本語の資料を書いて下さっている方がいらっしゃるので、
良ければ以下のリンク先をご参照下さい。
(「初めに」のリンク先を読むとざっくりAutoItで何が出来るのか、書かれています)

■ AutoIt v3 ドキュメント 日本語訳プロジェクト

http://blog.livedoor.jp/blackcode/archives/1224220.html

2020年6月27日(土) 10:11 nagao <osamuna...@gmail.com>:
> --
> このメールは Google グループのグループ「Japan RAD Studio User Group」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには radstudio-jp...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/radstudio-jp/b0f56c08-b226-4e25-b928-6fe40c336feco%40googlegroups.com にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages