|
 |
|
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に書き出さずにデスクトップ変更できないものか…
エラー報告、あったら面白い機能など色々オナシャス!

| |
|
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、構成を教えてください
|
|
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

| |
|
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

| |
|