Window10下让自己开发的自启动程序支持拉起一个图形化软件

背景:自己开发的监控程序需要在开机时自启动,并且启动后会监听host主机的报文。当收到需要启动本地的某个图形化软件命令后,会执行此图形化软件,从而在桌面显示图形软件。

问题点:
通过windows的“任务计划程序” 自启动的程序有两种执行方式,

  1. 一种是选择用户登录系统后执行,这种方式启动的监控程序可以直接拉起其它的图形化软件。但本人使用QT的控制器程序开发的监控软件通过此种方式自启动后会弹出一个CMD控制台界面,这是无法接受的。需要想办法解决。
  2. 一种是不管开机后用户是否登录都会执行,这种执行方式下自启动的程序会在后台执行,多次尝试拉起图形化软件,但图形化软件也是后台执行,不显示界面图形。

综上所述,只能采用方法1)实现我的场景,但还需要解决自启动程序弹控制台界面问题。

实现步骤:
1、在windows的“任务计划程序”中设置开机登录后启动自己开发的程序
在这里插入图片描述
在这里插入图片描述
设置的过程中需要注意上面截图的2和3两点即可。

2、在QT的CMakeList.txt文件中添加关闭console控制台的逻辑,贴上我的文件供参考,主要看 # Remove the console of gui program这段。

cmake_minimum_required(VERSION 3.0.0)

project(remoteMonitorTool VERSION 0.1 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

set(Monitor_header
    remoteMonitorTool.h)

set(Monitor_src
    remoteMonitorTool.cpp)

#find_package(Qt5Core)
find_package(Qt5 COMPONENTS Core Network REQUIRED)

add_executable(${PROJECT_NAME}
    "main.cpp"
    ${Monitor_header}
    ${Monitor_src}
    )

*# Remove the console of gui program*
if(WIN32)
        if(MSVC)
            set_target_properties(${PROJECT_NAME} PROPERTIES
                    WIN32_EXECUTABLE YES
                    LINK_FLAGS "/ENTRY:mainCRTStartup"
            )
        elseif(CMAKE_COMPILER_IS_GNUCXX)
            SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows") # Not tested
        else()
            message(SEND_ERROR "You are using an unsupported Windows compiler! (Not MSVC or GCC)")
        endif(MSVC)
elseif(APPLE)
        set_target_properties(${PROJECT_NAME} PROPERTIES
                        MACOSX_BUNDLE YES
        )
elseif(UNIX)
        # Nothing special required
else()
       message(SEND_ERROR "You are on an unsupported platform! (Not Win32, Mac OS X or Unix)")
endif(WIN32)

target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Network)

这样构建生成的可执行程序.exe在执行时就不会再弹出console控制台界面了。

梳理下:
我的监控程序在开机登录后就会自启动,并且不会弹出console控制台的黑框。然后它就在一直监控本地端口。当接受到host的启动第三方软件命令时,它可以正常拉起图形界面的软件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值