在实际项目中,为了实现某些功能,但是不希望给用户显示windows窗口或者dos窗口时,以下是比较常用的两种方式实现窗口隐藏:

方法1

在头文件下加上一句预处理命令:

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址

这样编译出来的exe就无dos窗口了

完整程序如下:

#include<windows.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址
int main()
{MessageBox(NULL,"Hello","Notice",NULL);return 0;
}

方法2

使用vb实现程序隐藏:

set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("你的程序.exe", 0, FALSE)  'Run()
'第一个参数是你要执行的程序的路径,亦可传参
'第二个参数是窗口的形式,0后台运行;1正常运行;2最小化;3最大化;缺省的话表示正常运行
'第三个参数是表示这个脚本是等待还是继续执行,如果设为了True,脚本就会等待调用的程序退出后再向后执行。

方法3

使用ShellExecuteEx API函数,示例代码如下:

    SHELLEXECUTEINFO ShellInfo;memset(&ShellInfo, 0, sizeof(ShellInfo));ShellInfo.cbSize = sizeof(ShellInfo);ShellInfo.hwnd = NULL;ShellInfo.lpVerb = _T("open");ShellInfo.lpFile = szFilePath; // 此处写执行文件的绝对路径ShellInfo.nShow = SW_SHOWNORMAL;ShellInfo.fMask = SEE_MASK_NOCLOSEPROCESS;//无控制台BOOL bResult = ShellExecuteEx(&ShellInfo);

或者

DWORD ShellRun(CString csExe, CString csParam,DWORD nShow)
{  SHELLEXECUTEINFO ShExecInfo;  ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);  ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;  ShExecInfo.hwnd = NULL;  ShExecInfo.lpVerb = NULL;  ShExecInfo.lpFile = csExe; ShExecInfo.lpParameters = csParam;   ShExecInfo.lpDirectory = NULL;  ShExecInfo.nShow = nShow;  ShExecInfo.hInstApp = NULL;   BOOL ret = ShellExecuteEx(&ShExecInfo);  WaitForSingleObject(ShExecInfo.hProcess, INFINITE);  DWORD dwCode=0;  GetExitCodeProcess(ShExecInfo.hProcess, &dwCode);  CloseHandle(ShExecInfo.hProcess);  return dwCode;
}

另外ShellExecuteEx执行cmd命令的时候, 命令行参数要加入/c 来让命令行执行完成后关闭自身。否则命令行进程会一直存在, WaitForSingleObject会一直等待。

比如: ShellRun(L"cmd.exe", L"/c sc start UlogReport",SW_HIDE); 启动一个服务。

文章来源:

https://blog.csdn.net/believe_s/article/details/82389795

控制台程序不显示dos窗口的方法相关推荐

  1. c语言 不显示dos窗口,运行DOS批处理不显示DOS窗口的方法

    运行DOS批处理不显示DOS窗口的方法 内存系统的R盘,有个文件拷贝压缩解压的过程,用批处理非常方便. 原来需要两个RAR自解压文件来达到目的.后来看到有网友用7z来做这件事情,会不会更方便快速呢?至 ...

  2. 打包bat等文件成exe,双击运行不显示dos窗口,exe不报毒

    准备材料如下 bat和vbs直接新建文本,然后改后缀就可以建出来了(后面发现exe运行vbs来启动bat不报毒) 下面内容就是要把这些文件打包成exe,双击exe后打开图片test.jpg,不显示do ...

  3. quill鼠标悬浮 出现提示_jQuery实现鼠标悬停显示提示信息窗口的方法

    本文实例讲述了jQuery实现鼠标悬停显示提示信息窗口的方法.分享给大家供大家参考.具体实现方法如下: /p> "http://www.w3.org/TR/xhtml1/DTD/xht ...

  4. 打包bat成exe,双击运行不显示dos窗口,exe不报毒

    转载自:https://www.cnblogs.com/dodui/p/3171411.html 准备材料如下 bat和vbs直接新建文本,然后改后缀就可以建出来了(后面发现exe运行vbs来启动ba ...

  5. Matlab中去除exe执行时文件的DOS窗口的方法

    转自:http://www.matlabsky.com/thread-547-1-1.html   方法1 在command window中输入如下命令: cd(prefdir) edit compo ...

  6. 隐藏DOS窗口 的方法

    隐藏DOS窗口 ,隐藏批处理窗口,隐藏命令行 的方法 网上有些别的方法比如脚本什么的,太麻烦了,就是想隐藏窗口,怎么办简单? 使用只有1k的第三方工具. hidecon & hideexec  ...

  7. c语言怎么改变程序的图标,VC6.0 控制台程序添加图标的两种方法

    如何给C控制台程序添加图标说来很惭愧的问题,C语言也算学了很长一阵子,目前还是停留在控制台的水平,今天用着用着突然想给程序换个图标,却找不到在哪设置,又没窗体,在哪弄呢?百度N久,找到如下两种解决方案 ...

  8. 任务栏程序图标显示白色的解决方法

    问题:电脑任务栏锁定的某程序图标显示为白色,而其它图标显示正常. 解决: 1."win"+"R键"弹出运行窗口,输入%APPDATA%\Microsoft\In ...

  9. linux qt应用程序全屏,QT中MDI应用程序中更改子窗口大小或是全屏显示子窗口的方法...

    1.QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示. 但是他只对窗口模式的部件有用.子窗口的特征是 Qt::SubWindow,不是独立的窗口.因此对其 ...

  10. c语言程序运行不出现控制台,C#控制台程序,运行完窗口不退出的方法

    tyvj1125 JR&#39;s chop 描述 JR有很多双筷子.确切的说应该是很多根,因为筷子的长度不一,很难判断出哪两根是一双的.JR家里来了K个客人,JR留下他们吃晚饭.加上JR,J ...

最新文章

  1. 现在可以插入MSN表情了
  2. 【TarsosDSP】TarsosDSP 简介 ( TarsosDSP 功能 | 相关链接 | 源码和相关资源收集 | TarsosDSP 示例应用 | TarsosDSP 源码路径解析 )
  3. php上传,PHP-文件上传和下载「程序员培养之路第三十八天」
  4. javascript 中的面向对象实现 如何封装
  5. BZOJ4241历史研究题解--回滚莫队
  6. 远程桌面连接_Win10 系统远程桌面连接怎么打开
  7. 智能物流的常见应用场景及系统
  8. 吐血推荐 | 5+1款源代码管理笔记本(全平台)
  9. Java新闻发布系统源码
  10. Sophix热修复的简单使用
  11. ARM9开发板实验笔记(1)
  12. 做好的图片如何生成链接呢分享?
  13. OpenCV学习之Canny算法自实现
  14. 关于 负反馈放大电路,你需要了解这些
  15. excel计算式自动计算_钢筋计算太麻烦?全套钢筋翻样Excel自动计算表,限时分享...
  16. 归并排序及“归并”思想的应用
  17. https双向加密认证
  18. GStreamer学习笔记
  19. 由“微博”的发展史预测“轻博客”的命途
  20. 震灾哀悼期间网页变黑白色调的小技巧

热门文章

  1. 数学建模——BP神经网络模型Python代码
  2. python语言程序设计西安电子科技大学答案-中国科学技术大学2019自命题科目覆盖范围及参考书目...
  3. android同花顺布局,同花顺首发 Android平板电脑炒股高清版
  4. vc2005编译出来的程序实现绿色版,即无须安装运行库
  5. 此计算机上缺少vc2005_sp1_with_atl_fix_redist
  6. 豆瓣电影爬虫Ⅱ 豆瓣电影数据的整理
  7. lg v35 thinkq刷韩版android9.0教程
  8. 税控盘查看服务器设置的网站,税控盘服务器地址
  9. uploadify ajax,Uploadify预防未来的Ajax请求
  10. 中职学生计算机学情分析报告,中职学校学生学情分析及对策