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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0122
pasOSもどき制作で、デスクトップのショートカット(button?)を動かす方法2未解決


pas

リンク

2014/1/22(Wed) 20:34:27|NO.59469

現在、OSもどきをつくっています。
なるべく、本物に近づけようとして、起動からパスワード、そしてデスクトップという
感じにしたいのですが、デスクトップにある、ソフトなどのショートカット、
あれも再現したいんですが、どういった方法がありますか?
本物同様、動けるようにしたいです。
button でもできるでしょうか?



この記事に返信する


きのよー

リンク

2014/1/22(Wed) 21:54:06|NO.59470

デスクトップのショートカットをbuttonでやると、その上にウィンドウを表示する動作がとんでもなく重くなる。
できないわけではないけれど、はっきり言って自前でびょうがしたほうが自由度は高いと思う。



koya

リンク

2014/1/25(Sat) 18:11:34|NO.59497

前にワタシがほとんど同じ質問(まったく同じ?)
をしました.
それがこれ→http://hsp.tv/play/pforum.php?mode=all&num=58840
スクリプト↓

#uselib "user32.dll" #func global TrackMouseEvent "TrackMouseEvent" sptr #func global WindowFromPoint "WindowFromPoint" sptr,sptr #func global SetWindowPos "SetWindowPos" sptr,sptr,sptr,sptr,sptr,sptr,sptr repeat 10 :pos rnd(640-64),rnd(480-24)//10個ボタンをランダムな位置に作る button gosub str(cnt),*label_0//クリックしたらlabel_0に移動 loop ;ボタン上右クリックで移動開始 oncmd gosub *label_1,$200 ;WM_MOUSEMOVE oncmd gosub *label_2,$2A3 ;WM_MOUSELEAVE stop *label_0 :title str(objinfo(stat,2)) //ボタンを押したときの動作 return *label_1 :nn = 16,2,hwnd,1000 :TrackMouseEvent varptr(nn) //マウスを動かしたときの動作 :getkey kk,2 :if (kk) and (hh != 0) {SetWindowPos hh,0,mousex,mousey,0,0,1} else {hh = 0} :title str(hh) return *label_2 :WindowFromPoint ginfo_mx,ginfo_my //マウスをボタンにかざした時の動作 :if (stat != hwnd) {hh = stat} else {hh = 0} return


さらに画像を付けたい場合は,

#uselib "user32.dll" #func global TrackMouseEvent "TrackMouseEvent" sptr #func global WindowFromPoint "WindowFromPoint" sptr,sptr #func global SetWindowPos "SetWindowPos" sptr,sptr,sptr,sptr,sptr,sptr,sptr celload "e.png" ,2 celdiv 2,104,70 buffer 1,104*3,70 //ボタン用バッファ repeat 3 //ボタン用バッファに配置場所の画像とボタン画像をコピー pos 104*cnt,0 gmode 0 gcopy 0,0,0,104,70 //ボタンの配置場所の画像をボタン画像をコピーする場所にコピー pos 104*cnt, gmode 4,0,0,200 celput 2, cnt //ボタン画像をボタン用バッファにコピー loop gsel 0, 1 pos 0, 0 objsize 104,70 objimage 1, 0, 0, 104, 0, 104*2,0 button "" ,*Label_0 oncmd gosub *label_1,$200 ;WM_MOUSEMOVE oncmd gosub *label_2,$2A3 ;WM_MOUSELEAVE stop *label_0 //ボタンを押したときの動作 mes "押しました *label_1 :nn = 16,2,hwnd,1000 :TrackMouseEvent varptr(nn) //マウスを動かしたときの動作 :getkey kk,2 :if (kk) and (hh != 0) {SetWindowPos hh,0,mousex,mousey,0,0,1} else {hh = 0} :title str(hh) return *label_2 :WindowFromPoint ginfo_mx,ginfo_my //マウスをボタンにかざした時の動作 :if (stat != hwnd) {hh = stat} else {hh = 0} return
こうします
↓画像ファイル
http://ux.getuploader.com/07017/download/10/e.png



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