スクリプト言語の HSP については、公式ホームページの「HSPTV!」をどうぞ。(戻る)
ここには、ちょっとしたツールを作成するときに活用できるクリーニング命令群を紹介します。
- ゴミ箱を空する (SHEmptyRecycleBin)
- クリップボードのクリア (apiClipClear)
- ワーキングセットのクリア (WorkingSetClear)
- 最近使ったファイルのクリア (SHAddToRecentDocs)
上記のカッコ内で apiClipClear、WorkingSetClear 命令はユーザー定義命令ですが、
SHEmptyRecycleBin 命令、SHAddToRecentDocs 命令の2つは Win32API 関数です。
詳しい技術資料などはC言語カテゴリの下記を参照して下さい。
ここで紹介する命令は HSP で使えるようにC言語からHSP用に新たに書き下ろした命令群です。
技術資料
関連カテゴリ
クリーニング命令群の使い方
// ゴミ箱を空する SHEmptyRecycleBin NULL,NULL,(SHERB_NOCONFIRMATION|SHERB_NOPROGRESSUI|SHERB_NOSOUND)
// クリップボードのクリア apiClipClear
// ワーキングセットのクリア WorkingSetClear
// 最近使ったファイルのクリア SHAddToRecentDocs SHARD_PATH,NULL
動作確認のサンプル
//------------------------------------------------------------------------------ // クリーニング命令のサンプル by 科学太郎 //============================================================================== // @URL(http://msdn.microsoft.com/en-us/library/bb762160.aspx)→「SHEmptyRecycleBin」 // @URL(http://msdn.microsoft.com/en-us/library/bb762105.aspx)→「SHAddToRecentDocs」 //------------------------------------------------------------------------------ #include "User32.as" #include "Shell32.as" #include "Kernel32.as" //-------------------------------------- // Win32API関数の呼び出し定義 //-------------------------------------- #uselib "Psapi.dll" #func global EnumProcesses "EnumProcesses" sptr,sptr,sptr #func global EmptyWorkingSet "EmptyWorkingSet" sptr //-------------------------------------- // 記号定数(API定数) //-------------------------------------- #const global NULL 0 #const global SHERB_NOCONFIRMATION $00000001 #const global SHERB_NOPROGRESSUI $00000002 #const global SHERB_NOSOUND $00000004 #const global SHARD_PATH $00000002 # #const global PROCESS_SET_QUOTA $00000100 #const global PROCESS_QUERY_INFORMATION $00000400 //-------------------------------------- // メイン部 //-------------------------------------- *Main screen 0,640,480,SCREEN_NORMAL|SCREEN_FIXEDSIZE syscolor 15:boxf:color:title "クリーニング命令のサンプル by 科学太郎" ;配置 objsize 150,25 button gosub "ゴミ箱を空にする", *PushRecycleBin button gosub "クリップボードのクリア", *PushClipBoard button gosub "ワーキングセットのクリア", *PushWorkingSet button gosub "最近使ったファイルのクリア", *PushRecentDocs stop //-------------------------------------- // ゴミ箱を空する //-------------------------------------- *PushRecycleBin SHEmptyRecycleBin NULL,NULL,(SHERB_NOCONFIRMATION|SHERB_NOPROGRESSUI|SHERB_NOSOUND) dialog "ゴミ箱を空にしました。",0,"確認" return //-------------------------------------- // クリップボードのクリア //-------------------------------------- *PushClipBoard apiClipClear dialog "クリップボードをクリアしました。",0,"確認" return //-------------------------------------- // ワーキングセットのクリア //-------------------------------------- *PushWorkingSet WorkingSetClear dialog "ワーキングセットをクリアしました。",0,"確認" return //-------------------------------------- // 最近使ったファイルのクリア //-------------------------------------- *PushRecentDocs SHAddToRecentDocs SHARD_PATH,NULL dialog "最近使ったファイルをクリアしました。",0,"確認" return //-------------------------------------- // クリップボードのデータをクリア //-------------------------------------- #deffunc apiClipClear OpenClipboard hWnd if(stat){ EmptyClipboard CloseClipboard } return //-------------------------------------- // ワーキングセットのクリア //-------------------------------------- #deffunc WorkingSetClear\ local nSize,local hProcess,local idProcess dim nSize:dim hProcess:dim idProcess,1024 EnumProcesses varptr(idProcess),length(idProcess)*4,varptr(nSize) if(stat){ repeat(nSize/4) OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_SET_QUOTA),0,idProcess(cnt):hProcess=stat if(stat){ EmptyWorkingSet hProcess CloseHandle hProcess } loop } return //------------------------------------------------------------------------------ // End of sample185b.hsp //------------------------------------------------------------------------------
関連記事
- シャットダウンのサンプル
- クリーニングのサンプル
※コメント投稿者のブログIDはブログ作成者のみに通知されます