首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows脚本主机在关闭创建的窗口时终止

Windows脚本主机在关闭创建的窗口时终止
EN

Stack Overflow用户
提问于 2017-07-31 05:26:36
回答 1查看 80关注 0票数 0

我为CreateWindowEx API函数创建了一个包装器函数,并从一个VBScript中使用它。这是VBScript:

代码语言:javascript
运行
复制
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脚本主机就会终止。

我使用CreateWindowEx测试了AutoIt,当我关闭创建的窗口时,AutoIt3.exe没有终止,它继续运行脚本,不像Windows。

即使关闭创建的窗口,我也喜欢让Windows脚本主机继续运行。

不是为了实现我想要的,我想知道在Windows脚本主机上发生这种情况的原因是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 05:50:24

我通过更改窗口过程解决了这个问题,如下所示:

代码语言:javascript
运行
复制
LRESULT CALLBACK WindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam) {

    switch (uMsg)
    {
        case WM_CLOSE:
            DestroyWindow(hwnd);
            break;

        /*FOLLOWING LINES WERE REMOVED:
        case WM_DESTROY:
            PostQuitMessage(0);
            break;*/

        default: return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
    return 0;
}

问题的出现是因为我忘记了Windows并不是一个标准的WinForms应用程序,所以当窗口被破坏时它不需要关闭。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45408065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档