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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0417
あんかけHSPのウィンドウを非アクティブ化したい10未解決


あんかけ

リンク

2012/4/17(Tue) 19:56:46|NO.46124

題のままです。
具体的には、
buttonで作ったボタンを押す

hspのウィンドウが非アクティブになる

それまでアクティブだった別のウィンドウにkeybd_eventでキーを送る

といったようにしたいのです。
よろしくお願いします。



この記事に返信する


@key

リンク

2012/4/18(Wed) 21:10:50|NO.46145

自分のとっておきの方法ですがwww

Alt+Tabを一回だけ押せば、アクティブウィンドウの一枚裏のウィンドウに移動できるという特性がでます
これを活用できるかはあなた次第ですね



cats

リンク

2012/4/19(Thu) 20:36:30|NO.46156

ウィンドウID1を画面の見えないところに
置いておけばだいたいできると思います。

bgscr 1,200,200,4,ginfo(20),ginfo(21) screen 0 button gosub"非アクティブ",*Ac stop *Ac gsel 1,1 return



てれてれ

リンク

2012/4/19(Thu) 20:38:15|NO.46157

>ウィンドウID1を画面の見えないところに
>置いておけばだいたいできると思います。
デュアルディスプレイというものがあってだな・・・



cats

リンク

2012/4/19(Thu) 20:48:06|NO.46158

ならば透明にして画面隅へ

#uselib "user32.dll" #func GetWindowLongA "GetWindowLongA" int , int #func SetWindowLongA "SetWindowLongA" int , int , int #func SetLayered "SetLayeredWindowAttributes" int , int , int , int bgscr 1,1,1,4,0,0 GetWindowLongA hwnd , -20 SetWindowLongA hwnd , -20 , stat | 0x00080000 SetLayered hwnd , 0 ,0*255/100 , 2 screen 0 button gosub"非アクティブ",*Ac stop *Ac gsel 1,1



@key

リンク

2012/4/19(Thu) 22:49:26|NO.46162

質問した人はウィンドウを消したいのではなく非アクティブにしたいと思っているらしい
だから透明にしただけじゃ意味ないと思う
Alt+Tabを適当な所にキー送信すれば前使ってたウィンドウに移動できるからそれでおk



cats

リンク

2012/4/20(Fri) 19:53:38|NO.46181

>だから透明にしただけじゃ意味ないと思う
上のスクリプトで一応非アクティブにしたのですが・・・



てれてれ

リンク

2012/4/20(Fri) 20:40:56|NO.46187

人に茶々入れといて自分は何も言わないというのも失礼なので・・・

#uselib "user32.dll" #cfunc GetNextWindow "GetWindow" int,int #func SetForegroundWindow "SetForegroundWindow" int #define GW_HWNDNEXT $00000002 #define GW_HWNDPREV $00000003 oncmd gosub *WM_ACTIVATE ,0x0006 button "アクティブ",*label stop *label SetForegroundWindow BackWindow //await 50//場合によってはawaitが合った方が安定性が増すかもしれません。 //keybd_eventはここから //ここまでの間に突っ込む stop *WM_ACTIVATE if wparam != 0 : BackWindow = GetNextWindow(hwnd,GW_HWNDNEXT) //「それまでアクティブだった別のウィンドウ」を取得 return



れみはる

リンク

2012/4/20(Fri) 21:17:11|NO.46189

単に非アクティブ化したいのであれば,
オルト+タブキーを送信するか#46158の方法が一番簡単だと思いますが,

>それまでアクティブだった別のウィンドウ

にフォーカスを移したいなら別かもしれない

>>@keyさん
なんか間違ってる気がする



れみはる

リンク

2012/4/20(Fri) 21:21:10|NO.46190

あ,古いキャッシュを読んでしまっためか#46187が見えてなかったです。

ところで,SetForegroundWindowのあとはawaitよりwaitのほうがいいのでは?



てれてれ

リンク

2012/4/20(Fri) 21:47:08|NO.46192

それは1つの例として挙げただけです。
というかこのスクリプトの場合は、waitとawaitどちらも動作に大きな違いは無いと思いますよ。

もっと言ってしまえば、そもそもwait自体必要無い場合が大半でしょうね。



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