Googole Chrome

解決


まの  2010-04-07 02:15:43  No: 38197

Googole Chromeのクラス名を把握して、一旦Googole Chromeを停止しようとしましたが、Googole ChromeのVer4になってから、停止ができなくなってしまいました。
クラス名は、Chrome_WindowImpl_0で間違いないと思います。
ただ停止はできませんが、ヘルプやオプション画面は開かなくなりました。
状態等によって別のクラス名になっているのでしょうか?
どなたか、助けて頂けると助かります。
よろしくお願いします。


TS  2010-04-07 03:18:08  No: 38198

テストしてみました、下記のコードで2度クリックすると
Windowが閉じられますのでクラス名は合っています。

1度目と2度目でCWの値が変化します、原因は分かりません。

停止と言われるのがどういう状態か分かりませんが。

procedure TForm1.BitBtn1Click(Sender: TObject);
var  CW :HWND;
begin
  CW:=FindWindow('Chrome_WindowImpl_0',nil);
  PostMessage(CW, WM_Close, 0, 0);
end;


まの  2010-04-16 02:57:07  No: 38199

ありがとうございます。
四苦八苦しましたが、2回続けて命令コードを記載した、
止まりました。
ありがとうございました。


TS  2010-04-16 05:13:32  No: 38200

>四苦八苦しましたが、2回続けて命令コードを記載した、
>止まりました。

コードを二度続けただけだと終了しなかったと思いますが。
どの様にされましたか、出来れば教えて下さい。


まの  2010-04-16 18:44:04  No: 38201

CW:=FindWindow('Chrome_WindowImpl_0',nil);
 PostMessage(CW, WM_Close, 0, 0);
 CW:=FindWindow('Chrome_WindowImpl_0',nil);
 PostMessage(CW, WM_Close, 0, 0);

上記のように続けてコードを記載しました。
IEは、一回で止まったのですが、Chromeは、一回で止まらず、TSさんの
ご指摘戴きました、2度クリックをヒントにいろいろ試したところ、
少々時間はかかってしまいましたが、上記コードで止まりました。
理解は少々不明ですが、とりあえずこの方法で行ないました。
御世話になりました。


Mr.XRAY  2010-04-19 20:23:14  No: 38202

みなさんこんにちは.Mr.XRAYです.

>理解は少々不明ですが

Google Chromeはタブ表示形式のブラウザです.
これは,タブ1つ1つにハンドルがあります.
例えばTWebBrowserを使用してタブ表示形式のブラウザを作るとします.
そのタブ1つ1つにTWebBrowserを配置しますから,そのハンドルがあります.

その他にブラウズ本体関係のハンドルがあります.
したがって,ブラウザを閉じるには,例えば,

procedure TForm1.Button1Click(Sender: TObject);
var  
  CW :HWND;
begin
  while True do begin
    CW := FindWindow('Chrome_WindowImpl_0',nil);
    if CW = 0 then break;
    PostMessage(CW, WM_Close, 0, 0);
  end;
end;

という感じでしょうか.
実は,IE7を操作するサンプルを作成していて,うまくいかず,
私も最近気がついたのです.IE7がタブ表示形式のブラウザだという事を(苦笑).


Mr.XRAY  2010-04-28 21:04:44  No: 38203

亀レスですが,ちょっと思いついたので.
タブのハンドルを全て閉じると,Google Chromeが閉じるのは,

>最後のハンドルを閉じると、プロセスオブジェクトが自動的に削除されます。

ということです(MSDNの記事より).
ここのSDIスタイルのアプリも同様な仕様です.
http://mrxray.on.coocan.jp/Delphi/plSamples/710_SDIStyleApp.htm


Mr.XRAY  2010-04-28 21:11:39  No: 38204

>タブのハンドルを全て閉じると,Google Chromeが閉じるのは,

ここの過去ログをみたら,TerminateProcessでNotePadが閉じないというのがありました.
これは,ワードでも同じですが,文書のハンドル,NotePadのエディタ部分のハンドルだけを閉じても
ワードあるいは,Notepadは閉じません.
もちろん,ワードあるいはNotepad自体のハンドルを(取得して)閉じれば終了します.


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加