刚学习OpenGL,绘制图形的时候,如果不进行设置,运行的时候会先出现黑窗口再出现Windows窗口。...其实要去除控制台窗口非常简单,只需要修改工程设置,把子系统改成Windows,程序的入口点改成mainCRTStartup。 下面我先把几中解决办法列举出来,再解释下我的理解。...主要是因为Windows系统下有几种子系统,一种是控制台,一种是窗口子系统,如果建立了控制台工程肯定是要创建控制台子系统程序了,建立了Windows Application和MFC之类的工程则是窗口子系统了...不同的子系统会链接不同的主函数,控制台的会链接main,窗口的会链接WinMain,如果不匹配肯定会链接失败。...现在我们使用OpenGL编程,又建立的是控制台工程,如果不进行设置肯定会出现黑窗口的,所以我们把工程的子系统改成Windows,但是我们不想改主函数为WinMain了,因为这样会很麻烦,所以我们再把程序入口改成
【方法一:】 将 CreateProcess()的参数dwCreationFlags指定为CREATE_NO_WINDOW,即以不创建窗口方式创建DOS进程。 【参考代码:】 if (!...结构中WORD wShowWindow为SW_HIDE(但是一定要有这一句: si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESHOWWINDOW; ),即以不显示窗口方式创建...CreateProcess(NULL, szCommand, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) 【方法三:】 将这个DOS窗口放到另外一个桌面上...实在没办法,我想在打开的时候不让用户看到这个执行文件:首先调用FINDWINDOW来查找窗口的句柄,之后再用SendMessage()来隐藏窗口,但是还是会有一瞬主窗口被显示出来的,或许你会说我BT吧,...但是我实在是不忍心看到…… 那么怎么解决这个问题呢,首先我当然在CreateProcess()上面寻找方法,可惜,它只有一个参数可以设置窗口的默认显示方式,但是一旦这个窗口自己重设了显示方式,它就没有任何作用了
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...程序示例 下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。 ...uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...⑷ 程序示例 下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。
因此我们必须竭力屏蔽这个窗口不让它显示出来,同时我们还需要把程序运行的结果定向到一个文本文件中,控制台程序的输入部分工作可以由交给GUI来完成。...通过这个函数我们可以实现创建一个进程,能够隐藏控制台窗口,并把控制台窗口的输出结果定向输出到一个文本文件。...在Windows 2000环境下,CreateProcess函数提供了一个名叫CREATE_NO_WINDOW的标志,这个标志能够成功阻止控制台窗口出现,然而在 Windows 98环境下,这个标志不被支持...为了实现两种环境下隐藏控制台窗口,我们可以通过设置STARTINFO结构成员并把它传递给CreateProcess 函数来达到这个目的。...STARTUPINFO s={sizeof ( s ) }; s.dwFlags =STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES; //使用标准柄和显示窗口
FALSE, // 指定当前进程内的句柄不可以被子进程继承 CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口...FALSE, // 指定当前进程内的句柄不可以被子进程继承 CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口...Programming\\取色器.exe" 是常量字符串,WCHAR* szCommandLine = L"E:\\MyToolBar\\Programming\\取色器.exe"; 是一个指针,那么最后验证一下它指向的是否是一个只读内存就可以了...FALSE, // 指定当前进程内的句柄不可以被子进程继承 CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口.../桌面 名称 LPWSTR lpTitle; // 控制台进程的窗口标题 DWORD dwX; // 窗口左上角 x坐标 DWORD dwY; // 窗口左上角 y坐标
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...); // 以最大化的方式打Test.exe其中这里的SW_SHOW,SW_SHOWMAXIMIZED都是执行程序时窗口的显示方式,在winuser.h中定义。...程序示例 下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。下面程序使用WinExec,并明确指定使用记事本程序。...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。 ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。
uCmdShow [in] 显示选项。SW_HIDE表示隐藏窗口并激活其他窗口;SW_SHOWNORMAL表示激活并显示一个窗口。 返回值 如果函数成功,则返回值大于31。...例如,CREATE_NEW_CONSOLE表示新进程将使用一个新控制台,而不是继承父进程的控制台。...4.1.3 测试 程序分别调用WinExec函数、ShellExecute函数,以及CreateProcess函数来创建1.exe、2.exe以及3.exe进程,并以SW_SHOWNORMAL方式显示程序窗口...其中,除了进程路径参数较为重要之外,窗口显示方式也值得注意。...而CreateProcess函数在指定窗口显示方式的时候,需要在STARTUPINFO结构体中将启用标志设置为STARTF_ USESHOWWINDOW,表示wShowWindow成员显示方式有效。
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...⑷ 程序示例 下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。...lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。 ...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。...CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。可以将ID发送到其它进程,或使用句柄来控制新进程。
请用下述任何一个常数 SW_HIDE 隐藏窗口,活动状态给另一个窗口 SW_MINIMIZE 最小化窗口,活动状态给另一个窗口 SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态... SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态 SW_SHOWMAXIMIZED 最大化窗口,并将其激活 SW_SHOWMINIMIZED 最小化窗口,并将其激活 ...SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口 SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口 SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口...值:CREATE_NEW_CONSOLE 含义:新的进程将使用一个新的控制台,而不是继承父进程的控制台。这个标志不能与DETACHED_PROCESS标志一起使用。 ...进程树经常使用GenerateConsoleCtrlEvent函数允许发送CTRL+C或 CTRL+BREAK信号到一组控制台进程。
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。...uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。 ...SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口 SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口 SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口...要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入 STARTUPINFO结构,但无论如何必须提供它。...CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。可以将ID发送到 其它进程,或使用句柄来控制新进程。
三、方式3: CreateProcess #include #include #include #include STARTUPINFO...si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效 si.wShowWindow = TRUE; // FALSE,此成员设为TRUE的话则显示新建进程的主窗口...BOOL bRet = CreateProcess( NULL, // 不在此指定可执行文件的文件名 szCmdline,// 命令行参数 NULL, // 默认进程安全性 NULL..., // 默认进程安全性 FALSE, // 指定当前进程内句柄不可以被子进程继承 CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口 NULL, // 使用本进程的环境变量...); qDebug("新进程的主线程ID号:%d\n", pi.dwThreadId); } 功能更加强大,可以隐藏控制台弹窗,可以等待进程执行完毕。
执行本地CMD实现使用CreateProcess函数创建一个新的CMD进程,并将标准输入、输出和错误输出重定向到当前进程的标准输入、输出和错误输出。...首先来实现一个CMD命令行运行功能,通过使用CreatePipe创建匿名管道,并使用CreateProcess函数创建一个新的CMD进程,然后将标准输入、输出和错误输出重定向到当前进程的标准输入、输出和错误输出...lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation);该函数可以创建包括控制台窗口的进程...如果需要使用CreateProcess()函数创建不带控制台窗口的进程,则需要在dwCreationFlags参数中指定CREATE_NO_WINDOW标志位。...在创建进程时,可以通过STARTUPINFO结构体设置进程的一些属性,例如标准输入、标准输出和标准错误输出的重定向,启动窗口的显示方式等。
说明: CreateProcess创建进程执行不支持简单的 > 符号重定向,system之类的函数执行外部进程可以使用 > 符号直接重定向到文件,但是system这类函数执行命令时,都会弹出控制台窗口...,而CreateProcess创建执行进程可以设置属性隐藏这个控制台窗口,后台执行。...示例代码: #include #include #include #include int my_CreateProcess...= NULL; si.hStdError = h; si.hStdOutput = h; TCHAR cmd[]= TEXT("ipconfig"); ret = CreateProcess
起因 最近给公司的一个系统写了个启动的脚本,但是领导说批处理这样的脚本太low了,要使用EXE来启动,未来还要使用加密工具对EXE进行加密。...在网上找了很久,最终确定使用CreateProcess,同时要使用管道技术。...也就是使用CreateProcess创建一个cmd进程,然后通过输入管道将待执行的命令传递给cmd进程,通过输出管道获取cmd进程的输出信息,因为是通过管道进行,所以可以模拟在DOS窗口一行行输入命令,...LPTSTR, BOOL); int main(int argc, char *argv[]) { // SECURITY_ATTRIBUTES结构包含一个对象的安全描述符,并指定检索到指定这个结构的句柄是否是可继承的...,显示到标准输出设备上 for (;;) { if( !
并将对应的值加1,当计算逻辑处理器的数目时需要考虑超线程的问题,所谓超线程就是intel提供的一个新的技术,可以将一个处理器虚拟成多个处理器来使用,已达到多核处理器的效果,如果它支持超线程,那么久不能简单的根据是否为核心处理器而加...windows下的进程主要分为3大类:控制台,窗口应用,服务程序。...写过控制台与窗口程序的人都知道,控制台的主函数是main,而窗口应用的主函数是WinMain,那么是否可以根据这个来判断程序属于那种呢,很遗憾,windows并不是根据这个来区分的。...,对于控制台程序,主要关注: HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError;标准输入、输出、以及标准错误 下面是一个创建控制台与创建窗口的简单例子...,在创建时没有给出特别的创建标志,窗口本身就是一个个独立的,并且我们通过指定si的部分成员指定了窗口的显示位置,而对于控制台,如果在创建时不特别指定创建的标志,那么它将与父进程共享一个输入输出控制台。
本文记录一个 Win32 的有趣行为,调用 CreateProcess 方法传入特别的参数,可以让任务管理器里的命令行不显示应用文件路径 开始之前,先看看下面这张有趣的图片 可以看到我编写的 SvcawgewawkuHenaynairbelhurno.exe...这是使用了 CreateProcess 方法的一个过时用法,那就是在此方法的 lpApplicationName 参数里面传入将要启动的进程路径,在第二个参数 lpCommandLine 里面传入的是...换句话说就是正常咱是不应该使用到这个参数的。...先新建一个 dotnet 6 控制台程序,为了方便 PInvoke 调用 Win32 的 CreateProcess 函数,根据 dotnet 使用 CsWin32 库简化 Win32 函数调用逻辑...先使用以下代码获取自身的应用程序路径。
本文将告诉大家如何使用 Vortice 底层库从零开始,从一个控制台项目,开始搭建一个最简单的使用 Direct2D1 的 DirectX 应用。...2022 版本的开发者,也应该升级 IDE 了 使用非 VisualStudio 作为 IDE 的,那推荐本文看着玩就好了,不要去尝试本文的代码 新建一个 dotnet 6 的控制台项目 接下来咱将从这个控制台项目开始...本文使用控制台项目,在创建 Win32 窗口,需要使用到很多 Win32 窗口创建的细节代码,但本文更侧重如何使用 DX 的知识,因此关于 Win32 创建窗口的逻辑,大部分都会略过 在开始创建 Win32...,对于现在很多游戏和应用,都可以使用设置窗口进入最大化的全屏模式,这里就设置不进入全屏 // 设置是否全屏 DXGI.SwapChainFullscreenDescription...,窗口的设置了一个诡异的颜色 这就是入门级的使用 Vortice 从零开始控制台创建窗口,在窗口上使用 D2D 绘制的方法 在完成初始化的逻辑之后,就可以使用 D2D 绘制复杂的界面了。
文章目录 一、使用 SwingBuilder 构建 Swing 窗口 二、完整代码示例 一、使用 SwingBuilder 构建 Swing 窗口 ---- 在 Groovy 中 , 可以使用 SwingBuilder...构建 Swing 窗口 , 用于在 Gradle 编译时 , 弹出一些窗口界面 ; 其用法如下 : 首先 , 创建一个 Swing 构造器 , SwingBuilder 对象 ; // 创建 Swing...text: "点击按钮") button(text: "按钮", actionPerformed: { println "点击按钮" }) } 最后 , 设置 Swing 窗口显示..., 即设置其可见 ; // 设置 Swing 窗口显示 swing.setVisible(true) 二、完整代码示例 ---- 完整代码示例 : import groovy.swing.SwingBuilder...text: "点击按钮") button(text: "按钮", actionPerformed: { println "点击按钮" }) } // 设置 Swing 窗口显示
使用os.system函数运行其他程序或脚本 import os os.system('notepad python.txt') 使用ShellExecute函数运行其他程序 ShellExecute(...hwnd,op,file,params,dir,bShow) - hwnd:父窗口的句柄,若没有则为0 - op:要进行的操作,为open,print or 空 - file:要运行的程序或脚本...- params: 要向程序传递的参数,如果打开的是文件则为空 - dir:程序初始化的目录 - bShow:是否显示窗口 ShellExecute(0, 'open', 'notepad.exe...- Need You Now.ape','','',1) ShellExecute(0,'open','D:\Python\Code\Crawler\HanhanBlog.py','','',1) 使用...CreateProcess函数 import win32process from win32process import CreateProcess CreateProcess('c:\\windows
在下列文章中,我们讲解了如何通过下拉列表显示相关图片的技术: Excel实战技巧15:在工作表中查找图片 Excel实战技巧21:在工作表中查找图片 Excel实战技巧22:在工作表中查找图片(使用VBA...代码) Excel实战技巧85:从下拉列表中选择并显示相关的图片 Excel实战技巧86:从下拉列表中选择并显示相关的图片和文字说明 本文介绍的技术稍有不同,这里使用复选框来控制相关的图片是否显示,当选取复选框时...,显示图片,取消选择时,图片消失。...图2 选择“照片”工作表中的单元格区域A2:A10,将其内容复制到“显示”工作表中的单元格区域B1:B8。...图4 从“照片”工作表中复制相应的图片到“显示”工作表的单元格E1中。选中该图片,定义其名称如下图5所示。 ?
领取专属 10元无门槛券
手把手带您无忧上云