HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0617
ぷにぷに (投稿者削除)2解決


ぷにぷに

リンク

2011/6/17(Fri) 22:27:35|NO.39707

この記事は投稿者により削除されました。
2011/6/19(Sun) 03:58:03



この記事に返信する


Cookies

リンク

2011/6/17(Fri) 22:53:29|NO.39708

>hspから別プロセスのウィンドウハンドル取得して
 何をもとにウィンドウを探しましょうか。
 プロセス名?ウィンドウタイトル?クラス?
 
ぷにぷにさんは例がほしいそうなので、一応書いてみました。
この例では、クラス名でウィンドウを検索。(メモ帳のクラス名は"Notepad"。)

#uselib "USER32.DLL" #func MoveWindow "MoveWindow" int, int, int, int, int, int #func GetWindowRect "GetWindowRect" int, int #cfunc FindWindow "FindWindowA" sptr, sptr nWidth = 200 ;MoveWindowのとき使う幅 nHeight = 500 ;MoveWindowのとき使う高さ hwnd_note = FindWindow("Notepad", 0) ;ウィンドウクラス名が"Notepad"のhWndを代入 if(hwnd_note = 0) : dialog "Notepadが起動してないかも。" : stop dim rect, 4 GetWindowRect hwnd_note, varptr(rect) ;位置を変更させないため、位置取得。RECT構造体がrectに代入される。 MoveWindow hwnd_note, rect(0), rect(1), nWidth/*幅*/, nHeight/*高さ*/, 1 stop
見にくくってすいません。基本的なのはこんなもんだと思います。
nWidth,nHeightが幅、高さです。

RECT構造体についてはhttp://msdn.microsoft.com/ja-jp/library/a5ch4fda(v=vs.80).aspx
ウィンドウ検索にFindWindow、元の位置取得にGetWindowRectを使用。

FindWindowは複数ウィンドウがあってもそれを知ることはできません。(たぶん。)
FindWindowは子ウィンドウは全く探しません。



ぷにぷに

リンク

2011/6/17(Fri) 23:11:01|NO.39709

Cookiesさん
参考にさせていただきます。
ご丁寧にありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.