Articles of winapi

我怎样才能从代码模拟鼠标事件?

我想用Win32 API模拟鼠标事件; 我该怎么做? 我想要做的是在最基本的层面上模拟事件,系统只有事件types和坐标的级别,还没有计算出它必须把它传递给哪个窗口。 我不知道这是如何工作的。 无论哪种方式,我都需要帮助。 我会不得不插手驾驶员? 为了明确我的要求,我不想针对任何窗口,我只想让系统认为鼠标被用户点击或移动。 我将在C编码

从Windows 8桌面应用程序获取Microsoft帐户ID

试图找出用Microsoft帐户login到Windows 8的用户的活动电子邮件/标识,假设它不是一个本地帐户,他们被authentication为。 试图从WPF桌面C#应用程序中find,而不是Windowsapp store应用程序 发现Live SDK有潜在的相关性, 比如我的快捷方式 ,但是我不确定这个API可以用于一个完整的.NET应用程序吗?

我如何获得写入registry项的权限?

我正在尝试在registry的HKLM部分下编写一些registry项。 我以类似于我见过的一些MSDN示例的方式使用RegCreateKeyEx()和RegSetValueEx()。 但是,RegSetValueEx()调用失败,出现错误5 FormatMessage()说是“访问被拒绝” 我想我需要请求提升的权限,但我不知道需要这样做的API调用? 这是我的代码: HKEY hk; DWORD dwDisp; LONG result = RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\MyApp"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hk, &dwDisp); if(result == ERROR_SUCCESS) { BYTE value[] = "Hello world!"; result = RegSetValueEx(hk, _T("MyValue"), 0, REG_EXPAND_SZ, value, strlen((char*)value)+1); if(result != ERROR_SUCCESS) { DBG_PRINT2("RegSetValueEx failed with code: %d\n", result); } RegCloseKey(hk); }

SendMessage(HWND_BROADCAST挂起

当我使用HWND_BROADCAST的SendMessage函数时,应用程序挂起。 长时间没有应用程序的反应。 谁能解释为什么?

复制文件而不使用Windows文件caching

任何人都知道将文件从pathA复制到pathB并抑制Windows文件系统caching的方法? 典型用途是将USB驱动器或服务器上的大文件复制到本地计算机。 如果文件真的很大,Windows似乎将所有东西都交换出来,例如2GiB。 喜欢在C#中的例子,但我猜这将是一个Win32调用,如果可能的话。

在Microsoft Media Foundation中获取相机支持的所有FPS值

我想获得我的摄像头支持的所有FPS值的列表。 在如何设置video捕捉帧率的 MSDN文章说,我可以查询系统的最大和最小支持特定相机的FPS。 它还说: 该设备可能支持此范围内的其他帧速率。 并在MF_MT_FRAME_RATE_RANGE_MIN中说: 该设备不保证在此范围内支持每个增量。 所以听起来好像没有办法让媒体基金会的相机支持所有的FPS值,只有最大值和最小值。 我知道在Linux上v4l2-ctl –list-formats-ext命令打印的支持的FPS不仅仅是min和max。 以下是使用不同摄像头的Linux的几个例子: $ v4l2-ctl –list-formats-ext ioctl: VIDIOC_ENUM_FMT Index : 0 Type : Video Capture Pixel Format: 'YUYV' Name : YUV 4:2:2 (YUYV) Size: Discrete 160×120 Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.036s (27.500 fps) Interval: Discrete 0.040s (25.000 fps) Interval: Discrete 0.044s (22.500 fps) Interval: […]

WinAPI获取鼠标光标图标

我想在Windows中获取光标图标。 我认为我使用的语言在这里不是很重要,所以我只是用我尝试使用的WinAPI函数编写伪代码: c = CURSORINFO.new(20, 1, 1, POINT.new(1,1)); GetCursorInfo(c); #provides correctly filled structure with hCursor DrawIcon(GetWindowDC(GetForegroundWindow()), 1, 1, c.hCursor); 所以这部分工作正常,它在活动窗口上绘制当前光标。 但那不是我想要的。 我想获得一个像素数组,所以我应该把它绘制在内存中。 我试图这样做: hdc = CreateCompatibleDC(GetDC(0)); #returns non-zero int canvas = CreateCompatibleBitmap(hdc, 256, 256); #returns non-zero int too c = CURSORINFO.new(20, 1, 1, POINT.new(1,1)); GetCursorInfo(c); DrawIcon(hdc, 1, 1, c.hCursor); #returns 1 GetPixel(hdc, 1, 1); #returns […]

如何获取当前用户的用户名?

我想使用C编程访问Windows中的用户名,并使用该名称创build特定文件的path,如“c:\ users \ john \ Roaming …..等等”。 所以对于每个系统用户名,例如“john”是不同的。 帮助我在运行时find用户名。

Qt:windows函数是无法parsing的外部符号

我想在QtCreator中使用te WinAPI编译一个简单的类似于helloworld的非Qt C ++应用程序。 代码如下: #include <windows.h> int main() { HWND cons = GetConsoleWindow(); SetWindowText(cons, L"I am the console window"); MessageBox(cons, L"Hello world!", L"I am the MessageBox", MB_OK | MB_ICONERROR); return 0; } 看起来很简单,但是当我试图build立它时,编译失败: main.obj:-1: error: LNK2019: unresolved external symbol __imp__MessageBoxW@16 referenced in function _main main.obj:-1: error: LNK2019: unresolved external symbol __imp__SetWindowTextW@8 referenced in function […]

我需要使用哪个API函数来了解是否在任务栏中显示一个窗口?

我正在C#中做一个任务栏,我知道如何获得打开的窗口列表,但是我必须知道我必须在任务栏中显示的窗口。 我怎样才能做到这一点?