KINDOFOSカインドオブオーエス関数

本ページには広告が含まれています。

OS種別を示す番号を返す関数です。引数にTRUEを指定するとOSが64bitがとうかを返します。

構文
  1. return = KINDOFOS( 64bit確認フラグ )
引数
64bit確認フラグ (Boolean = False)省略可
FALSE
OS種別を示す番号を返す(デフォルト)
TRUE
OSが 32bit / 64bit かを返す
戻り値

64bit確認フラグ=FALSE(デフォルト): OS種別を示す番号

10
NT3.5
11
NT4
12
Win2000
13
WinXP
14
Server2003
20
Vista
21
Server2008
22
Windows 7
23
Windows 8
24
Server2012
25
Windows 8.1
30
Windows 10
31
Server2016

64bit確認フラグ=TRUETRUE(64bit OS)/ FALSE(32bit OS)

プログラム実行例

パソコンの音量を上げる

パソコンの音量を上げます。Windows2000以降のOSの場合は仮想キーの操作で音量を上げ、Windows 2000より前のOSの場合はボリューム調整ツールを操作することで音量を上げます。

UWSC
IFB KINDOFOS() >= 12 THEN
	KBD(VK_VOLUME_UP)
ELSE
	ID = EXEC("SNDVOL32.exe /t")
	SETSLIDER(ID, GETSLIDER(ID, 1) - 10)
ENDIF
解説

パソコンの音量を下げる

パソコンの音量を下げます。Windows2000以降のOSの場合は仮想キーの操作で音量を下げ、Windows 2000より前のOSの場合はボリューム調整ツールを操作することで音量を下げます。

UWSC
IFB KINDOFOS() >= 12
	KBD(VK_VOLUME_DOWN)
ELSE
	ID = EXEC("SNDVOL32.exe /t")
	SETSLIDER(ID, GETSLIDER(ID, 1) + 10)
ENDIF
解説

UWSCを起動したときのウィンドウの座標をマウス位置の座標に書き換える

UWSC
CTRLWIN(GETID("UWSC Pro"), CLOSE)

DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM username = WshShell.ExpandEnvironmentStrings("%USERNAME%")

SELECT TRUE
	CASE KINDOFOS() >= 20
		path = "C:\Users\" + username + "\AppData\Roaming\UWSC\UWSC.INI"
	CASE KINDOFOS() = 13
		path = "C:\Documents and Settings\" + username + "\Application Data\UWSC\UWSC.INI"
	DEFAULT
		MSGBOX("UWSC.INIのパスを特定できませんでした。")
		EXIT
SELEND

PRINT WRITEINI("SET", "Position", G_MOUSE_X + "," + G_MOUSE_Y, path)

//////////////////////////////////////////////////
// 【引数】
//   section : セクション 
//   key : キー(Delete関数は省略可) 
//   value : 値 
//   path : INIファイルのパス 
//   default : セクションとキーが存在しなかった場合に返す値 
// 【戻り値】
//   
//////////////////////////////////////////////////
MODULE INI
	DEF_DLL GetPrivateProfileStringW(wstring,wstring,wstring,var pwchar,dword,wstring):dword:kernel32
	DEF_DLL WritePrivateProfileStringW(wstring,wstring,wstring,wstring):bool:kernel32
	FUNCTION Read(section = NULL, key = NULL, path = NULL, default = EMPTY)
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB path = NULL THEN
			path = FSO.GetAbsolutePathName(FSO.GetBaseName(GET_UWSC_NAME) + ".INI")
		ELSE
			path = FSO.GetAbsolutePathName(path)
		ENDIF
		DIM n = 1024
		DIM buffer = FORMAT(CHR(0), n)
		IFB GetPrivateProfileStringW(section, key, default, buffer, n, path) = 0 THEN
			RESULT = default
		ELSE
			RESULT = SLICE(SPLIT(buffer, CHR(0), TRUE))
			IF section <> NULL AND key <> NULL THEN RESULT = RESULT[0]
		ENDIF
	FEND
	FUNCTION Write(section, key, value, path = NULL)
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB path = NULL THEN
			path = FSO.GetAbsolutePathName(FSO.GetBaseName(GET_UWSC_NAME) + ".INI")
		ELSE
			path = FSO.GetAbsolutePathName(path)
		ENDIF
		RESULT = WritePrivateProfileStringW(section, key, value, path)
	FEND
	PROCEDURE Delete(section, key = NULL, path = NULL)
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB path = NULL THEN
			path = FSO.GetAbsolutePathName(FSO.GetBaseName(GET_UWSC_NAME) + ".INI")
		ELSE
			path = FSO.GetAbsolutePathName(path)
		ENDIF
		PRINT WritePrivateProfileStringW(section, key, NULL, path)
	FEND
	FUNCTION escape(value)
		DIM esc = ";#=:"
		FOR i = 1 TO LENGTH(esc)
			DIM s = COPY(esc, i, 1)
			value = REPLACE(value, s, "\" + s)
		NEXT
		RESULT = value
	FEND
	FUNCTION unescape(value)
		DIM esc = ";#=:"
		FOR i = 1 TO LENGTH(esc)
			DIM s = COPY(esc, i, 1)
			value = REPLACE(value, "\" + s, s)
		NEXT
		RESULT = value
	FEND
ENDMODULE
解説

OSを取得

UWSC
HASHTBL OS

OS[10] = "NT3.5"
OS[11] = "NT4"
OS[12] = "Win2000"
OS[13] = "WinXP"
OS[14] = "Server2003"
OS[20] = "Vista"
OS[21] = "Server2008"
OS[22] = "Windows 7"
OS[23] = "Windows 8"
OS[24] = "Server2012"
OS[25] = "Windows 8.1"
OS[30] = "Windows 10"
OS[31] = "Server2016"

PRINT OS[KINDOFOS()]
使用関数

関連記事

Shell.GetSystemInformation メソッド
システム情報を取得します。