小编rst*_*t12的帖子

c ++程序截取屏幕截图

我正在制作一个程序,它将点击键盘的printscreen键.我使用的代码如下:

INPUT myInput;

myInput.type = INPUT_KEYBOARD;

KEYBDINPUT keyboardInput;
keyboardInput.wScan = 0;
keyboardInput.dwFlags = 0;
keyboardInput.time = 0;
keyboardInput.dwExtraInfo = 0;
keyboardInput.wVk = VK_SNAPSHOT; 
myInput.ki = keyboardInput;

SendInput(1, &myInput, sizeof(INPUT));//pressing the printscreen key

keyboardInput.dwFlags = KEYEVENTF_KEYUP;
myInput.ki = keyboardInput;

SendInput(1, &myInput, sizeof(INPUT));//releasing the printscreen key
Run Code Online (Sandbox Code Playgroud)

由于某种原因,代码不能正常工作.如果我去绘画并试图从剪贴板中进行paist,那么它只会通过我在使用我的程序之前所做的任何打印屏幕.另外我的键盘不需要我用打印屏幕按"alt"以使其工作..

我曾尝试按下Alt键,按下打印屏幕键,以及释放Alt键,释放打印屏幕键,我得到的差异是当我试图通过它时油漆,我是一个完整的黑色屏幕...这只是我做的一个测试,看看它是否有所作为,但我的实际键盘仅截取打印屏幕按钮的截图.

关于我做错了什么人的任何想法?

编辑:只是为了让你们知道,该程序确实编译.我还添加了其他代码,将剪贴板文件保存到目录中,如果我手动点击打印屏幕按钮,我会正确保存文件...但是如果我继续循环这段代码并保存到目录,则相同的图片手动获取的屏幕截图显示...这就是我如何确定打印屏幕按钮的打击有问题.

c++ screenshot printscreen

6
推荐指数
1
解决办法
2万
查看次数

在WinMain之外使用CreateWindowEX函数时,如何获得它的HINSTANCE?

当我单击主窗口上的按钮时,我试图创建一个弹出窗口,而我正在使用CreateWindowEX函数。但是,CreateWindowEx函数将HINSTANCE类型变量作为倒数第二个参数。假设单击按钮时我是从WndProcedure内部创建此新窗口的,所以WinMain函数中的HINSTANCE变量对我来说将不可用,因为它不是全局变量。

从WndProcedure回调函数获得以下代码:

            case IDC_BUTTON PRESSED:
            {

                const char g_szClassName2[] = "POPWIND";
                const char WndName2[] = "POPUP WINDOW";

                HWND invisWindowHandle = CreateWindowEx(0,
                      g_szClassName2,
                      WndName2,
                      WS_OVERLAPPEDWINDOW,
                      200,
                      200,
                      800,
                      500,
                      NULL,
                      NULL,
                      hInstance,//THIS IS THE VARIABLE I AM HAVING TROUBLE GETTING
                      NULL);

                ShowWindow(invisWindowHandle, 3);// SW_SHOWNORMAL);
                UpdateWindow(invisWindowHandle);
             }
Run Code Online (Sandbox Code Playgroud)

我该如何获取所需的hInstance变量,以便CreateWindowEx函数从WndProcedure回调函数内部运行?

注意:我考虑过将hInstance变量设置为全局变量,但是我不确定我的应用程序创建的每个窗口是否都必须使用相同的hInstance。

c++ window createwindowex

1
推荐指数
1
解决办法
1268
查看次数

标签 统计

c++ ×2

createwindowex ×1

printscreen ×1

screenshot ×1

window ×1