首页 > 编程语言 >[转载]控制台程序隐藏的四种方法总结

[转载]控制台程序隐藏的四种方法总结

时间:2023-11-30 13:12:05浏览次数:39  
标签:hwnd 黑框 程序 运行 wp 控制台 转载 隐藏 四种

原帖地址找不到了。

学习计算机,往往先从Windows环境下学习编程,学习编程,往往从C学起,学习C,往往又从控制台程序学习,何为控制台,就是那个黑框白字的界面。对于这样一个最初认为奇陋无比而现在认为无所不能的编程平台,有时候需要将界面隐藏起来。那么如何做呢?

方法1:
在头文件下加上一句预处理命令:
#pragma comment( linker, “/subsystem:\“windows\“ /entry:\“mainCRTStartup\“” ) // 设置入口地址1
完整程序为:
#include
#pragma comment( linker, “/subsystem:\“windows\“ /entry:\“mainCRTStartup\“” ) // 设置入口地址
int main()
{
MessageBox(NULL,”Hello”,”Notice”,NULL);
return 0;
}
在编译器下运行时仍会出现黑框,但直接运行编译好的exe程序就不会显示黑框了

方法2:
使用API函数隐藏自身窗口,但会有黑框快速闪过的痕迹。代码如下:
#include
int main()
{
HWND hwnd;
hwnd=FindWindow(“ConsoleWindowClass”,NULL); //处理顶级窗口的类名和窗口名称匹配指定的字符串,不搜索子窗口。
if(hwnd)
{
ShowWindow(hwnd,SW_HIDE); //设置指定窗口的显示状态
}
MessageBox(NULL,”Hello”,”Notice”,MB_OK);
system(“pause”);
return 0;
}
运行效果:在编译器下运行和直接运行exe文件,都会有黑屏闪烁一下。

方法3:
一个人自身的力量毕竟有限,所有有时候需要借助外力,自己办不到的可以让好朋友帮忙,程序也同样如此,内部实现不了的功能可以让外部程序帮自己实现。
再用C\C++写一个引导程序,让引导程序隐藏调用该程序。假设要隐藏运行记事本程序,代码如下:
#include
int main()
{
WinExec(“notepad.exe”,SW_HIDE); //隐藏执行其他程序
return 0;
}
运行效果:完全隐藏

方法4:
既然思路以及不再局限到程序自身,那么其实就有了很多很多中外部隐藏调用的方法,只要你的知识面足够宽那么解决方法就会足够多。比如,C#、Java、Python、Ruby、VB、Delphi等等都可以。最后再用VBScript写一个吧。代码如下:
set objShell=wscript.createObject(“wscript.shell”)
iReturn=objShell.Run(“你的程序.exe”, 0, FALSE)
‘Run()
‘第一个参数是你要执行的程序的路径,亦可传参
‘第二个参数是窗口的形式,0后台运行;1正常运行;2最小化;3最大化;缺省的话表示正常运行
‘第三个参数是表示这个脚本是等待还是继续执行,如果设为了True,脚本就会等待调用的程序退出后再向后执行。

另外,对于对话框程序,可以直接在OnInitDialog()函数中调用如下代码:
    //隐藏对话框
    WINDOWPLACEMENT wp;
    wp.length = sizeof (WINDOWPLACEMENT);
    wp.flags = WPF_RESTORETOMAXIMIZED;
    wp.showCmd = SW_HIDE;
    SetWindowPlacement(&wp );

标签:hwnd,黑框,程序,运行,wp,控制台,转载,隐藏,四种
From: https://www.cnblogs.com/autumoonchina/p/17867071.html

相关文章

  • 【转载】VS Code 进行 PHP 单元测试
    参考https://www.bilibili.com/video/BV1da4y1x7ZDhttps://learnku.com/articles/22072(非常详细)https://juejin.cn/post/6844903541136424967https://docs.phpunit.de(官方文档)注意PHPUnitTestExplorer可能会抽风导致没有测试按钮之类的情况,抽风的时候也可以使用......
  • C/C++ 常用的四种查找算法
    在计算机科学中,搜索算法是一种用于在数据集合中查找特定元素的算法。C语言作为一种强大的编程语言,提供了多种搜索算法的实现方式。本文将介绍C语言中的四种常见搜索算法其中包括(线性查找,二分法查找,树结构查找,分块查找),并提供每种算法的简单实现示例。常见的查找算法主要有以下几种......
  • 【转载】php内置服务器的使用
    参考https://www.php.net/manual/zh/features.commandline.webserver.phphttps://www.bilibili.com/video/BV1J54y1q7y3https://blog.csdn.net/shenshulong/article/details/103959756注意这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境。环境软件/......
  • Map遍历删除元素的几种方法(转载)
    https://blog.csdn.net/kangbin825/article/details/134090875方法一:笨方法,遍历,找出key再删除遍历map,找出需要删除的key放在集合中,然后再删除,代码如下:publicstaticvoidmain(String[]args){Map<String,Integer>map=newHashMap<>();map.put("a"......
  • Word 转PDF图片不清晰解决方法【转载】
    Word转PDF图片不清晰解决方法Word转PDF图片不清晰解决方法-知乎(zhihu.com) word转pdf不失真方法(文字、公式、图表、格式)-知乎(zhihu.com)Word中编辑的内容由于打印等需求,经常需要将其转换为PDF格式,在此过程中部分图片可能出现清晰度降低,图片模糊等现象。以......
  • Python 潮流周刊#28:两种线程池、四种优化程序的方法
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。本周刊开源,欢迎投稿。另有电报频道作为副刊,补充发布更加丰富的资讯。......
  • python 控制台 等待用户输入
    Python控制台等待用户输入的实现方法1.总览在Python中,要实现控制台等待用户输入的功能,可以使用input()函数来实现。input()函数会暂停程序的执行,直到用户输入一条信息并按下回车键。本文将详细介绍如何使用input()函数实现这一功能。2.实现步骤下表展示了整个实现过程的步骤......
  • Linux镜像开启telnet控制台
    Linux镜像开启telnet控制台开启telnet需要编辑grub.cfg,在Linux内核的启动参数里添加一个参数。但是linux发行版系统不推荐直接编辑,我们可以通过编辑/etc/default/grub文件,在里面添加上需要的参数,然后使用命令生成grub.cfg文件就行了。CentOS/Rocky系统编辑grub文件编辑”/e......
  • 【转载】技术博客只能写技术文章吗?当然是由我们自己来定义。
    最近正在阅读JohnSonmez的《软技能:代码之外的生存指南》,根据书中的建议和老师的推荐,决定开通博客,记录自己的学习历程。在此我会分享我自身学习CS的一些所思所想,和一些代码。应该会坚持一段时间的吧...转载的这篇文章来自CSDN,下面贴上连接,主要是为我今后的博客定下基调:技术,但不止......
  • DELL服务器iDRAC8 无法启动虚拟控制台,提示“另存为“,“viewerjnlp”
    DELL服务器iDRAC8无法启动虚拟控制台,提示“另存为“,“viewerjnlp”一台DELL服务器,进入IDRAC里,无法打开虚拟控制台,点启动后另存为viewerjnlp。可能因为没有安装控件,无法打开。解决方法如下:依次点击服务器--虚拟控制台--插件类型,将插件类型设置成HTML5 效果如下: ......