GETID

Contents

GETID関数は、指定したウィンドウのIDを取得する関数です。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。

引数に指定するタイトル・クラス名は、STATUS関数の第二引数にST_TITLE・ST_CLASSを指定するとこで取得することもできます。

指定したウィンドウを取得できない場合は-1を返すので、ウィンドウの存在有無を確かめることもできます。

構文
  1. Integer = GETID( タイトル, [クラス名, 待ち時間秒, MDI子タイトル] )
引数
タイトル
識別したいウィンドウのタイトル (タイトルの一部分だけでもOK)
クラス名
区別に必要でなければ省略して構いません (前方一致でのみ部分指定可)
待ち時間秒
確認できるまで指定された秒数待ちます(0.01~)
0
0.1~10秒まで状況や負荷により自動判断 (デフォルト)
-1
無期限待ち
MDI子タイトル
MDIウィンドウ中の子ウィンドウタイトル
戻値

そのウィンドウを識別するID (NGの時は -1)

GETID は始めに完全一致のウィンドウを探します。見つからなければ次に部分一致のウィンドウを探します。

特別なウィンドウの指定

GET_ACTIVE_WIN
アクティブウィンドウを返します
GET_FROMPOINT_WIN
マウスカーソル下のウィンドウ
GET_FROMPOINT_OBJ
マウスカーソル下のオブジェクト
GET_THISUWSC_WIN
UWSC自身
GET_LOGPRINT_WIN
ログ表示用ウィンドウ
GET_BALLOON_WIN
ふきだし用ウィンドウ(GET_FUKIDASI_WIN でも可)
GET_FORM_WIN
フォーム画面ウィンドウ
GET_FORM_WIN2
フォーム画面ウィンドウ2
GET_SCHEDULE_WIN
スケジュール"指定Windowが現れた時"でキャッチしたウィンドウ('別プロセス実行'時はNG)

MDI

MDIとはMultiple Document Interface (マルチ・ドキュメント・インタフェース)の略で、親ウィンドウ内に複数の子ウィンドウを持つアプリケーションのことです。

わかりやすいものとしてはExcelが子ウィンドウを持つアプリケーションで、「Microsoft Excel」が親ウィンドウ(GETIDのタイトル)、「ブック名(Book1, Book2など)」が子ウィンドウ(GETIDのMDI子タイトル)です。

以下はExcelで新しいブックを開き、開いたブックを閉じてからExcelウィンドウを閉じるプログラムです。

DIM Excel = CREATEOLEOBJ("Excel.Application") Excel.Visible = TRUE Excel.Workbooks.Add SLEEP(3.00) DIM ID = GETID("Microsoft Excel", , , Excel.ActiveWorkbook.Name) // アクティブウィンドウ(Book1)のIDを取得 CTRLWIN(ID, CLOSE) // Book1を閉じる Excel.Quit // Excelを閉じる

以下はMDIを使用したアプリケーションの例です。

  • Adobe Photoshop (CS4以降はMDIではなくTDIが標準となった)
  • Eudora
  • Microsoft Word
  • Microsoft Excel(Excel 2010まで[4])
  • 一太郎
  • Opera
  • Sleipnir
  • PSPad

多重起動防止

プログラムの先頭に以下のプログラムを書くと多重起動を防止できます。最初に起動したプログラムはそのまま処理を続行し、後から起動したプログラムは終了します。

IF GETID(GET_UWSC_NAME, "クラス名") <> -1 THEN EXIT

プログラム干渉防止

他のUWSCプログラムが起動・動作しているとき、そのプログラムが終了するまで待機する。3つ以上起動している時の挙動は未確認。

REPEAT SLEEP(0.001) UNTIL GETID("UWSC", "TUScript") = -1

引数にIDを使う関数

  1. CHKBTN
  2. CLKITEM
  3. CTRLWIN
  4. DROPFILE
  5. GETALLWIN
  6. GETCTLHND
  7. GETITEM
  8. GETSLCTLST
  9. GETSLIDER
  10. GETSTR
  11. IDTOHND
  12. LOCKHARDEX
  13. MOUSEORG
  14. POSACC
  15. SAVEIMG
  16. SCKEY
  17. SENDSTR
  18. SETSLIDER
  19. STATUS

よく使うプログラムのクラス名一覧

  • Internet Explorer
    プログラム
    Internet Explorer
    クラス名
    IEFrame
  • Google Chrome
    プログラム
    Google Chrome
    クラス名
    Chrome_WidgetWin_1
  • Firefox
    プログラム
    Mozilla Firefox
    クラス名
    MozillaWindowClass
  • Microsoft Edge
    プログラム
    Microsoft Edge
    クラス名
    ApplicationFrameWindow
  • ユーザー アカウント制御
    プログラム
    ユーザー アカウント制御
    クラス名
    Credential Dialog Xaml Host
  • タスクマネージャー
    プログラム
    タスク マネージャー
    クラス名
    TaskManagerWindow
  • メモ帳
    プログラム
    メモ帳
    クラス名
    Notepad
  • ペイント
    プログラム
    ペイント
    クラス名
    MSPaintApp
  • Microsoft Excel
    プログラム
    Microsoft Excel
    クラス名
    XLMAIN
  • Microsoft Word
    プログラム
    Microsoft Word
    クラス名
    OpusApp
  • Microsoft Outlook
    プログラム
    Microsoft Outlook
    クラス名
    rctrl_renwnd32
  • UWSC Debugger
    プログラム
    UWSC Debugger
    クラス名
    TFOya
  • UWSC Pro
    プログラム
    UWSC Pro
    クラス名
    TUMain_uwsc
  • #32770
    プログラム
    ダイアログ(ファイルを開く、名前を付けて保存などのウィンドウ)
    クラス名
    #32770
  • UWSC FUKIDASI
    プログラム
    UWSCのFUKIDASI関数で表示される吹き出し
    クラス名
    TFfukidsi
  • プログラム
    UWSCのINPUT関数で表示されるウィンドウ
    クラス名
    TUinpBox_uwsc
  • プログラム
    デスクトップ通知
    クラス名
    NUIDialog
  • プログラム
    アクション センター
    クラス名
    Windows.UI.Core.CoreWindow
  • プログラム
    タスクトレイ
    クラス名
    Shell_TrayWnd

プログラム実行例

電卓を操作し計算をする

EXEC("calc") DIM ID = GETID("電卓") CLKITEM(ID, "3", CLK_BTN) CLKITEM(ID, "小数点", CLK_BTN) CLKITEM(ID, "6", CLK_BTN) CLKITEM(ID, "プラス", CLK_BTN) CLKITEM(ID, "5", CLK_BTN) CLKITEM(ID, "小数点", CLK_BTN) CLKITEM(ID, "8", CLK_BTN) CLKITEM(ID, "等号", CLK_BTN) // CTRLWIN(ID, CLOSE)
解説
  1. 1行目
    EXEC("calc")
    電卓を起動する。
  2. 2行目
    DIM ID = GETID("電卓")
    GETIDで電卓のIDを取得する。
  3. 4-11行目
    CLKITEM(ID, "3", CLK_BTN) CLKITEM(ID, "小数点", CLK_BTN) CLKITEM(ID, "6", CLK_BTN) CLKITEM(ID, "プラス", CLK_BTN) CLKITEM(ID, "5", CLK_BTN) CLKITEM(ID, "小数点", CLK_BTN) CLKITEM(ID, "8", CLK_BTN) CLKITEM(ID, "等号", CLK_BTN)
    「3.6+5.8=」と入力する。

CLKITEMで操作できる項目を取得

HASHTBL NAME NAME[ITM_BTN] = "ITM_BTN" NAME[ITM_LIST] = "ITM_LIST" NAME[ITM_TAB] = "ITM_TAB" NAME[ITM_MENU] = "ITM_MENU" NAME[ITM_TREEVIEW] = "ITM_TREEVIEW" NAME[ITM_LISTVIEW] = "ITM_LISTVIEW" NAME[ITM_EDIT] = "ITM_EDIT" NAME[ITM_STATIC] = "ITM_STATIC" NAME[ITM_STATUSBAR] = "ITM_STATUSBAR" NAME[ITM_TOOLBAR] = "ITM_TOOLBAR" NAME[ITM_LINK] = "ITM_LINK" NAME[ITM_ACCCLK] = "ITM_ACCCLK" NAME[ITM_ACCCLK2] = "ITM_ACCCLK2" NAME[ITM_ACCTXT] = "ITM_ACCTXT" NAME[ITM_ACCEDIT] = "ITM_ACCEDIT" NAME[ITM_FROMLAST] = "ITM_FROMLAST" SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit") WHILE TRUE FUKIDASI("ALT+Sでカーソル下の情報を取得します<#CR>ESCで終了") IF GETKEYSTATE(VK_ALT) AND GETKEYSTATE(VK_S) THEN BREAK WEND FUKIDASI("取得中") DIM ID = GETID(GET_FROMPOINT_WIN) PRINT "DIM ID = GETID(<#DBL>" + STATUS(ID, ST_TITLE) + "<#DBL>, <#DBL>" + STATUS(ID, ST_CLASS) + "<#DBL>)" PRINT DIM items[] = ITM_BTN, ITM_LIST, ITM_TAB, ITM_MENU, ITM_TREEVIEW, ITM_LISTVIEW, ITM_EDIT, ITM_STATIC, ITM_STATUSBAR, ITM_TOOLBAR, ITM_LINK, ITM_ACCCLK, ITM_ACCCLK2, ITM_ACCTXT, ITM_ACCEDIT, ITM_FROMLAST FOR item IN items PRINT "// [" + NAME[item] + "]" FOR arr IN GETITEM(ID, item) PRINT "CLKITEM(ID, <#DBL>" + arr + "<#DBL>, " + NAME[item] + ")" NEXT PRINT NEXT ////////////////////////////////////////////////// // 【引数】 // // 【戻値】 // ////////////////////////////////////////////////// PROCEDURE forceQuit() EXITEXIT FEND
解説
  1. 1行目
    HASHTBL NAME
    連想配列NAMEを宣言。
  2. 3-18行目
    NAME[ITM_BTN] = "ITM_BTN" NAME[ITM_LIST] = "ITM_LIST" NAME[ITM_TAB] = "ITM_TAB" NAME[ITM_MENU] = "ITM_MENU" NAME[ITM_TREEVIEW] = "ITM_TREEVIEW" NAME[ITM_LISTVIEW] = "ITM_LISTVIEW" NAME[ITM_EDIT] = "ITM_EDIT" NAME[ITM_STATIC] = "ITM_STATIC" NAME[ITM_STATUSBAR] = "ITM_STATUSBAR" NAME[ITM_TOOLBAR] = "ITM_TOOLBAR" NAME[ITM_LINK] = "ITM_LINK" NAME[ITM_ACCCLK] = "ITM_ACCCLK" NAME[ITM_ACCCLK2] = "ITM_ACCCLK2" NAME[ITM_ACCTXT] = "ITM_ACCTXT" NAME[ITM_ACCEDIT] = "ITM_ACCEDIT" NAME[ITM_FROMLAST] = "ITM_FROMLAST"
  3. 20行目
    SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
    ESCキーでforceQuit関数を実行。
  4. 22-25行目
    WHILE TRUE FUKIDASI("ALT+Sでカーソル下の情報を取得します<#CR>ESCで終了") IF GETKEYSTATE(VK_ALT) AND GETKEYSTATE(VK_S) THEN BREAK WEND
    「ALT+S」が入力されるのを待つ。
  5. 26行目
    FUKIDASI("取得中")
    吹き出しを表示。
  6. 28行目
    DIM ID = GETID(GET_FROMPOINT_WIN)
    マウスカーソル下のウィンドウのIDを取得。
  7. 33行目
    DIM items[] = ITM_BTN, ITM_LIST, ITM_TAB, ITM_MENU, ITM_TREEVIEW, ITM_LISTVIEW, ITM_EDIT, ITM_STATIC, ITM_STATUSBAR, ITM_TOOLBAR, ITM_LINK, ITM_ACCCLK, ITM_ACCCLK2, ITM_ACCTXT, ITM_ACCEDIT, ITM_FROMLAST
  8. 35-41行目
    FOR item IN items PRINT "// [" + NAME[item] + "]" FOR arr IN GETITEM(ID, item) PRINT "CLKITEM(ID, <#DBL>" + arr + "<#DBL>, " + NAME[item] + ")" NEXT PRINT NEXT

タスクバーの位置を取得する

DIM ID = GETID("", "Shell_TrayWnd") SELECT TRUE CASE STATUS(ID, ST_X) = 0 AND STATUS(ID, ST_Y) = 0 AND STATUS(ID, ST_CLWIDTH) = G_SCREEN_W PRINT "上" CASE STATUS(ID, ST_X) = 0 AND STATUS(ID, ST_Y) = 0 AND STATUS(ID, ST_CLHEIGHT) = G_SCREEN_H PRINT "左" CASE STATUS(ID, ST_X) = 0 AND STATUS(ID, ST_Y) <> 0 AND STATUS(ID, ST_CLWIDTH) = G_SCREEN_W PRINT "下" CASE STATUS(ID, ST_X) <> 0 AND STATUS(ID, ST_Y) = 0 AND STATUS(ID, ST_CLHEIGHT) = G_SCREEN_H PRINT "右" SELEND
解説
  1. 1行目
    DIM ID = GETID("", "Shell_TrayWnd")
    タスクバーのIDを取得。
  2. 3-12行目
    SELECT TRUE CASE STATUS(ID, ST_X) = 0 AND STATUS(ID, ST_Y) = 0 AND STATUS(ID, ST_CLWIDTH) = G_SCREEN_W PRINT "上" CASE STATUS(ID, ST_X) = 0 AND STATUS(ID, ST_Y) = 0 AND STATUS(ID, ST_CLHEIGHT) = G_SCREEN_H PRINT "左" CASE STATUS(ID, ST_X) = 0 AND STATUS(ID, ST_Y) <> 0 AND STATUS(ID, ST_CLWIDTH) = G_SCREEN_W PRINT "下" CASE STATUS(ID, ST_X) <> 0 AND STATUS(ID, ST_Y) = 0 AND STATUS(ID, ST_CLHEIGHT) = G_SCREEN_H PRINT "右" SELEND

画像をクリップボードにコピーする

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. 1行目
    SETHOTKEY(VK_S, MOD_ALT, "imageToClipboard")
    Alt+SでimageToClipboard関数を実行します。
  2. 2行目
    SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
    EscでforceQuit関数を実行します。
  3. 4-6行目
    WHILE TRUE SLEEP(0.01) WEND
    無限ループ。Alt+SもしくはEscが入力されるのを待機します。

セルに文字列を入力(A1形式)

DIM EXCEL = CREATEOLEOBJ("Excel.Application") EXCEL.Visible = TRUE ID = GETID("Microsoft Excel") CTRLWIN(ID, ACTIVATE) EXCEL.Workbooks.Add() EXCEL.Range("A1").Value = "UWSC" //EXCEL.DisplayAlerts = FALSE //EXCEL.Quit
解説
  1. 1-2行目
    DIM EXCEL = CREATEOLEOBJ("Excel.Application") EXCEL.Visible = TRUE
    Excelを起動する。
  2. 4-5行目
    ID = GETID("Microsoft Excel") CTRLWIN(ID, ACTIVATE)
    Excelをアクティブ化する。
  3. 7行目
    EXCEL.Workbooks.Add()
    新規ブックの作成。
  4. 8行目
    EXCEL.Range("A1").Value = "UWSC"
    セルA1に「UWSC」と代入。
  5. 10行目
    //EXCEL.DisplayAlerts = FALSE
    終了時に確認メッセージを表示しない。
  6. 11行目
    //EXCEL.Quit
    Excelを終了する。

セルに文字列を入力(R1C1形式)

EXCEL = CREATEOLEOBJ("Excel.Application") EXCEL.Visible = TRUE ID = GETID("Microsoft Excel") CTRLWIN(ID, ACTIVATE) EXCEL.Workbooks.Add() EXCEL.Cells(1, 1).Value = "UWSC" //EXCEL.DisplayAlerts = FALSE //EXCEL.Quit
解説
  1. 1-2行目
    EXCEL = CREATEOLEOBJ("Excel.Application") EXCEL.Visible = TRUE
    Excelを起動。
  2. 4-5行目
    ID = GETID("Microsoft Excel") CTRLWIN(ID, ACTIVATE)
    Excelをアクティブ化
  3. 7行目
    EXCEL.Workbooks.Add()
    新規ブックの作成
  4. 8行目
    EXCEL.Cells(1, 1).Value = "UWSC"
    A1セルに「UWSC」と代入する。
  5. 10行目
    //EXCEL.DisplayAlerts = FALSE
    確認メッセージを表示しない。
  6. 11行目
    //EXCEL.Quit
    Excelを終了する。

コントロールパネルを起動する

DIM Shell = CREATEOLEOBJ("Shell.Application") Shell.ControlPanelItem("control") SLEEP(3.000) DIM ID = GETID("コントロール パネル") CTRLWIN(ID, CLOSE)

電卓(ストアアプリ)を起動

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

マウスカーソル下の文字情報を取得

WHILE TRUE DIM x = G_MOUSE_X DIM y = G_MOUSE_Y DIM ID = GETID(GET_FROMPOINT_WIN) FUKIDASI(POSACC(ID, x - STATUS(ID, ST_CLX), y - STATUS(ID, ST_CLY), ACC_BACK)) SLEEP(0.001) WEND

Outlookが起動していなかったら起動する

IF GETID(, "rctrl_renwnd32") = -1 THEN DOSCMD("start outlook")

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 ID = GETID(GET_ACTIVE_WIN) DIM x = STATUS(ID, ST_X) DIM y = STATUS(ID, ST_Y) MMV(x, y)

「プログラムと機能」を開く

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)

マウスカーソル下のウィンドウの左上の座標に移動する

MOUSEORG(GETID(GET_FROMPOINT_WIN)) MMV(0, 0)

ファイル名を指定して実行で「ごみ箱」を開く

DIM Shell = CREATEOLEOBJ("Shell.Application") Shell.FileRun DIM ID = GETID("ファイル名を指定して実行", "#32770") SENDSTR(ID, "shell:RecycleBinFolder") CLKITEM(ID, "OK", ITM_BTN)
解説
  1. 1行目
    DIM Shell = CREATEOLEOBJ("Shell.Application")
    Shellオブジェクトを生成する。
  2. 2行目
    Shell.FileRun
    「ファイル名を指定して実行」ウィンドウを開く。
  3. 4行目
    DIM ID = GETID("ファイル名を指定して実行", "#32770")
    「ファイル名を指定して実行」のIDを取得。「#32770」はダイアログのクラス名を示しています。
  4. 5行目
    SENDSTR(ID, "shell:RecycleBinFolder")
    「shell:RecycleBinFolder」と入力する。
  5. 6行目
    CLKITEM(ID, "OK", ITM_BTN)
    「OK」ボタンをクリックする。
参考文献
Multiple Document Interface – Wikipedia