CreateWindowEx
API関数のラッパー関数を作成し、VBScriptから使用しました。これはVBScript:作成したウィンドウを閉じるときにWindows Script Hostが終了する
Dim Result, wcx(10) 'VARIANT ARRAY(10) - WNDCLASSEX
wcx(5) = WINAPI.WinAPI_LoadIcon(NULL, 32516) 'hIcon (IDI_INFORMATION)
wcx(6) = WINAPI.WinAPI_LoadCursor(NULL, 32649) 'hCursor (IDC_HAND)
wcx(7) = 3 'hbrBackground (COLOR_ACTIVECAPTION + 1)
wcx(9) = "DUMMY_CLASS" 'lpszClassName
wcx(10) = WINAPI.WinAPI_LoadIcon(NULL, 32516) 'hIconSm (SAME as hIcon)
'PASS THE VARIANT ARRAY TO THE WRAPPER FUNCTION
Result = WINAPI.WinAPI_RegisterClassEx(wcx)
Dim Style: Style = CLng(&H00CF0000) 'WS_OVERLAPPEDWINDOW
Dim ExStyle: ExStyle = CLng(&H00000100) 'WS_EX_WINDOWEDGE
If CLng(Result) > 0 Then
'CREATE THE WINDOW
Result = WINAPI.WinAPI_CreateWindowEx(ExStyle, "DUMMY_CLASS", "Hello World!", Style, 875, 6, 400, 300, NULL, NULL, NULL, NULL)
WINAPI.WinAPI_ShowWindow Result, 5
WScript.Echo "CreateWindowEx returned 0x" + CStr(UCase(Hex(Result)))
End If
期待どおりに作成され、表示されます。しかし、私は作成されたウィンドウの閉じるボタンをクリックするとWindows Script Hostが終了する理由が不思議です。
AutoItを使用してCreateWindowEx
をテストしました。作成したウィンドウを閉じたときにAutoIt3.exeが終了せず、Windows Script Hostとは違ってスクリプトが実行され続けました。
私は、作成したウィンドウを閉じてもWindows Script Hostを実行したままにしておきたいと思います。
私が欲しいものを達成するための方法はありません。Windows Script Hostでこれが起こる理由は何ですか?