Tag: winapi

用C / C ++滚动自己的键盘/输入系统

题: 学习如何创建自己的输入/输出系统需要什么样的资源? 我自己的理解: 我知道这是依赖于操作系统的,所以让我们分开Linux和Windows并列出两个操作系统的资源(如果可能的话)。 对于Linux,我猜测需要对X Window系统有一定的了解。 对于Windows,我猜测win32 API。 尽管如此,我猜它还有更多的东西,而不仅仅是知道这些,好像我宁愿用C ++编写输入系统。 询问理由: 我尝试阅读OIS源代码(因为这将用C或C++编写),并且不喜欢它的编写方式。 因此,我自己学会了如何编写自己的键盘输入/输出系统来进行简单的乒乓游戏(用C++编写)。

PlaySound在C哔声但不播放wav文件

在C中,我的PlaySound没有抛出任何错误……但是不是播放我想要的文件,而是发出哔哔声。 有什么建议? 我试过了 : PlaySound(“song1.wav”, NULL, SND_ALIAS | SND_APPLICATION); 和: PlaySound(“song1.wav”, NULL, SND_FILENAME); 但我得到了同样的结果。

确定进程是否从快捷方式开始

是否可以确定是否使用快捷方式启动了另一个进程/窗口? 目的是然后读取获取启动设置的快捷方式:启动文件夹,以管理员身份运行等。也许有办法找出程序的催化剂/调用者(用户/应用程序w管理员权限/快捷方式) ? 我知道使用Windows驱动程序工具包来确定它 。 虽然这在其他方面发展是相当棘手的。

热修补function

我正试图在内存中修补exe,源代码可用,但我这样做是出于学习目的。 (所以请不要评论建议我修改原始来源或使用绕道或任何其他库) 以下是我遇到问题的function。 vm_t* VM_Create( const char *module, intptr_t (*systemCalls)(intptr_t *), vmInterpret_t interpret ) { MessageBox(NULL, L”Oh snap! We hooked VM_Create!”, L”Success!”, MB_OK); return NULL; } void Hook_VM_Create(void) { DWORD dwBackup; VirtualProtect((void*)0x00477C3E, 7, PAGE_EXECUTE_READWRITE, &dwBackup); //Patch the original VM_Create to jump to our detoured one. BYTE *jmp = (BYTE*)malloc(5); uint32_t offset = 0x00477C3E – (uint32_t)&VM_Create; […]

使用Turbo-C的C中的Windows.h.

我在Turbo C的include文件夹中找不到windows.h,因此无法使用Win32 api 有人可以建议一个解决方法吗? 谢谢

如何将文本追加到TextBox?

我认为以下代码应该是不言自明的。 #include static HWND textBoxInput; static HWND button; static HWND textBoxOutput; LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR cmdLine,int nCmdShow) { HWND hMainWindow; WNDCLASS wc = {}; wc.lpfnWndProc = WindowProc; wc.lpszClassName = “Main’s window class”; wc.hInstance = hInstance; RegisterClass(&wc); hMainWindow = CreateWindow(wc.lpszClassName,”Append text main window”,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,500,400,NULL,NULL,hInstance,NULL); error=GetLastError(); if(hMainWindow […]

从左侧resize时,窗口会闪烁

每当我移动窗口并同时resize时,我的窗口似乎都会闪烁。 当从窗口左侧进行尺寸调整时,通常会发生这种情况。 为什么会发生这种闪烁? 换句话说,当您重新定位窗口时,操作系统在做什么? 注意:从右侧resize时,我不会遇到闪烁,这意味着窗口不一定会移动其原点X和Y.

确定要复制CRITICAL_SECTION?

可以使用CRITICAL_SECTION变量来实现互斥。 我的问题是:CRITICAL_SECTION是否支持复制? 如果我将一个值传递给另一个线程,我是否可以确定相互排除是否有效? 如果答案是“你不能那样做”,我不会感到惊讶,但是得到某种官方确认会很好。 我无法在文档中找到任何声明。

如何在Windows XP下监控Windows服务的状态变化?

我正在尝试用C编写一个程序,它可以检测何时启动或停止某些Windows服务(即NT服务)。 似乎有一个函数NotifyServiceStatusChange ,但这只适用于Vista和Windows 7.我试图在Win XP上执行此操作,那么最好的方法是什么? 除连续投票外还有其他吗? 编辑: 有人能用C答案吗? 我也熟悉C ++,但我想远离脚本。

SendInput()键盘字母C / C ++

我正在尝试使用SendInput()将句子发送到另一个应用程序(记事本),然后将其发送到Enter键。 任何代码片段? 或者帮忙