草庐IT

c++ - 以编程方式在 Windows 上隐藏应用程序

有没有办法以编程方式在Windows上隐藏应用程序?我想实现与windows+D快捷方式相同的功能,但对于单个应用程序。我想在该应用程序中执行此操作(应用程序由多个窗口组成,其中一个窗口不能由用户移动、调整大小、关闭或最小化)。应用程序是用c++编写的,并使用Qt作为UI。 最佳答案 这样做很简单:1-检索该窗口的句柄:HWNDhChild=GetDlgItem(hWnd,ID_MYCHILD);2-使用ShowWindow或通过SendMessage向其发送SW_SHOW:ShowWindow(hChild,SW_HIDE);//

c++ - 找到cmd.exe文件的位置

我构建了一个依赖“cmd.exe”来执行某些任务的C++程序。现在,出于测试目的,该文件的路径是“c:\windows\system32\cmd.exe”。我的问题是是否有任何返回该文件路径的C++API知道我的程序必须在win32和win64上运行。 最佳答案 GetSystemDirectory是一种选择。对于32位应用程序,它将返回32位系统目录。对于x64应用程序,它将返回64位native系统目录。您还可以将CreateProcess或ShellExecuteEx与cmd.exe一起使用,除非您特别关心某个人,否则它应该在

c++ - 附加控制台错误 5 : Access is denied

我在VisualStudio2013中使用C++控制台应用程序,在Windows上工作。首先,我使用FreeConsole分离了控制台,它可以工作;然后,将AllocConsole调用为FreeConsolethenAttachConsolenotworking建议,返回true表示成功;最后,我尝试使用AttachConsole将其附加回去,但什么也没发生--#includeDWORDwinpid=GetCurrentProcessId();//getpidstd::coutSystemErrorCode5means:ERROR_ACCESS_DENIED5(0x5)Accessis

c++ - 使c++程序在Windows中的特定核心上运行

我想知道如何在VisualStudio中强制使用C++编写的程序在特定内核上运行(在具有多个内核的计算机上)。我找到了this文章,但指的是Linux中的C(我在Windows上使用VisualStudio)另外,我使用的Windows版本是否重要? 最佳答案 可以使用WindowsAPI函数SetThreadIdealProcessorEx().此功能适用于Windows7或更高版本。在旧系统上,可以使用SetThreadIdealProcessor(),尽管有更多限制。这个,根据第一个链接的备注Specifyingathread

c++ - 一个线程写入一个变量,另一个线程读取该变量我(C++11 之前)如何保护该变量?

我在C++11之前工作,否则我只会使用包含线程和原子变量来满足我的需要,但是,不能那样做。得到一个在实例化时启动多个线程的类。在一个线程启动函数中,我有类似的东西:voidThisClass::ThisThread(){while(runThisThread){//doingstuff}}另一个函数是:voidThisClass::StopThisThread(){runThisThread=false;//'runThisThread'variableis'volatilebool'}一个线程将根据另一个线程分配的索引咀嚼缓冲区。因此,一个线程会分配一个值,而另一个线程除了读取该值外

c++ - CreateRemoteThread 因 ERROR_NOT_ENOUGH_MEMORY 而失败

这是一个很奇怪的问题,但我相信,这是SO的主题。简介:我有一个用C#编写的服务,它调用我的C++库。C++库通过WinExec执行一些3rdparty软件。第3方软件通过CreateRemoteThread注入(inject)DLL。我没有此软件的源文件。主要部分我有2台电脑-Win2008和Win10。对于Win10-这个科学怪人工作完美,服务运行DLL,DLL运行3rdpartyDLL注入(inject)器,DLL注入(inject)器注入(inject)东西。对于Win2008,情况有所不同。如果我从CMD运行3rdpartyDLL注入(inject)器-它可以完美运行。但是,如

windows - 将终端区域设置永久设置为 C.UTF8

当我在Git的终端sh.exe中使用locale时(在PhpStormIDE中激活),会出现:$localeLANG=LC_CTYPE="C"LC_NUMERIC="C"LC_TIME="C"LC_COLLATE="C"LC_MONETARY="C"LC_MESSAGES="C"LC_ALL=C而且我不能使用任何字符,例如±、ę等。使用exportLC_ALL=C.UTF8后:$localeLANG=LC_CTYPE="C.UTF8"LC_NUMERIC="C.UTF8"LC_TIME="C.UTF8"LC_COLLATE="C.UTF8"LC_MONETARY="C.UTF8"LC_

c++ - 从 Matlab 运行 exe 代码。在 cmd (dos) 中工作的完全相同的指令在 Matlab 中失败

这让我发疯,我必须承认。在终于能够成功编译我需要处理语音文件的两个函数之后,从我从一个值得信赖的在线存储库下载的C/C++代码(代码已经在Linux中经过彻底测试),我现在正在努力从Matlab启动这些文件...当我在cmd(dos)中键入以下命令时分析b2.wavconfig_default它有效,没问题(参见此处Works)。然后,我将完全相同的命令构建到一个字符串中,并将其提供给“系统”Matlab函数。然后代码崩溃了...(请参阅此处Fails)我已经尝试使用完整路径(c:\b2.wav等)但仍然无法正常工作...关于为什么会发生这种情况有什么想法吗?

c++ - 如何制作一个功能,以便我可以输入我想打开的浏览器?

我的代码有什么问题?我正在尝试制作一个程序,您可以在其中键入要打开的浏览器。VC++在if语句中一直在等号下划线。#include#includeusingnamespacestd;voidOpenBrowser(stringbrowser){ShellExecuteA(NULL,"open",browser.c_str(),NULL,NULL,SW_MAXIMIZE);}intmain(){chara;std::cout>a;if(a="firefox"){OpenBrowser("firefox");}else{OpenBrowser("chrome");}system("paus

c - 如何使这个 1996 年的 makefile 起作用?

这是1996年旧GSM标准的make文件。我需要让它在运行OSX10.11.6的MacBook或Windows7的大学计算机上运行。Windows没有安装nmake在谷歌搜索之后,这个问题似乎是一个解决方案。有没有办法绕过makefile的使用?此外,将CDIR和UTILSDIR更改为完整路径在我的Mac上还不够。make-fmakefile.mak仍然返回TCC-A-I/Users/Henrik/Desktop/GSMHR2/DISK/c-Fc-ml-c/Users/Henrik/Desktop/GSMHR2/DISK/c/gsm_hr.cmake:TCC:Nosuchfileord