Articles of winapi

如何以编程方式更改默认的声音播放设备?

如何更改默认的默认audio设备播放和录制在Vista中编程? 有没有像XP中的声音pipe理器的任何registry设置? 它是哪个API?

这些奇怪的环境variables是什么?

我使用GetEnvironmentString()来获取程序的环境variables。 每个程序都有这样的结果: =::=::\ 我不知道这是什么意思? 这里是代码: LPWCH lpEnvString=GetEnvironmentStringsW(); LPWSTR lpszVariable=(LPWSTR)lpEnvString; while (*lpszVariable) { wprintf(L"%s\n",lpszVariable); lpszVariable+=wcslen(lpszVariable)+1; } FreeEnvironmentStringsW(lpEnvString); 另外,如果我们开始列出这些variables,我们会看到如下内容: =::=::\ =C:=C:\Users\username\value =ExitCode=00000001 ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\artik\AppData\Roaming CommonProgramFiles=C:\Program Files (x86)\Common Files CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files CommonProgramW6432=C:\Program Files\Common Files … 另一方面, getenv("=ExitCode")或getenv("=C:")返回NULL。 你能否提供这个“function”的适当的文档,例如getenv()忽略这样的string,以及如何处理这些值?

使用Python将图表从Excel导出为图像

我一直试图从Excel中将图表导出为Python中的图像文件(JPG或ING)。 我在看WIn32com。 这是我到现在为止。 import win32com.client as win32 excel = win32.gencache.EnsureDispatch("Excel.Application") wb = excel.Workbooks.Open("<WORKSHEET NAME>") r = wb.Sheets("<SHEET NAME>").Range("A1:J50") # Here A1:J50 is the area over which cart is r.CopyPicture() 这是我卡住的地方。 我需要现在将所选范围复制到一个文件。 任何帮助或指向文件的指针可以帮助我很多。 我已经基于下面的VBA脚本build模上述代码: Sub Export_Range_Images() ' ========================================= ' Code to save selected Excel Range as Image ' ========================================= Dim oRange As Range Dim oCht As […]

在Windows中显示文件的属性对话框

有没有一种简单的方法来显示Windows中使用Python的文件的属性对话框? 我试图显示相同的窗口,当您在资源pipe理器中右键单击文件时popup,并select属性。

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

我想用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: […]