使用SetConsoleWindowInfo时无效的句柄

弗朗切斯科·德尔·韦基奥

我是C ++的新手,因此决定通过一个小型控制台游戏挑战自我。避免典型的闪烁。从我从MSDN文档中获得的信息来看,我应该使用控制台缓冲区,但是我很轻松,并且从简单的事情开始,例如更改窗口标题并调整其大小。我编写的小程序就是这样做的,但是由于某些原因,我在执行SetConsoleWindowInfo时会收到错误代码6(应该是“无效的句柄”)。

有人可以为此指出正确的方向吗?先感谢您

#include <windows.h>
#include <stdio.h>
#include <iostream>

HANDLE  wHandle, bHandle;

SMALL_RECT wSize = { 0,0,100,100 };

int main() {
    wHandle = GetConsoleWindow();
    if (wHandle == NULL) {
        printf("Handle is Null");
    }
    SetConsoleTitle(L"NewTitle");
    if (!SetConsoleWindowInfo(wHandle, TRUE, &wSize)) {
        printf("SetConsoleWindowInfo (%d)\n", GetLastError());

    }

    getchar();
    return 0;
}
阿德里安·摩尔

也许这会有所帮助:

#include <windows.h>
#include <stdio.h>
#include <iostream>

HANDLE  wHandle, bHandle;

//SMALL_RECT wSize = { 0,0,100,100 }; // If SetConsoleWindow fails with code 87, then this is too big!
SMALL_RECT wSize = { 0,0,60,20 }; // Works on my screen!

int main() {
//  wHandle = GetConsoleWindow(); 
    wHandle = GetStdHandle(STD_OUTPUT_HANDLE); // See comment by RbMm
    if (wHandle == NULL) {
        printf("Handle is Null");
    }
//  SetConsoleTitle(L"NewTitle"); // Don't use a wide character string!
    SetConsoleTitle("NewTitle");
    if (!SetConsoleWindowInfo(wHandle, TRUE, &wSize)) {
        printf("SetConsoleWindowInfo (%d)\n", GetLastError());
    }
    getchar();
    return 0;
}

随意询问,如果您不了解我已更改的任何内容(或为什么更改了它),但是这些评论解决了一些问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用非默认 GPU 时从 cudaLaunchKernel 返回的资源句柄无效

unixODBC:在 Haskell 线程中分配句柄时句柄无效

尝试连接到Networkshare时句柄无效

从Python 3调用Windows API时无效的句柄

在詹金斯中使用psexec.exe,句柄无效

无效的句柄(使用应用程序验证程序)

PsExec和无效的句柄

无效传递跟踪句柄*

Printdocument“句柄无效”错误

m safeCertContext是无效的句柄

PowerShell StartProcess:无效的句柄

使用C#.net框架4.7.2中的FileOpenPicker与Microsoft.Windows.SDK.Contracts(不带UWP)时出现“无效的窗口句柄”错误

从Delphi执行脚本时出现错误“无效的事务句柄(预期显式事务开始)”

OSError:[WinError 6]从Python 3.6调用子进程时,句柄无效

尝试执行任何需要处理的操作时,无法修复WinAPI中的“无效句柄”错误

在ASP.NET中获取屏幕截图时出现“句柄无效”错误

OpenProcess函数返回无效的句柄

MoveWindow返回“无效的窗口句柄”

Windows API错误“句柄无效”

使用 SMB3 时陈旧的文件句柄错误

在单击句柄中使用 sestate 时 typeScript void 错误

使用“打印”时语法无效?

使用单个 HANDLE 和两次 ReadProcessMemory 调用时的无效句柄

重定向输出时,为什么调整控制台缓冲区会引发无效的句柄异常?

??? 使用==>设置传递给'CurrentAxes'属性的uicontrol句柄时出错-需要有效的轴句柄

gradle句柄或忽略无效的pom警告消息

为什么WaitForSingleObject()认为提供的句柄无效?

无法创建子窗口,句柄无效

给出的C ++ Windows API GetSecurityInfo无效句柄