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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0226
名無三動くデスクトップサンプル9解決


名無三

リンク

2019/2/26(Tue) 23:05:50|NO.86717


onexit *ed #include "kernel32.as" //------------------------------------------------------------------------------ // CPU使用率のサンプル(1) by 科学太郎 //============================================================================== // @URL(https://msdn.microsoft.com/ja-jp/library/cc429557.aspx)→「PdhOpenQuery」 // @URL(https://msdn.microsoft.com/en-us/library/aa372558.aspx)→「PdhCloseQuery」 // @URL(https://msdn.microsoft.com/en-us/library/aa372204.aspx)→「PdhAddCounter」 // @URL(https://msdn.microsoft.com/en-us/library/aa372563.aspx)→「PdhCollectQueryData」 // @URL(https://msdn.microsoft.com/ja-jp/library/cc429547.aspx)→「PdhGetFormattedCounterValue」 // @URL(https://msdn.microsoft.com/en-us/library/aa373050.aspx)→「PDH_FMT_COUNTERVALUE」 //------------------------------------------------------------------------------ //-------------------------------------- // Win32API関数の呼び出し定義 //-------------------------------------- #uselib "Pdh.dll" #func global PdhOpenQuery "PdhOpenQueryA" sptr,sptr,sptr #func global PdhCloseQuery "PdhCloseQuery" sptr #func global PdhAddCounter "PdhAddCounterA" sptr,sptr,sptr,sptr #func global PdhCollectQueryData "PdhCollectQueryData" sptr #func global PdhGetFormattedCounterValue "PdhGetFormattedCounterValue" sptr,sptr,sptr,sptr //-------------------------------------- // 記号定数(API定数) //-------------------------------------- #const global NULL 0 #const global ERROR_SUCCESS $00000000 #const global PDH_FMT_LONG $00000100 #const global PDH_FMT_DOUBLE $00000200 //------------------------------------------------------------------------------ // End of sample203a.hsp //------------------------------------------------------------------------------ #define CLSID_ActiveDesktop "{75048700-EF1F-11D0-9888-006097DEACF9}" #define IID_IActiveDesktop "{F490EB00-1240-11D1-9888-006097DEACF9}" #usecom IActiveDesktop IID_IActiveDesktop CLSID_ActiveDesktop #comfunc IActiveDesktop_ApplyChanges 3 int #comfunc IActiveDesktop_SetWallpaper 5 wstr, int #comfunc IActiveDesktop_SetWallpaperOptions 7 int, int ; 壁紙の表示位置 #enum WPSTYLE_CENTER = 0 // 中央に表示 #enum WPSTYLE_TILE // 並べて表示 #enum WPSTYLE_STRETCH // 拡大して表示 newcom adesktop, CLSID_ActiveDesktop sdim filepath, 256 input filepath, 400, 22 #include "user32.as" #include "a2d.hsp" screen 0,640,480 buffer 1,ginfo_dispx,ginfo_dispy gsel 1 alCreateImage 1, ginfo_dispx,ginfo_dispy //スタイルの追加 dim hQuery ;問い合わせのハンドル(PDH_HQUERY) dim hCounter ;カウンターのハンドル(PDH_HCOUNTER) dim fmtValue,sysinfo(17)+1 ;取得データの構造体(PDH_FMT_COUNTERVALUE) dupptr fmtDouble,varptr(fmtValue(2)),8,vartype("double") PdhOpenQuery NULL,0,varptr(hQuery) if(stat!=ERROR_SUCCESS):dialog "クエリーをオープンできません。",1,"確認":end repeat sysinfo(17) PdhAddCounter hQuery,"\\Processor("+cnt+")\\% Processor Time",0,varptr(hCounter(cnt)) loop PdhAddCounter hQuery,"\\Processor(_Total)\\% Processor Time",0,varptr(hCounter(8)) timer_all=0. ddim timer_,sysinfo(17) ddim buf,8 lpoke buf,0,64 sec=0.1//更新頻度 repeat if cnt\int(60.*sec)=0{ //cpu PdhCollectQueryData hQuery repeat sysinfo(17) PdhGetFormattedCounterValue hCounter(cnt),PDH_FMT_double,NULL,varptr(fmtValue) cpu_(cnt)=fmtDouble loop PdhGetFormattedCounterValue hCounter(8),PDH_FMT_double,NULL,varptr(fmtValue) cpu_total=fmtDouble //mem GlobalMemoryStatusEx varptr(buf) dwMemoryLoad = double(strf("%I64u",buf(0) ))/1024/1024/1024// メモリの使用率(%) ullTotalPhys = double(strf("%I64u",buf(1) ))/1024/1024// 物理メモリの搭載容量 ullAvailPhys = double(strf("%I64u",buf(2) ))/1024/1024// 物理メモリの空き容量 ullTotalPageFile = double(strf("%I64u",buf(3) ))/1024/1024// ページングの搭載容量 ullAvailPageFile = double(strf("%I64u",buf(4) ))/1024/1024// ページングの空き容量 ullTotalVirtual = double(strf("%I64u",buf(5) ))/1024/1024// 仮想メモリの搭載容量 ullAvailVirtual = double(strf("%I64u",buf(6) ))/1024/1024// 仮想メモリの空き容量 ullAvailExtendedVirtual= double(strf("%I64u",buf(7) ))/1024/1024// 仮想メモリの拡張空き容量 // } timer_all+(cpu_total-timer_all)/10 repeat sysinfo(17) timer_(cnt)+(cpu_(cnt)-timer_(cnt))/10 loop redraw 0 alErase color 0,0,0 boxf //mem x=10 y=10 color 0,255,0 boxf x-1,y-1,x+200+1,y+18+1 color boxf x,y,x+200,y+18 color ,255 repeat int((ullTotalPhys-ullAvailPhys)/ullTotalPhys*20) boxf x+(cnt)*5+1,y+1,x+(cnt+1)*5-1,y+18-1 loop pos x,y+18+5 color 0,255,0 mes strf("%3.2f / %3.2f MiB " , ullTotalPhys-ullAvailPhys ,ullTotalPhys ) //cpu size=(ginfo_winy-20)/(sysinfo(17)/2)-10 color 100,100,100 boxf ginfo_winx-10-((size+10)*2+10),10,ginfo_winx-10,10 +(size+10)*(sysinfo(17)/2) repeat sysinfo(17) x=ginfo_winx-10-((size+10)*2+10)+10+(size+10)*(cnt\2) y=10 +(size+10)*(cnt/2) alColor 255,255,255,255 alDrawArc x, y, size, size, 2, 253 color 255,255,255 rad=deg2rad(255.*0/100.) line x+size/2+double(size/2+5)*cos(rad) , y+size/2+double(size/2+5)*sin(rad) , x+size/2+double(size/2-2)*cos(rad) , y+size/2+double(size/2-2)*sin(rad) color 255 rad=deg2rad(255.*100/100.) line x+size/2+double(size/2+0)*cos(rad) , y+size/2+double(size/2+0)*sin(rad) , x+size/2+double(size/2-5)*cos(rad) , y+size/2+double(size/2-5)*sin(rad) color ,255 rad=deg2rad(255.*timer_(cnt)/100.) line x+size/2+double(size/2-5)*cos(rad) , y+size/2+double(size/2-5)*sin(rad) , x+size/2 , y+size/2 pos x+size-9*7,y+size/2-18 color 255,255,255 mes strf("%6.2f%% " , cpu_(cnt) ) loop // alCopyImageToScreen 0, 0 redraw 1 // if cnt\int(60.*sec)=0{ filepath=dirinfo($10005)+"screen.bmp" bmpsave filepath // } await 1000/60 // if cnt\int(60.*sec)=0{ IActiveDesktop_SetWallpaper adesktop, filepath WALLPAPEROPT = 8, WPSTYLE_TILE ; 壁紙オプションの指定 IActiveDesktop_SetWallpaperOptions adesktop, varptr(WALLPAPEROPT) ; 変更の反映 IActiveDesktop_ApplyChanges adesktop, 7 // } loop *ed PdhCloseQuery hQuery filepath="" objprm 0, filepath IActiveDesktop_SetWallpaper adesktop, filepath WALLPAPEROPT = 8, WPSTYLE_TILE ; 壁紙オプションの指定 IActiveDesktop_SetWallpaperOptions adesktop, varptr(WALLPAPEROPT) ; 変更の反映 IActiveDesktop_ApplyChanges adesktop, 7 delcom adesktop end
突貫工事お許しください。かなり重いです…
bmpに書き出さずにデスクトップ変更できないものか…
エラー報告、あったら面白い機能など色々オナシャス!



この記事に返信する


Densya

リンク

2019/2/27(Wed) 09:37:00|NO.86720

実行しても何も表示されません...
閉じるとランタイムエラーが発生してしまいます。



名無三

リンク

2019/2/27(Wed) 12:16:55|NO.86723

・PCにマイドキュメントがない
・スペック不足
・Windows XP以前やWindows以外で動かしている
のどれかだと思います。
マイドキュメントにbmpが生成されているかとPCのOS、構成を教えてください



MillkeyStars

リンク

2019/2/27(Wed) 12:44:49|NO.86724

CLSID {75048700-EF1F-11D0-9888-006097DEACF9}(ActiveDesktop) は、Windows 98 及び XP 固有の機能です。
それ以外の OS では、正しく機能しません。



名無三

リンク

2019/2/27(Wed) 12:49:23|NO.86725

逆だったんですか…開発環境が7HomePreなので勘違いしてました。
SystemParametersInfoを使用したバージョンを作成しますのでお待ちくだされ



名無三

リンク

2019/2/27(Wed) 16:18:28|NO.86726


#include "user32.as" #define MAX_PATH 260 #define SPIF_UPDATEINIFILE 0 #define SPIF_SENDCHANGE 1 #define SPIF_SENDWININICHANGE 2 #define SPI_GETDESKWALLPAPER 0x0073 #define SPI_SETDESKWALLPAPER 0x0014 #define SPI_GETMOUSESPEED 0x0070 #define SPI_SETMOUSESPEED 0x0071 //マウススピード取得 result = 0 SystemParametersInfo SPI_GETMOUSESPEED, 0, varptr(result),0 if stat=0{ dialog "マウスカーソルの速度を取得できませんでした。" } mes "現在のマウススピードは、"+result+" です" //マウススピード変更 speed=20 SystemParametersInfo SPI_SETMOUSESPEED,0,speed,0 if stat=0{ dialog "マウスカーソルの速度を設定できませんでした。" } mes "マウススピードを "+speed+" に変更しました。" //デスクトップ画像参照 sdim result2,MAX_PATH SystemParametersInfo SPI_GETDESKWALLPAPER , MAX_PATH , varptr(result2) , 0 if stat=0{ dialog "デスクトップ画像を参照できませんでした。" } mes result2 //デスクトップ画像設定 sdim result3,MAX_PATH result3=dir_cur+"/screen.bmp"//壁紙のbmpポインタ SystemParametersInfo SPI_SETDESKWALLPAPER , 0 , varptr(result3) , SPIF_SENDCHANGE if stat=0{ dialog "デスクトップ画像を変更できませんでした。" } mes "デスクトップ画像を "+result3+" に変更しました。"
マウス速度に関するソースからとりあえずデスクトップ変更のサンプルです

SETWALLPAPER_DEFAULTのマクロは何を代入すれば良いのかしらん



名無三

リンク

2019/2/27(Wed) 16:27:36|NO.86727

でもって修正版です。7で動いたのは偶然orエミュレート機能でもあったかのどちらかのようで、
今回かなり軽くなりました。

onexit *ed #include "kernel32.as"
//------------------------------------------------------------------------------
// CPU使用率のサンプル(1) by 科学太郎
//==============================================================================
// @URL(https://msdn.microsoft.com/ja-jp/library/cc429557.aspx)→「PdhOpenQuery」
// @URL(https://msdn.microsoft.com/en-us/library/aa372558.aspx)→「PdhCloseQuery」
// @URL(https://msdn.microsoft.com/en-us/library/aa372204.aspx)→「PdhAddCounter」
// @URL(https://msdn.microsoft.com/en-us/library/aa372563.aspx)→「PdhCollectQueryData」
// @URL(https://msdn.microsoft.com/ja-jp/library/cc429547.aspx)→「PdhGetFormattedCounterValue」
// @URL(https://msdn.microsoft.com/en-us/library/aa373050.aspx)→「PDH_FMT_COUNTERVALUE」
//------------------------------------------------------------------------------

//--------------------------------------
// Win32API関数の呼び出し定義
//--------------------------------------
#uselib "Pdh.dll"
#func global PdhOpenQuery "PdhOpenQueryA" sptr,sptr,sptr
#func global PdhCloseQuery "PdhCloseQuery" sptr
#func global PdhAddCounter "PdhAddCounterA" sptr,sptr,sptr,sptr
#func global PdhCollectQueryData "PdhCollectQueryData" sptr
#func global PdhGetFormattedCounterValue "PdhGetFormattedCounterValue" sptr,sptr,sptr,sptr

//--------------------------------------
// 記号定数(API定数)
//--------------------------------------
#const global NULL 0
#const global ERROR_SUCCESS $00000000
#const global PDH_FMT_LONG $00000100
#const global PDH_FMT_DOUBLE $00000200
//------------------------------------------------------------------------------
// End of sample203a.hsp
//------------------------------------------------------------------------------
#include "user32.as"
#define MAX_PATH 260

#define SPIF_UPDATEINIFILE 0
#define SPIF_SENDCHANGE 1
#define SPIF_SENDWININICHANGE 2

#define SPI_GETDESKWALLPAPER 0x0073
#define SPI_SETDESKWALLPAPER 0x0014
#define SPI_GETMOUSESPEED 0x0070
#define SPI_SETMOUSESPEED 0x0071

#include "a2d.hsp"

//
//cpu用
dim hQuery ;問い合わせのハンドル(PDH_HQUERY)
dim hCounter ;カウンターのハンドル(PDH_HCOUNTER)
dim fmtValue,sysinfo(17)+1 ;取得データの構造体(PDH_FMT_COUNTERVALUE)
dupptr fmtDouble,varptr(fmtValue(2)),8,vartype("double")
PdhOpenQuery NULL,0,varptr(hQuery)
if(stat!=ERROR_SUCCESS):dialog "クエリーをオープンできません。",1,"確認":end
repeat sysinfo(17)
PdhAddCounter hQuery,"\\Processor("+cnt+")\\% Processor Time",0,varptr(hCounter(cnt))
loop
PdhAddCounter hQuery,"\\Processor(_Total)\\% Processor Time",0,varptr(hCounter(8))
timer_all=0.
ddim timer_,sysinfo(17)
//メモリ用変数
ddim buf,8
lpoke buf,0,64
//
screen 0,640,480
buffer 1,ginfo_dispx,ginfo_dispy
gsel 1
alCreateImage 1, ginfo_dispx,ginfo_dispy
//設定
sec=0.1//更新頻度

repeat
if cnt\int(60.*sec)=0{
//cpu
PdhCollectQueryData hQuery
repeat sysinfo(17)
PdhGetFormattedCounterValue hCounter(cnt),PDH_FMT_double,NULL,varptr(fmtValue)
cpu_(cnt)=fmtDouble
loop
PdhGetFormattedCounterValue hCounter(8),PDH_FMT_double,NULL,varptr(fmtValue)
cpu_total=fmtDouble
//mem
GlobalMemoryStatusEx varptr(buf)
dwMemoryLoad = double(strf("%I64u",buf(0) ))/1024/1024/1024// メモリの使用率(%)
ullTotalPhys = double(strf("%I64u",buf(1) ))/1024/1024// 物理メモリの搭載容量
ullAvailPhys = double(strf("%I64u",buf(2) ))/1024/1024// 物理メモリの空き容量
ullTotalPageFile = double(strf("%I64u",buf(3) ))/1024/1024// ページングの搭載容量
ullAvailPageFile = double(strf("%I64u",buf(4) ))/1024/1024// ページングの空き容量
ullTotalVirtual = double(strf("%I64u",buf(5) ))/1024/1024// 仮想メモリの搭載容量
ullAvailVirtual = double(strf("%I64u",buf(6) ))/1024/1024// 仮想メモリの空き容量
ullAvailExtendedVirtual= double(strf("%I64u",buf(7) ))/1024/1024// 仮想メモリの拡張空き容量
//
}
timer_all+(cpu_total-timer_all)/10
repeat sysinfo(17)
timer_(cnt)+(cpu_(cnt)-timer_(cnt))/10
loop

redraw 0
alErase
color 0,0,0
boxf
//mem
x=10
y=10
color 0,255,0
boxf x-1,y-1,x+200+1,y+18+1
color
boxf x,y,x+200,y+18
color ,255
repeat int((ullTotalPhys-ullAvailPhys)/ullTotalPhys*20)
boxf x+(cnt)*5+1,y+1,x+(cnt+1)*5-1,y+18-1
loop

pos x,y+18+5
color 0,255,0
mes strf("%3.2f / %3.2f MiB " , ullTotalPhys-ullAvailPhys ,ullTotalPhys )

//cpu
size=(ginfo_winy-20)/(sysinfo(17)/2)-10
color 100,100,100
boxf ginfo_winx-10-((size+10)*2+10),10,ginfo_winx-10,10 +(size+10)*(sysinfo(17)/2)
repeat sysinfo(17)
x=ginfo_winx-10-((size+10)*2+10)+10+(size+10)*(cnt\2)
y=10 +(size+10)*(cnt/2)

alColor 255,255,255,255
alDrawArc x, y, size, size, 2, 253
color 255,255,255
rad=deg2rad(255.*0/100.)
line x+size/2+double(size/2+5)*cos(rad) , y+size/2+double(size/2+5)*sin(rad) , x+size/2+double(size/2-2)*cos(rad) , y+size/2+double(size/2-2)*sin(rad)
color 255
rad=deg2rad(255.*100/100.)
line x+size/2+double(size/2+0)*cos(rad) , y+size/2+double(size/2+0)*sin(rad) , x+size/2+double(size/2-5)*cos(rad) , y+size/2+double(size/2-5)*sin(rad)
color ,255
rad=deg2rad(255.*timer_(cnt)/100.)
line x+size/2+double(size/2-5)*cos(rad) , y+size/2+double(size/2-5)*sin(rad) , x+size/2 , y+size/2
pos x+size-9*7,y+size/2-18
color 255,255,255
mes strf("%6.2f%% " , cpu_(cnt) )
loop
//
alCopyImageToScreen 1, 1
redraw 1
// if cnt\int(60.*sec)=0{
filepath=dir_cur+"/screen.bmp"
bmpsave filepath
// }
await 1000/60
// if cnt\int(60.*sec)=0{
SystemParametersInfo SPI_SETDESKWALLPAPER , 0 , varptr(filepath) , SPIF_SENDCHANGE
// }

loop

*ed
PdhCloseQuery hQuery
filepath=""
SystemParametersInfo SPI_SETDESKWALLPAPER , 0 , varptr(filepath) , SPIF_SENDCHANGE
end



Densya

リンク

2019/2/27(Wed) 17:20:10|NO.86731

度々すみません。
一行目はニ行に分けて記述する、または : を使用しないとエラーが発生します。



名無三

リンク

2019/2/27(Wed) 18:28:27|NO.86733

ごめんなさい、コピペミスです



名無三

リンク

2019/2/27(Wed) 18:44:35|NO.86734


onexit *ed //kenel32 #include "kernel32.as" //Win32API関数の呼び出し定義 #uselib "Pdh.dll" #func global PdhOpenQuery "PdhOpenQueryA" sptr,sptr,sptr #func global PdhCloseQuery "PdhCloseQuery" sptr #func global PdhAddCounter "PdhAddCounterA" sptr,sptr,sptr,sptr #func global PdhCollectQueryData "PdhCollectQueryData" sptr #func global PdhGetFormattedCounterValue "PdhGetFormattedCounterValue" sptr,sptr,sptr,sptr #const global NULL 0 #const global ERROR_SUCCESS $00000000 #const global PDH_FMT_LONG $00000100 #const global PDH_FMT_DOUBLE $00000200 //user32 #include "user32.as" #define MAX_PATH 260 #define SPIF_UPDATEINIFILE 0 #define SPIF_SENDCHANGE 1 #define SPIF_SENDWININICHANGE 2 #define SPI_GETDESKWALLPAPER 0x0073 #define SPI_SETDESKWALLPAPER 0x0014 #define SPI_GETMOUSESPEED 0x0070 #define SPI_SETMOUSESPEED 0x0071 //art2D #include "a2d.hsp" //-------------------------------------------------------------------------------------------------- //cpu用 dim hQuery ;問い合わせのハンドル(PDH_HQUERY) dim hCounter ;カウンターのハンドル(PDH_HCOUNTER) dim fmtValue,sysinfo(17)+1 ;取得データの構造体(PDH_FMT_COUNTERVALUE) dupptr fmtDouble,varptr(fmtValue(2)),8,vartype("double") PdhOpenQuery NULL,0,varptr(hQuery) if(stat!=ERROR_SUCCESS):dialog "クエリーをオープンできません。",1,"確認":end repeat sysinfo(17) PdhAddCounter hQuery,"\\Processor("+cnt+")\\% Processor Time",0,varptr(hCounter(cnt)) loop PdhAddCounter hQuery,"\\Processor(_Total)\\% Processor Time",0,varptr(hCounter(8)) timer_all=0. ddim timer_,sysinfo(17) //メモリ用変数 ddim buf,8 lpoke buf,0,64 //設定 sec=0.1//更新頻度 filepath=dir_cur+"/screen.bmp" //-------------------------------------------------------------------------------------------------- screen 0,640,480 buffer 1,ginfo_dispx,ginfo_dispy gsel 1 alCreateImage 0, ginfo_dispx,ginfo_dispy repeat if cnt\int(60.*sec)=0{ //cpu PdhCollectQueryData hQuery repeat sysinfo(17) PdhGetFormattedCounterValue hCounter(cnt),PDH_FMT_double,NULL,varptr(fmtValue) cpu_(cnt)=fmtDouble loop PdhGetFormattedCounterValue hCounter(8),PDH_FMT_double,NULL,varptr(fmtValue) cpu_total=fmtDouble //mem GlobalMemoryStatusEx varptr(buf) dwMemoryLoad = double(strf("%I64u",buf(0) ))/1024/1024/1024// メモリの使用率(%) ullTotalPhys = double(strf("%I64u",buf(1) ))/1024/1024// 物理メモリの搭載容量 ullAvailPhys = double(strf("%I64u",buf(2) ))/1024/1024// 物理メモリの空き容量 ullTotalPageFile = double(strf("%I64u",buf(3) ))/1024/1024// ページングの搭載容量 ullAvailPageFile = double(strf("%I64u",buf(4) ))/1024/1024// ページングの空き容量 ullTotalVirtual = double(strf("%I64u",buf(5) ))/1024/1024// 仮想メモリの搭載容量 ullAvailVirtual = double(strf("%I64u",buf(6) ))/1024/1024// 仮想メモリの空き容量 ullAvailExtendedVirtual= double(strf("%I64u",buf(7) ))/1024/1024// 仮想メモリの拡張空き容量 // } timer_all+(cpu_total-timer_all)/10 repeat sysinfo(17) timer_(cnt)+(cpu_(cnt)-timer_(cnt))/10 loop redraw 0 alErase gsel 0,2 gsel 1 //枠 color 0,0,0 boxf color 128,128,128 x1=double(7)//+double(ginfo_winx/2)*sin(deg2rad(cnt*5)) y1=double(7)//+double(ginfo_winy/2)*sin(deg2rad(cnt*5)) x2=double(ginfo_winx-x1*2) y2=double(ginfo_winy-y1*2) con=double((cnt*20)\x2)/x2*2 if con>=1{con=1.0} con2=double((cnt*20)\x2)/x2*2-1. if con<=0{con=0.0} line x1 , y1+y2*con2 , x1 , y1+y2*con line x1+x2*con2 , y1+y2 , x1+x2*con , y1+y2 line x1+x2*(1.-con) , y1 , x1+x2*(1.-con2) , y1 line x1+x2 , y1+y2*(1.-con) , x1+x2 , y1+y2*(1.-con2) //mem memx=20 memy=20 x=memx y=memy color 0,255,0 boxf x-1,y-1,x+200+1,y+18+1 color boxf x,y,x+200,y+18 color ,255 repeat int((ullTotalPhys-ullAvailPhys)/ullTotalPhys*20) boxf x+(cnt)*10+1,y+1,x+(cnt+1)*10-1,y+18-1 loop pos x,y+18+5 color 0,255,0 mes strf("MEM %3.2f / %3.2f MiB " , ullTotalPhys-ullAvailPhys ,ullTotalPhys ) //cpu cpux=ginfo_winx-((size+10)*2+10)-20 cpuy=20 color 0,255,0 pos cpux+1,cpuy+1 mes "CPU" size=double((ginfo_winy/2-20)/(sysinfo(17)/2)-10)//*sin(deg2rad(cnt/2)) color 100,100,100 x1=cpux y1=cpuy x2=cpux+((size+10)*2+10) y2=cpuy+(size+10)*(sysinfo(17)/2)+10 line x1 , y1 , x2 , y1 line x1 , y1 , x1 , y2 line x2 , y1 , x2 , y2 line x1 , y2 , x2 , y2 repeat sysinfo(17) x=cpux+10+(size+10)*(cnt\2) y=cpuy+10+(size+10)*(cnt/2) alColor 255,255,255,255 alDrawArc x, y, size, size, 2, 253 color 255,255,255 rad=deg2rad(255.*0/100.) line x+size/2+double(size/2+5)*cos(rad) , y+size/2+double(size/2+5)*sin(rad) , x+size/2+double(size/2-2)*cos(rad) , y+size/2+double(size/2-2)*sin(rad) color 255 rad=deg2rad(255.*100/100.) line x+size/2+double(size/2+0)*cos(rad) , y+size/2+double(size/2+0)*sin(rad) , x+size/2+double(size/2-5)*cos(rad) , y+size/2+double(size/2-5)*sin(rad) color ,255 rad=deg2rad(255.*timer_(cnt)/100.) line x+size/2+double(size/2-5)*cos(rad) , y+size/2+double(size/2-5)*sin(rad) , x+size/2 , y+size/2 pos x+size-9*7,y+size/2-18 color 255,255,255 mes strf("%6.2f%% " , cpu_(cnt) ) loop alCopyImageToScreen 0, 1 if cnt<(rnd(50)+60){ color boxf color 0,255,0 pos ginfo_winx/2,ginfo_winy/2 aq="System Start" repeat mew\4 aq+"." loop if cnt\30=0{mew++} mes aq } // redraw 1 await 1000/60 bmpsave filepath SystemParametersInfo SPI_SETDESKWALLPAPER , 0 , varptr(filepath) , SPIF_SENDCHANGE loop *ed PdhCloseQuery hQuery filepath="" SystemParametersInfo SPI_SETDESKWALLPAPER , 0 , varptr(filepath) , SPIF_SENDCHANGE end

これで満足したので一旦終えます。

反省、感想
・APIの仕様などで勘違いしていた部分をなおせた
・中二心を満足させられた
・user32.asにマクロが全く登録されていない問題>>暇なときに製作し提案します
・かなり処理を食う>>配布されてるデスクトップ動画再生ソフトに対する利点がないため、軽量化などで差をつける必要あり

使用、参考にしたソース先です。
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-systemparametersinfoa

http://hsp.tv/play/pforum.php?mode=pastwch&num=84160

https://blog.goo.ne.jp/masaki_goo_2006/e/12625e0dceaf8edd4a51c6ce2e8100c3



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