喫茶XRAYトップページ

[スレッド全体
]

[8321] Re15:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 13:08:59 Mr.XRAY
ほば原因が分かりました.
前に書いた

>Window 7 では,ウインドウのフレーム関係に変更があったので,

これウソです.Windows Vista 以降です.
アプリの作成の仕様というか,構成の問題だと思うのですが,
詳しいことは分かりせん.
つまり,クラス名で検出したハンドルが,必ずしも,そのアプリの
メインウィンドとして,外部から操作可能なウィンドウハンドルではない.
ということが原因です.

では,どうすれば,対象のウィンドウのハンドルを取得できるか,
考えています.

# 以前,アプリの操作関係のサンプルを書いていた時に気付いたものです.
# サンプルプログラム集に,何か書いた記憶があるのですが,
# どこに書いてあるのかが思い出せません(苦笑)

# だから,過去ログを読めとか,ヘルプを読め,といっても大変なのですよ.
# 自分で書いた記事でさえ,こうなんですから.


[8322] Re16:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 13:14:59 Mr.XRAY
> つまり,クラス名で検出したハンドルが,必ずしも,そのアプリの
> メインウィンドとして,外部から操作可能なウィンドウハンドルではない.
> ということが原因です.


この確認は以下のようにしました.
前にテストしていただいた時に使用した,ウィンドウのツリー表示を使用します.
私の場合,FireFox を使用しています.
したがって,クラス名は,MozillaWindowClass です.
しかし,このクラス名を使用して,最初に検出したウィンドウハンドルでは,
FireFox の位置とサイズは変更できません.

ツリー構造の中の,同じ MozillaWindowClass とクラス名のウィンドウハンドルを
使用すると,位置とサイズが設定できます.

動作確認は Windows 7 U64(SP1) + Delphi XE(Up1) です.
では,なぜ Delphi 2010 では動作するのか?
は,これから考えます.(^^;


[8323] Re17:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 14:02:51 TS
▼ Mr.XRAYさん
ありがとうございます。手掛かりがあれば助かります。

> ツリー構造の中の,同じ MozillaWindowClass とクラス名のウィンドウハンドルを
> 使用すると,位置とサイズが設定できます.


ウィンドリストには1つしかFireFoxのツリー表示がありませんが、上記は
どの位置にあるのでしょうか。


[8324] Re18:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 15:36:31 Mr.XRAY
▼ TSさん

> ウィンドリストには1つしかFireFoxのツリー表示がありませんが、上記は
> どの位置にあるのでしょうか。


ワワワッ.ゴメンナサイ.
前に UP した EXE では検出できません.
修正したのを UP します.
ちょっと待ってください.
少し修正しないと,動作が不安定なもんですから.


[8325] Re19:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 17:25:02 TS
▼ Mr.XRAYさん
>しかし,このクラス名を使用して,最初に検出したウィンドウハンドルでは,
>FireFox の位置とサイズは変更できません.


>ツリー構造の中の,同じ MozillaWindowClass とクラス名のウィンドウハンドルを
>使用すると,位置とサイズが設定できます.>


上記の関連情報がインターネット上にないか色々探しましたが、まったく判りません。
完全にお手上げ状態です。

>ちょっと待ってください.
>少し修正しないと,動作が不安定なもんですから.


上手く行くのをお待ちしてます。

[8327] Re20:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 18:05:40 Mr.XRAY
▼ TSさん

スミマセン.ちょっくら用事ができ,
ちょっと出かけてきます.
戻ったら,どうせ休みですので.やりますんで.申し訳ないです.


[8328] Re21:Windows8のWinapiの動作について返信 削除
2014/12/28 (日) 18:22:01 TS
▼ Mr.XRAYさん
こちらこそ申し訳ないです。
いってらっしいませ。


[8331] Re22:Windows8のWinapiの動作について返信 削除
2014/12/29 (月) 17:02:53 Mr.XRAY
▼ TSさん

遅くなって申し訳ありません.
なんとか解決方法を,と思ったのですが,いまいち規則性が把握できません.

http://mrxray.on.coocan.jp/Delphi/Others/007.htm
↑ は,

サンプルプログラム集の
[03_システム関係ダイアログの場合]
http://mrxray.on.coocan.jp/Delphi/plSamples/645_WindowTree.htm#03

で,ウインドウのツリー構造を表示したものです.
今回は,FireFox のウインドウの位置とサイズの変更を試みました.
図では同じクラス名のウィンドウが 3 つありますが,
1 つ,2 つの時もあります.
FireFox で表示しているタブ数に関係しているわけですが,
おそらく,このようなことが関係しているのではないかと思っています.
(前に推測した内容と違っていますね.スミマセン)

ハズしているかも知れませんが.とりあえず報告まで.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82