本文へジャンプ

モジュール


ここで紹介しているモジュールはすべてHSP3用のモジュールです



■実行優先度の変更モジュール

 

 

作成されたアプリケーションの実行優先度を変更するモジュールです
特に常駐型のアプリケーションを作成した際、他のアプリケーションに影響を与えないように実行優先度を下げる場合に有効です
以下のモージュールはちょくとさんが作った実行優先度変更モージュールを簡単なパラメーターで実行優先度が変更できるように改変したものです



実行優先度の変更(SetPriority)

戻り値 : 実行優先度の変更に失敗した場合 stat=-1

・書式 
SetPriority p1
・引数 p1(int) 0〜2 : 設定モード

    p1(int)
    ---------------------------
     0:通常優先度
     1:優先度クラスをアイドルに設定(優先度が下がる)
     2:優先度クラスを優先に設定(優先度が上がる)




#module ;-------- 優先度変更モジュール --------------------

#uselib "kernel32.dll"
#func GetCurrentProcess "GetCurrentProcess"
#func GetCurrentThread "GetCurrentThread"
#func SetPriorityClass "SetPriorityClass" int,int
#func SetThreadPriority "SetThreadPriority" int,int

; プロセスの優先度クラス
#const NORMAL_PRIORITY_CLASS 0x00000020
#const IDLE_PRIORITY_CLASS 0x00000040
#const HIGH_PRIORITY_CLASS 0x00000080

;======== 優先度変更命令 ========
#deffunc SetPriority int p1

PriorityClass = NORMAL_PRIORITY_CLASS
RelativePriority = 0

if (p1 = 1){
PriorityClass = IDLE_PRIORITY_CLASS
RelativePriority = -2
}
if (p1 = 2){
PriorityClass = HIGH_PRIORITY_CLASS
RelativePriority = 2
}

GetCurrentProcess
SetPriorityClass stat, PriorityClass
if stat == 0 : myerr |= 1

GetCurrentThread
SetThreadPriority stat, RelativePriority
if stat == 0 : myerr |= 2

return myerr

#global






Copyright(C) 2004-2006 All rights reserved.
HSP TOOL