Contents
- 1 プログラム実行例
- 1.1 画像をクリップボードにコピーする
- 1.2 コントロールパネルを起動する
- 1.3 アイドル時間を取得
- 1.4 電卓(ストアアプリ)を起動
- 1.5 マウスカーソル下のウィンドウの情報を吹き出しに表示
- 1.6 処理を5秒間待機します
- 1.7 Internet Explorerで開いたページを印刷
- 1.8 Internet Explorerで指定したURLを開きます
- 1.9 指定したURLを新しいタブで開く
- 1.10 POSTデータを送信して指定したURLを開く
- 1.11 プログラム実行時からの経過時間を表示(ESCで終了)
- 1.12 ExcelからWordを起動する
- 1.13 アクティブセルに文字列を入力する
- 1.14 マウスカーソル下の色を取得
- 1.15 「プログラムと機能」を開く
- 1.16 「ディスプレイ」を開く
- 1.17 「インターネットのプロパティ」を開く
- 1.18 「システムのプロパティ」を開く
- 1.19 「マウスのプロパティ」を開く
- 1.20 「電卓」を起動
- 1.21 「文字コード表」を起動
- 1.22 「DirectX 診断ツール」を起動
- 1.23 「外字エディタ」を起動
- 1.24 「すべてのコントロール パネル項目」を開く
- 1.25 「プリンター」を開く
- 1.26 「ドキュメント」を開く
- 1.27 「お気に入り」を開く
- 1.28 「スタートアップ」を開く
- 1.29 「最近使った項目」を開く
- 1.30 「送る」を開く
- 1.31 「ごみ箱」を開く
- 1.32 「スタートメニュー」を開く
- 1.33 「デスクトップ」を開く
- 1.34 「My Computer」を開く
- 1.35 「ネットワーク」を開く
- 1.36 「ネットワークショートカット」を開く
- 1.37 「フォント」を開く
- 1.38 「テンプレート」を開く
- 1.39 「スタート メニュー」を開く
- 1.40 「プログラム」を開く
- 1.41 「スタートアップ」を開く
- 1.42 「パブリックデスクトップ」を開く
- 1.43 「Roaming」フォルダを開く
- 1.44 「Printer Shortcuts」を開く
- 1.45 「Local」を開く
- 1.46 「スタートアップ」を開く
- 1.47 「スタートアップ」を開く
- 1.48 「お気に入り」を開く
- 1.49 「Temporary Internet Files」を開く
- 1.50 「INetCookies」を開く
- 1.51 「History」を開く
- 1.52 「ProgramData」を開く
- 1.53 「Windows」フォルダを開く
- 1.54 「System32」を開く
- 1.55 「Program Files」を開く
- 1.56 「ピクチャ」を開く
- 1.57 「ユーザーフォルダ」を開く
- 1.58 「SysWOW64」フォルダを開く
- 1.59 「Windows 管理ツール」を開く
- 1.60 指定日時までのカウントダウンタイマー
- 構文
- SLEEP( 秒 )
- 引数
- 秒
- スリープする秒数(最小=0.001)
- 戻値
プログラム実行例
画像をクリップボードにコピーする
Alt+Sでマウスカーソル下のオブジェクトのスクリーンショット画像をクリップボードにコピーします。
SETHOTKEY(VK_S, MOD_ALT, "imageToClipboard")
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
WHILE TRUE
SLEEP(0.01)
WEND
PROCEDURE imageToClipboard()
SAVEIMG( , GETID(GET_FROMPOINT_WIN))
FEND
//////////////////////////////////////////////////
// 【引数】
//
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE forceQuit()
EXITEXIT
FEND
解説
- 1行目
Alt+SでimageToClipboard関数を実行します。SETHOTKEY(VK_S, MOD_ALT, "imageToClipboard")
- 2行目
EscでforceQuit関数を実行します。SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
- 4-6行目
無限ループ。Alt+SもしくはEscが入力されるのを待機します。WHILE TRUE SLEEP(0.01) WEND
コントロールパネルを起動する
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("control")
SLEEP(3.000)
DIM ID = GETID("コントロール パネル")
CTRLWIN(ID, CLOSE)
アイドル時間を取得
DEF_DLL GetTickCount(): Dword: kernel32
DEF_DLL GetLastInputInfo({DWORD, DWORD}): BOOL: user32
DIM t
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
WHILE TRUE
GetLastInputInfo(8, t)
FUKIDASI((GetTickCount() - t) + "ms")
SLEEP(0.01)
WEND
//////////////////////////////////////////////////
// 【引数】
//
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE forceQuit()
EXITEXIT
FEND
電卓(ストアアプリ)を起動
Windows 10のストアアプリである電卓は、EXECで起動したときの戻値にIDを返してくれないので起動後にGETIDで取得します。
EXEC("calc")
DIM ID = GETID("電卓")
SLEEP(3.00)
CTRLWIN(ID, CLOSE)
マウスカーソル下のウィンドウの情報を吹き出しに表示
PUBLIC ttl, cls
SETHOTKEY(VK_ESC, , "forceQuit")
SETHOTKEY(VK_S, MOD_ALT, "output")
WHILE TRUE
ID = GETID(GET_FROMPOINT_WIN)
msg = ""
msg = msg + "ALT+Sでカーソル下のタイトルとクラス名を出力<#CR>"
msg = msg + "ESCで終了<#CR>"
msg = msg + "<#CR>"
ttl = STATUS(ID, ST_TITLE)
cls = STATUS(ID, ST_CLASS)
msg = msg + "タイトル:" + ttl + "<#CR>"
msg = msg + "クラス名:" + cls + "<#CR>"
msg = msg + "X座標:" + STATUS(ID, ST_X) + "<#CR>"
msg = msg + "Y座標:" + STATUS(ID, ST_Y) + "<#CR>"
msg = msg + "幅:" + STATUS(ID, ST_WIDTH) + "<#CR>"
msg = msg + "高さ:" + STATUS(ID, ST_HEIGHT) + "<#CR>"
msg = msg + "クライアントX座標:" + STATUS(ID, ST_CLX) + "<#CR>"
msg = msg + "クライアントY座標:" + STATUS(ID, ST_CLY) + "<#CR>"
msg = msg + "クライアント幅:" + STATUS(ID, ST_CLWIDTH) + "<#CR>"
msg = msg + "クライアント高さ:" + STATUS(ID, ST_CLHEIGHT) + "<#CR>"
msg = msg + "親ウィンドウID:" + STATUS(ID, ST_PARENT) + "<#CR>"
msg = msg + "アイコン状態:" + STATUS(ID, ST_ICON) + "<#CR>"
msg = msg + "最大化:" + STATUS(ID, ST_MAXIMIZED) + "<#CR>"
msg = msg + "表示状態:" + STATUS(ID, ST_VISIBLE) + "<#CR>"
msg = msg + "アクティブ状態:" + STATUS(ID, ST_ACTIVE) + "<#CR>"
msg = msg + "ビジー状態:" + STATUS(ID, ST_BUSY) + "<#CR>"
msg = msg + "有効ID:" + STATUS(ID, ST_ISID) + "<#CR>"
msg = msg + "64bit:" + STATUS(ID, ST_WIN64) + "<#CR>"
msg = msg + "EXEパス:" + STATUS(ID, ST_PATH) + "<#CR>"
msg = msg + "プロセスID:" + STATUS(ID, ST_PROCESS) + "<#CR>"
msg = msg + "モニター番号:" + STATUS(ID, ST_MONITOR) + "<#CR>"
FUKIDASI(msg)
SLEEP(0.01)
WEND
// 強制終了する
PROCEDURE forceQuit()
EXITEXIT
FEND
// カーソル下のウィンドウのタイトルとクラス名を出力
PROCEDURE output()
PRINT "GETID(<#DBL>" + ttl + "<#DBL>, <#DBL>" + cls + "<#DBL>)"
PRINT ttl
PRINT cls
PRINT "----------"
FEND
処理を5秒間待機します
SLEEP(5.000)
Internet Explorerで開いたページを印刷
ExecWBの第1引数に「OLECMDID_PRINT」を指定すると、[ファイル]メニューの[印刷]を実行するのと同じ動作をします。
またExecWBの第2引数に「OLECMDEXECOPT_DONTPROMPTUSER」を指定しているので。ユーザーの入力を促すことなく印刷が始まります。このプログラムを実行する際は注意してください。
CONST OLECMDID_PRINT = 6
CONST OLECMDEXECOPT_DONTPROMPTUSER = 2
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("http://example.com")
BusyWait(IE)
SLEEP(3.000)
// [ファイル]メニューの[印刷]
DIM cmdID = OLECMDID_PRINT
IE.ExecWB(cmdID, OLECMDEXECOPT_DONTPROMPTUSER)
IE.Quit
//////////////////////////////////////////////////
// 【引数】
// IE : IEオブジェクト
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE BusyWait(Var IE)
SLEEP(0.500)
DIM t = GETTIME()
TRY
REPEAT
DIM tm = GETTIME() - t
FUKIDASI("BusyWait:" + tm)
SLEEP(0.010)
IF tm >= 60 THEN BREAK
UNTIL !IE.Busy AND IE.readyState = 4
EXCEPT
IE = getIEObj(-1)
PRINT IE.document.URL + " のIEオブジェクトを取得しました。"
BusyWait(IE)
ENDTRY
FUKIDASI()
FEND
//////////////////////////////////////////////////
// 【引数】
// 文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定
// 完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得)
// 【戻値】
// Internet Explorerオブジェクト
//////////////////////////////////////////////////
FUNCTION getIEObj(str, flg = FALSE)
DIM Shell = CREATEOLEOBJ("Shell.Application")
SELECT CHKNUM(str)
CASE TRUE
DIM cnt = 0
SELECT TRUE
CASE str > 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB str = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str < 0
FOR n = Shell.Windows.Count - 1 TO 0 STEP -1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB ABS(str) = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str = 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1
EXCEPT
ENDTRY
NEXT
RESULT = cnt
EXIT
SELEND
CASE FALSE
DIM t = GETTIME()
REPEAT
FOR n = 0 TO Shell.Windows.Count - 1
TRY
DIM targetObj = Shell.Windows.Item(n)
IFB targetObj.Name = "Internet Explorer" THEN
SELECT flg
CASE TRUE
IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
CASE FALSE
IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
SELEND
ENDIF
EXCEPT
ENDTRY
NEXT
UNTIL GETTIME() - t >= 5
SELEND
RESULT = ERR_VALUE
FEND
Internet Explorerで指定したURLを開きます
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("http://example.com/")
BusyWait(IE)
SLEEP(3.000)
IE.Quit
//////////////////////////////////////////////////
// 【引数】
// IE : IEオブジェクト
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE BusyWait(Var IE)
SLEEP(0.500)
DIM t = GETTIME()
TRY
REPEAT
DIM tm = GETTIME() - t
FUKIDASI("BusyWait:" + tm)
SLEEP(0.010)
IF tm >= 60 THEN BREAK
UNTIL !IE.Busy AND IE.readyState = 4
EXCEPT
IE = getIEObj(-1)
PRINT IE.document.URL + " のIEオブジェクトを取得しました。"
BusyWait(IE)
ENDTRY
FUKIDASI()
FEND
//////////////////////////////////////////////////
// 【引数】
// 文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定
// 完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得)
// 【戻値】
// Internet Explorerオブジェクト
//////////////////////////////////////////////////
FUNCTION getIEObj(str, flg = FALSE)
DIM Shell = CREATEOLEOBJ("Shell.Application")
SELECT CHKNUM(str)
CASE TRUE
DIM cnt = 0
SELECT TRUE
CASE str > 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB str = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str < 0
FOR n = Shell.Windows.Count - 1 TO 0 STEP -1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB ABS(str) = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str = 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1
EXCEPT
ENDTRY
NEXT
RESULT = cnt
EXIT
SELEND
CASE FALSE
DIM t = GETTIME()
REPEAT
FOR n = 0 TO Shell.Windows.Count - 1
TRY
DIM targetObj = Shell.Windows.Item(n)
IFB targetObj.Name = "Internet Explorer" THEN
SELECT flg
CASE TRUE
IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
CASE FALSE
IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
SELEND
ENDIF
EXCEPT
ENDTRY
NEXT
UNTIL GETTIME() - t >= 5
SELEND
RESULT = ERR_VALUE
FEND
指定したURLを新しいタブで開く
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("http://example.com/", $800)
tab = getIEObj("http://example.com/")
BusyWait(tab)
SLEEP(3.000)
tab.Quit
IE.Quit
//////////////////////////////////////////////////
// 【引数】
// IE : IEオブジェクト
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE BusyWait(Var IE)
SLEEP(0.500)
DIM t = GETTIME()
TRY
REPEAT
DIM tm = GETTIME() - t
FUKIDASI("BusyWait:" + tm)
SLEEP(0.010)
IF tm >= 60 THEN BREAK
UNTIL !IE.Busy AND IE.readyState = 4
EXCEPT
IE = getIEObj(-1)
PRINT IE.document.URL + " のIEオブジェクトを取得しました。"
BusyWait(IE)
ENDTRY
FUKIDASI()
FEND
//////////////////////////////////////////////////
// 【引数】
// 文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定
// 完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得)
// 【戻値】
// Internet Explorerオブジェクト
//////////////////////////////////////////////////
FUNCTION getIEObj(str, flg = FALSE)
DIM Shell = CREATEOLEOBJ("Shell.Application")
SELECT CHKNUM(str)
CASE TRUE
DIM cnt = 0
SELECT TRUE
CASE str > 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB str = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str < 0
FOR n = Shell.Windows.Count - 1 TO 0 STEP -1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB ABS(str) = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str = 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1
EXCEPT
ENDTRY
NEXT
RESULT = cnt
EXIT
SELEND
CASE FALSE
DIM t = GETTIME()
REPEAT
FOR n = 0 TO Shell.Windows.Count - 1
TRY
DIM targetObj = Shell.Windows.Item(n)
IFB targetObj.Name = "Internet Explorer" THEN
SELECT flg
CASE TRUE
IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
CASE FALSE
IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
SELEND
ENDIF
EXCEPT
ENDTRY
NEXT
UNTIL GETTIME() - t >= 5
SELEND
RESULT = ERR_VALUE
FEND
POSTデータを送信して指定したURLを開く
HASHTBL data
// 送信するデータを「data[名前] = 値」の形式で指定
data["mail"] = "info@example.com"
data["address"] = "北海道"
DIM arr[LENGTH(data) - 1]
FOR n = 0 TO LENGTH(data) - 1
// 連想配列の中身を「名前=値」の形式に変換
arr[n] = arr[n] + data[n, HASH_KEY] + "=" + ENCODE(ENCODE(data[n, HASH_VAL], CODE_UTF8), CODE_URL)
NEXT
// 配列の中身を「&」で結合
DIM PostData = JOIN(arr, "&")
// データをエンコード
PostData = ENCODE(PostData, CODE_BYTEARRAY)
// PostDataを渡すときは必ず指定
DIM Headers = "Content-Type: application/x-www-form-urlencoded"
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("http://example.com", , , PostData, Headers)
BusyWait(IE)
SLEEP(5.000)
IE.Quit
//////////////////////////////////////////////////
// 【引数】
// IE : IEオブジェクト
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE BusyWait(Var IE)
SLEEP(0.500)
DIM t = GETTIME()
TRY
REPEAT
DIM tm = GETTIME() - t
FUKIDASI("BusyWait:" + tm)
SLEEP(0.010)
IF tm >= 60 THEN BREAK
UNTIL !IE.Busy AND IE.readyState = 4
EXCEPT
IE = getIEObj(-1)
PRINT IE.document.URL + " のIEオブジェクトを取得しました。"
BusyWait(IE)
ENDTRY
FUKIDASI()
FEND
//////////////////////////////////////////////////
// 【引数】
// 文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定
// 完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得)
// 【戻値】
// Internet Explorerオブジェクト
//////////////////////////////////////////////////
FUNCTION getIEObj(str, flg = FALSE)
DIM Shell = CREATEOLEOBJ("Shell.Application")
SELECT CHKNUM(str)
CASE TRUE
DIM cnt = 0
SELECT TRUE
CASE str > 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB str = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str < 0
FOR n = Shell.Windows.Count - 1 TO 0 STEP -1
TRY
IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
cnt = cnt + 1
IFB ABS(str) = cnt THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
ENDIF
EXCEPT
ENDTRY
NEXT
CASE str = 0
FOR n = 0 TO Shell.Windows.Count - 1
TRY
IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1
EXCEPT
ENDTRY
NEXT
RESULT = cnt
EXIT
SELEND
CASE FALSE
DIM t = GETTIME()
REPEAT
FOR n = 0 TO Shell.Windows.Count - 1
TRY
DIM targetObj = Shell.Windows.Item(n)
IFB targetObj.Name = "Internet Explorer" THEN
SELECT flg
CASE TRUE
IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
CASE FALSE
IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN
RESULT = Shell.Windows.Item(n)
EXIT
ENDIF
SELEND
ENDIF
EXCEPT
ENDTRY
NEXT
UNTIL GETTIME() - t >= 5
SELEND
RESULT = ERR_VALUE
FEND
プログラム実行時からの経過時間を表示(ESCで終了)
SETHOTKEY(VK_ESC, , "forceQuit")
DIM t = GETTIME()
WHILE TRUE
FUKIDASI(GETTIME() - t)
SLEEP(0.001)
WEND
PROCEDURE forceQuit()
EXITEXIT
FEND
ExcelからWordを起動する
CONST xlMicrosoftWord = 1
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
// Wordを起動
Excel.Application.ActivateMicrosoftApp(xlMicrosoftWord)
DIM ID = GETID("Microsoft Word", "OpusApp")
SLEEP(5.000)
// Wordを閉じる
CTRLWIN(ID, CLOSE)
Excel.Quit
アクティブセルに文字列を入力する
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Add()
DIM Range = Excel.Application.ActiveCell
SLEEP(1.000)
Range.Value = "abc"
SLEEP(3.000)
Excel.Application.DisplayAlerts = FALSE
Excel.Quit
マウスカーソル下の色を取得
// ESCキーで強制終了
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
WHILE TRUE
DIM c = PEEKCOLOR(G_MOUSE_X, G_MOUSE_Y)
DIM r = c AND $FF
DIM g = (c AND $FF00) / $100
DIM b = (c AND $FF0000) / $10000
FUKIDASI("赤<#TAB>" + r + "<#CR>緑<#TAB>" + g + "<#CR>青<#TAB>" + b)
SLEEP(0.001)
WEND
//////////////////////////////////////////////////
// 【引数】
//
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE forceQuit()
EXITEXIT
FEND
「プログラムと機能」を開く
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("appwiz.cpl")
SLEEP(3.000)
DIM ID = GETID("プログラムと機能")
CTRLWIN(ID, CLOSE)
「ディスプレイ」を開く
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("desk.cpl")
SLEEP(3.000)
DIM ID = GETID("設定", "ApplicationFrameWindow")
CTRLWIN(ID, CLOSE)
「インターネットのプロパティ」を開く
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("inetcpl.cpl")
SLEEP(3.000)
DIM ID = GETID("インターネットのプロパティ", "#32770")
CTRLWIN(ID, CLOSE)
「システムのプロパティ」を開く
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("sysdm.cpl", "#32770")
SLEEP(3.000)
DIM ID = GETID("システムのプロパティ")
CTRLWIN(ID, CLOSE)
「マウスのプロパティ」を開く
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("main.cpl")
SLEEP(3.000)
DIM ID = GETID("マウスのプロパティ", "#32770")
CTRLWIN(ID, CLOSE)
「電卓」を起動
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("calc")
SLEEP(3.000)
DIM ID = GETID("電卓", "ApplicationFrameWindow")
CTRLWIN(ID, CLOSE)
「文字コード表」を起動
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("charmap")
SLEEP(3.000)
DIM ID = GETID("文字コード表", "#32770")
CTRLWIN(ID, CLOSE)
「DirectX 診断ツール」を起動
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("dxdiag")
SLEEP(3.000)
DIM ID = GETID("DirectX 診断ツール", "#32770")
CTRLWIN(ID, CLOSE)
「外字エディタ」を起動
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.ControlPanelItem("eudcedit")
SLEEP(3.000)
DIM ID = GETID("コードの選択", "#32770")
CTRLWIN(ID, CLOSE)
ID = GETID("外字エディター", "Afx:dd0000:0:10003:6:")
CTRLWIN(ID, CLOSE)
「すべてのコントロール パネル項目」を開く
CONST ssfCONTROLS = 3
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCONTROLS)
SLEEP(3.000)
DIM ID = GETID("すべてのコントロール パネル項目")
CTRLWIN(ID, CLOSE)
「プリンター」を開く
CONST ssfPRINTERS = 4
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfPRINTERS)
SLEEP(3.000)
DIM ID = GETID("プリンター")
CTRLWIN(ID, CLOSE)
「ドキュメント」を開く
CONST ssfPERSONAL = 5
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfPERSONAL)
SLEEP(3.000)
DIM ID = GETID("ドキュメント")
CTRLWIN(ID, CLOSE)
「お気に入り」を開く
CONST ssfFAVORITES = 6
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfFAVORITES)
SLEEP(3.000)
DIM ID = GETID("お気に入り")
CTRLWIN(ID, CLOSE)
「スタートアップ」を開く
CONST ssfSTARTUP = 7
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfSTARTUP)
SLEEP(3.000)
DIM ID = GETID("スタートアップ")
//CTRLWIN(ID, CLOSE)
「最近使った項目」を開く
CONST ssfRECENT = 8
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfRECENT)
SLEEP(3.000)
DIM ID = GETID("最近使った項目")
CTRLWIN(ID, CLOSE)
「送る」を開く
CONST ssfSENDTO = 9
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfSENDTO)
SLEEP(3.000)
DIM ID = GETID("SendTo")
CTRLWIN(ID, CLOSE)
「ごみ箱」を開く
CONST ssfBITBUCKET = 10
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfBITBUCKET)
SLEEP(3.000)
DIM ID = GETID("ごみ箱")
CTRLWIN(ID, CLOSE)
「スタートメニュー」を開く
CONST ssfSTARTMENU = 11
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfSTARTMENU)
SLEEP(3.000)
DIM ID = GETID("スタート メニュー")
CTRLWIN(ID, CLOSE)
「デスクトップ」を開く
CONST ssfDESKTOPDIRECTORY = 16
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfDESKTOPDIRECTORY)
SLEEP(3.000)
DIM ID = GETID("デスクトップ")
CTRLWIN(ID, CLOSE)
「My Computer」を開く
CONST ssfDRIVES = 17
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfDRIVES)
SLEEP(3.000)
DIM ID = GETID("PC")
CTRLWIN(ID, CLOSE)
「ネットワーク」を開く
CONST ssfNETWORK = 18
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfNETWORK)
SLEEP(3.000)
DIM ID = GETID("ネットワーク")
CTRLWIN(ID, CLOSE)
「ネットワークショートカット」を開く
CONST ssfNETHOOD = 19
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfNETHOOD)
SLEEP(3.000)
DIM ID = GETID("Network Shortcuts")
CTRLWIN(ID, CLOSE)
「フォント」を開く
CONST ssfFONTS = 20
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfFONTS)
SLEEP(3.000)
DIM ID = GETID("Fonts")
CTRLWIN(ID, CLOSE)
「テンプレート」を開く
CONST ssfTEMPLATES = 21
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfTEMPLATES)
SLEEP(3.000)
DIM ID = GETID("Templates")
CTRLWIN(ID, CLOSE)
「スタート メニュー」を開く
CONST ssfCOMMONSTARTMENU = 22
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONSTARTMENU)
SLEEP(3.000)
DIM ID = GETID("スタート メニュー")
CTRLWIN(ID, CLOSE)
「プログラム」を開く
CONST ssfCOMMONPROGRAMS = 23
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONPROGRAMS)
SLEEP(3.000)
DIM ID = GETID("プログラム")
CTRLWIN(ID, CLOSE)
「スタートアップ」を開く
CONST ssfCOMMONSTARTUP = 24
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONSTARTUP)
SLEEP(3.000)
DIM ID = GETID("スタートアップ")
//CTRLWIN(ID, CLOSE)
「パブリックデスクトップ」を開く
CONST ssfCOMMONDESKTOPDIR = 25
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONDESKTOPDIR)
SLEEP(3.000)
DIM ID = GETID("パブリックデスクトップ")
CTRLWIN(ID, CLOSE)
「Roaming」フォルダを開く
CONST ssfAPPDATA = 26
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfAPPDATA)
SLEEP(3.000)
DIM ID = GETID("Roaming")
CTRLWIN(ID, CLOSE)
「Printer Shortcuts」を開く
CONST ssfPRINTHOOD = 27
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfPRINTHOOD)
SLEEP(3.000)
DIM ID = GETID("Printer Shortcuts")
CTRLWIN(ID, CLOSE)
「Local」を開く
CONST ssfLOCALAPPDATA = 28
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfLOCALAPPDATA)
SLEEP(3.000)
DIM ID = GETID("Local")
CTRLWIN(ID, CLOSE)
「スタートアップ」を開く
CONST ssfALTSTARTUP = 29
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfALTSTARTUP)
SLEEP(3.000)
DIM ID = GETID("スタートアップ")
//CTRLWIN(ID, CLOSE)
「スタートアップ」を開く
CONST ssfCOMMONALTSTARTUP = 30
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONALTSTARTUP)
SLEEP(3.000)
DIM ID = GETID("スタートアップ")
//CTRLWIN(ID, CLOSE)
「お気に入り」を開く
CONST ssfCOMMONFAVORITES = 31
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONFAVORITES)
SLEEP(3.000)
DIM ID = GETID("お気に入り")
CTRLWIN(ID, CLOSE)
「Temporary Internet Files」を開く
Temporary Internet Fiels = インターネット一時ファイル
CONST ssfINTERNETCACHE = 32
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfINTERNETCACHE)
SLEEP(3.000)
DIM ID = GETID("Temporary Internet Files")
CTRLWIN(ID, CLOSE)
「INetCookies」を開く
INetCookies = Cookieフォルダー
CONST ssfCOOKIES = 33
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOOKIES)
SLEEP(3.000)
DIM ID = GETID("INetCookies")
CTRLWIN(ID, CLOSE)
「History」を開く
CONST ssfHISTORY = 34
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfHISTORY)
SLEEP(3.000)
DIM ID = GETID("History")
CTRLWIN(ID, CLOSE)
「ProgramData」を開く
CONST ssfCOMMONAPPDATA = 35
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfCOMMONAPPDATA)
SLEEP(3.000)
DIM ID = GETID("ProgramData")
CTRLWIN(ID, CLOSE)
「Windows」フォルダを開く
CONST ssfWINDOWS = 36
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfWINDOWS)
SLEEP(3.000)
DIM ID = GETID("Windows")
CTRLWIN(ID, CLOSE)
「System32」を開く
CONST ssfSYSTEM = 37
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfSYSTEM)
SLEEP(3.000)
DIM ID = GETID("System32")
CTRLWIN(ID, CLOSE)
「Program Files」を開く
CONST ssfPROGRAMFILES = 38
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfPROGRAMFILES)
SLEEP(3.000)
DIM ID = GETID("Program Files")
CTRLWIN(ID, CLOSE)
「ピクチャ」を開く
CONST ssfMYPICTURES = 39
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfMYPICTURES)
SLEEP(3.000)
DIM ID = GETID("ピクチャ")
CTRLWIN(ID, CLOSE)
「ユーザーフォルダ」を開く
CONST ssfPROFILE = 40
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfPROFILE)
SLEEP(3.000)
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM ID = GETID(WshShell.ExpandEnvironmentStrings("%USERNAME%"))
CTRLWIN(ID, CLOSE)
「SysWOW64」フォルダを開く
CONST ssfSYSTEMx86 = 41
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfSYSTEMx86)
SLEEP(3.000)
DIM ID = GETID("SysWOW64")
CTRLWIN(ID, CLOSE)
「Windows 管理ツール」を開く
CONST ssfPROGRAMFILESx86 = 48
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.Explore(ssfPROGRAMFILESx86)
SLEEP(3.000)
DIM ID = GETID("Windows 管理ツール")
CTRLWIN(ID, CLOSE)
指定日時までのカウントダウンタイマー
DIM date = dateAdd("d", 1, today())
DIM targetTime = GETTIME(0, date + " 00:00:00")
REPEAT
DIM remainingTime = targetTime - GETTIME()
FUKIDASI(remainingTime + "秒")
SLEEP(0.001)
UNTIL remainingTime <= 0
MSGBOX("0時になりました。")
//////////////////////////////////////////////////
// 【引数】
// interval : 加算する時間間隔を表す文字列式(yyyy:年、m:月、d:日、ww:週、h:時、n:分、s:秒)
// num : dateに加算する値。未来は正、過去は負で指定
// date : 時間間隔を加算する日付
// 【戻値】
// 日時(date)に、指定した単位(interval)の時間(num)を加算して返します
//////////////////////////////////////////////////
FUNCTION dateAdd(interval, num, date)
DIM year, month, day, d
GETTIME(0, date)
SELECT interval
CASE "yyyy"
d = (G_TIME_YY + num) + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
CASE "m"
IFB num > 0 THEN
year = G_TIME_YY + INT((G_TIME_MM + num) / 12)
month = REPLACE(FORMAT(((G_TIME_MM + num) MOD 12), 2), " ", "0")
ELSE
year = G_TIME_YY + CEIL((G_TIME_MM + num) / 12 - 1)
month = REPLACE(FORMAT(G_TIME_MM - (ABS(num) MOD 12), 2), " ", "0")
ENDIF
IF month = "00" THEN month = 12
day = G_TIME_DD2
d = "" + year + month + day
IFB !isDate(d) THEN
d = year + "/" + month + "/" + "01"
d = getEndOfMonth(d)
ELSE
d = year + "/" + month + "/" + day
ENDIF
CASE "d"
GETTIME(num, date)
d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
CASE "ww"
GETTIME(num * 7, date)
d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
CASE "h"
GETTIME(num / 24, date)
d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
CASE "n"
GETTIME(num / 1440, date)
d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
CASE "s"
GETTIME(num / 86400, date)
d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
SELEND
RESULT = d
FEND
//////////////////////////////////////////////////
// 【引数】
// date : 日付(”YYYYMMDD” or “YYYY/MM/DD” or “YYYY-MM-DD” or “YYYYMMDDHHNNSS” or “YYYY/MM/DD HH:NN:SS”)
// m : 第一引数の指定日からプラスマイナス m 月とする(デフォルト=0)
// 【戻値】
// date から m 月後の月末の日付
//////////////////////////////////////////////////
FUNCTION getEndOfMonth(date, m = 0)
GETTIME(0, date)
IFB m >= 0 THEN
year = G_TIME_YY + INT((G_TIME_MM + m + 1) / 12)
month = REPLACE(FORMAT(((G_TIME_MM + m + 1) MOD 12), 2), " ", "0")
ELSE
year = G_TIME_YY + CEIL((G_TIME_MM + m + 1) / 12 - 1)
month = REPLACE(FORMAT(G_TIME_MM - (ABS(m + 1) MOD 12), 2), " ", "0")
IF EVAL(month) < 0 THEN month = REPLACE(FORMAT(12 + EVAL(month), 2), " ", "0")
ENDIF
IF month = "00" THEN month = "12"
day = "01"
d = "" + year + month + day
GETTIME(-1, d)
RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
FEND
//////////////////////////////////////////////////
// 【引数】
// expr : 評価する式
// truepart : 評価した式がTrueのときに返す値
// falsepart : 評価した式がFalseのときに返す値
// 【戻値】
// truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき
//////////////////////////////////////////////////
FUNCTION IIF(expr, truepart, falsepart)
IFB EVAL(expr) THEN
RESULT = truepart
ELSE
RESULT = falsepart
ENDIF
FEND
//////////////////////////////////////////////////
// 【引数】
// 日付 : YYYYMMDD
// 【戻値】
// TRUE : 日付として認識できる、FALSE : 日付として認識できない
//////////////////////////////////////////////////
FUNCTION isDate(date)
DIM Pattern = "^(?!([02468][1235679]|[13579][01345789])000229)(([0-9]{4}(01|03|05|07|08|10|12)(0[1-9]|[12][0-9]|3[01]))|([0-9]{4}(04|06|09|11)(0[1-9]|[12][0-9]|30))|([0-9]{4}02(0[1-9]|1[0-9]|2[0-8]))|([0-9]{2}([02468][048]|[13579][26])0229))$"
DIM Match = reExecute(date, Pattern)
RESULT = IIF(Match.Count <> 0, TRUE, FALSE)
FEND
//////////////////////////////////////////////////
// 【引数】
// str : 正規表現による検索の対象となる文字列
// Pattern : 正規表現で使用するパターンを設定
// IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse
// Global : 文字列全体を検索する場合はTrue、しない場合はFalse
// 【戻値】
// 正規表現で検索した結果をMatchesコレクションとして返します。
//////////////////////////////////////////////////
FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
DIM re = CREATEOLEOBJ("VBScript.RegExp")
re.Pattern = Pattern
re.IgnoreCase = IgnoreCase
re.Global = Global
RESULT = re.Execute(str)
FEND
//////////////////////////////////////////////////
// 【引数】
//
// 【戻値】
// 今日の日付
//////////////////////////////////////////////////
FUNCTION today()
GETTIME()
RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
FEND