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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1203
rpkktr外部アプリを子ウィンドウにしたい7解決


rpkktr

リンク

2009/12/3(Thu) 18:00:59|NO.29119

外部アプリケーションの起動は"exec"なのはわかるんですが、
その外部アプリケーションを子ウィンドウとして動かしたいのですが、
可能でしょうか?



この記事に返信する


珠後

リンク

2009/12/3(Thu) 18:36:58|NO.29120

過去にやったことのある方法としては、

1.起動したい子アプリケーションのコマンドラインに親ウィンドウハンドルを指定して起動
2.子ウィンドウは起動後に自分のウィンドウハンドルをsendmsgで送信。ウィンドウメッセージはユーザー定義域の物を使用
3.親アプリケーションでメッセージを捕まえて、SetWindowLongで子ウィンドウ化

で一応可能です。



rpkktr

リンク

2009/12/5(Sat) 11:40:20|NO.29148

すみません
あまりピンことないです

メモ帳でサンプルコードできませんか?
お願いします。



inovia

リンク

2009/12/5(Sat) 22:50:44|NO.29155

失敗作
一応、メモ帳が子ウィンドウになりますが、操作不能。


#include "user32.as" screen 0,640,480:hParent=hwnd title "親ウィンドウ" exec "notepad" FindWindow 0,"無題 - メモ帳" hChild=stat GetWindowLong hChild,-16 SetWindowLong hChild,-16,stat|0x40000000 SetParent hChild,hParent stop



rpkktr

リンク

2009/12/6(Sun) 14:33:46|NO.29169

やっぱ、メモ帳は動いてほしいですね。
わがまま言ってすいません!!



inovia

リンク

2009/12/6(Sun) 14:53:02|NO.29170

これだけで良かったみたいです。


#include "user32.as" screen 0,640,480:hParent=hwnd title "親ウィンドウ" exec "notepad" FindWindow 0,"無題 - メモ帳" hChild=stat SetParent hChild,hParent



inovia

リンク

2009/12/6(Sun) 15:07:43|NO.29171

内部で動かないように修正

#include "user32.as" screen 0,640,480:hParent=hwnd title "メモ帳のっとり大作戦" exec "notepad" FindWindow 0,"無題 - メモ帳":hChild=stat SetParent hChild,hParent sendmsg hChild,0x112,0xF030 GetSystemMenu hChild,0 hSystemMenu=stat GetWindowLong hParent,-16 SetWindowLong hChild,-16,stat //親のものに子も変更 ; $F000=サイズ変更、$F010=移動、$F020=最小化、$F030=最大化、 ; $F060=閉じる、$F120=元のサイズに戻す、$0=区切り線 DeleteMenu hSystemMenu,0,0 DeleteMenu hSystemMenu,0xF000,0 DeleteMenu hSystemMenu,0xF010,0 DeleteMenu hSystemMenu,0xF020,0 DeleteMenu hSystemMenu,0xF030,0 DeleteMenu hSystemMenu,0xF120,0



rpkktr

リンク

2009/12/7(Mon) 16:29:00|NO.29184

すごい!!動く!!
本当にありがとうございました。



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