草庐IT

api-ms-win-core-util-l

全部标签

c - 在 Win32 SDK 中使用 PlaySound 时,如何检测声音何时播放完毕?

我正在使用Win32SDK中的PlaySound函数来播放波形文件。目前,我有以下代码行:PlaySound(szFile,NULL,SND_FILENAME);但是现在我想知道,如何检测wave文件播放结束的时间?我想在wave停止播放时更改按钮的文本。 最佳答案 PlaySound的功能非常有限。在我开发的一个产品中,我们在DirectSound之上构建了一个媒体播放库来克服这些限制。在它所做的许多事情中,它涉及编写WAV文件解析器和线程代码以将PCM样本流维护到DirectSound缓冲区中。不适合胆小的人。你可以走这条路,但

获取电子邮件哈希时出现 Windows Live Contacts API 错误 - JavaScript

WindowLiveContactsAPI的以下代码可从中获取所有电子邮件地址。它在登录、注销和其他身份验证方面工作正常。我可以使用GetData函数调用收集登录用户的所有用户信息,但我正在获取用户的电子邮件哈希,其余电子邮件哈希为空。我的通讯录中有10个电子邮件地址。我如何使用此API获取我的联系人的电子邮件地址?signUserInsignUserOutCheckUserStatusGetDataWL.init({client_id:'0000000044444444',redirect_uri:'http://domain.com/contact.php',response_ty

windows - 我需要 Hook 什么进程 API 来跟踪服务?

当Windows中的服务或应用程序启动、停止以及它是成功退出还是出现错误代码时,我需要跟踪日志。据我了解,许多服务不会记录自己的开始和停止时间,或者如果它们正确退出,所以似乎要走的路必须在API中插入一个钩子(Hook),以便在服务/应用程序请求时捕获处理空间并放弃它。我的问题是我需要hook什么函数才能完成这个,这有可能吗?我需要它在64位WindowsXP和7上工作。 最佳答案 我认为最好的办法是使用设备驱动程序。参见PsSetCreateProcessNotifyRoutine.

c++ - 在 XP 中也加载的 DLL 中使用新的 Vista 线程池 API(XP 中未使用线程池代码)

我们正在生成一个同时针对Windows7和XP的DLL。我们希望我们的DLL在Windows7系统上加载时使用较新的Vista线程池API,而不是在XP系统上加载时。现在,我们尝试编译带有操作系统运行时检测的DLL,以确保VistaAPI永远不会在XP系统上使用,但我们仍然无法在WindowsXP系统上注册我们的DLL,因为缺少kernel32中的依赖项.dll...除了构建两个单独版本的DLL之外,还有其他解决方法吗?提前致谢 最佳答案 为什么不使用LoadLibrary动态加载kernel32.dll,然后使用GetProcAd

windows - 如何使用 Win32::TieRegistry 编辑 key ?

我在用Perl编写脚本时遇到了以下问题:我必须在Windows注册表中编辑一个键的名称。我正在使用模块Win32::TieRegistry并在文档中搜索任何功能,但没有找到。我知道这应该很容易,但找不到方法。有什么建议吗?谢谢! 最佳答案 您不能更改散列中键的名称,但可以将值复制到新键并删除旧键。$hash{new}=delete$hash{old};假设实现是合理的,这对于绑定(bind)哈希应该同样有效。 关于windows-如何使用Win32::TieRegistry编辑key?,

windows - 使用 Win32::Registry 在 Linux 机器中出现问题

我的perl脚本必须在Windows和Linux服务器上运行。随着脚本的运行,我必须为特定的事情更新注册表。当我使用“使用Win32::Registry”时,它在Windows上运行良好,但在Linux上,无论以下if语句如何,它都会出错。if($OS=~/Windows/){useWin32::Registry;......}在我看来,perl在编译时加载“使用”,这一定是问题所在。我该怎么做才能让Perl在Linux上运行时不加载usewin32命令?我试过用if($OS=~/Windows/){requireWin32::Registry;......}有了这个,脚本在两台服务器

windows - 文件名中的 MS-DOS 时间戳

我在批处理文件中有以下内容。settimefmt=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%dir*.*>logfile_%timefmt%.log这在上午10点之后完美运行,但在此之前失败,因为它向时间戳添加了一个空格而不是前导0。在MS-DOS中有没有办法创建一个前导0的时间戳?我更喜欢使用相当标准的命令,以便它从WindowsXP开始工作。 最佳答案 最好一次获取时间,然后也解析元素。第三行将空格替换为0settimefmt=%time%settimefmt=%TIMEFMT:~0,2%%TIMEFMT

c++ - 通过 Windows API 函数替换对 AfxGetInstanceHandle() 的调用

SHELLEXECUTEINFOinfo;//Initializingstructinfo.cbSize=sizeof(info);info.fMask=SEE_MASK_NOCLOSEPROCESS|SEE_MASK_FLAG_NO_UI;info.hwnd=NULL;info.lpVerb=_T("open");info.lpParameters=sParameters_p;info.lpDirectory=_T("");info.nShow=SW_SHOW;info.hInstApp=NULL;info.lpFile=sFileName_p;//Problemhere:info.

c++ - 我的 Visual C++ Win32 中有一个无法关闭的 MessageBox!到底是怎么回事?

我有一个无法关闭的消息框,我不确定为什么。它是在我的窗口过程中为这样创建的对话框创建的:hwnd=CreateDialog(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIALOG1),NULL,WndProc);下面是有问题的WndProc代码。问题出在MessageBox调用上,OK按钮没有任何作用,也没有点击该消息框上的“X”。BOOLCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){staticHBRUSHbgBrush;switch(msg){caseWM_INITD

java - 线程 "main"java.lang.NoClassDefFoundError : java/util/function/Predicate 中的异常

我已经使用创建了一个jar文件mvnassembly:assembly-DdescriptorId=jar-with-dependencies我在Windows上运行它,它工作正常并且按预期工作。然后我在Ubuntu上运行它,它给出了以下异常:Exceptioninthread"main"java.lang.NoClassDefFoundError:java/util/function/PredicateatMaxima_ImageJ.run(Maxima_ImageJ.java:13)atMaxima_ImageJ.main(Maxima_ImageJ.java:27)Causedb