草庐IT

c++ - 替换 sleep 直到桌面上的窗口打开

当我打开一些软件应用程序时,我必须等待2-3秒,直到窗口显示在桌面上。我必须使用Sleep(2000);然后调用方法setalwaysontop。我正在尝试在我的代码中替换Sleep。我想从打开的窗口获取信号,然后调用一个方法,使打开的窗口始终位于最前面。这是我的代码:BOOLCALLBACKEnumWindowsProc(HWNDwindowHandle,LPARAMlParam){DWORDsearchedProcessId=(DWORD)lParam;DWORDwindowProcessId=0;GetWindowThreadProcessId(windowHandle,&win

c++ - 使用 MinGW 编译的 libx264 - 缺少 __umoddi3、__udivdi3、_fseeko64 和 __chkstk_ms

我愿意在我的Windows项目中使用x264,所以我使用MinGW和gcc从源代码将库构建到静态库中。正确包含库和header,唯一的问题是链接器现在提示,因为__umoddi3、__udivdi3、_fseeko64和__chkstk_ms。看起来这个函数是某些标准库的一部分,但我在Windows中的什么地方可以找到它?谢谢。 最佳答案 我不会在此处复制/粘贴完整答案,但您应该阅读此topicatdoom10.org简而言之,您不能在MSVS中直接使用MinGW编译的.a库(静态或共享)。您需要编译libx264.dll并从.de

c - 如何在 WinLDAP 中使用 ldap_sasl_bind?

我目前使用ldap_bind_s使用SEC_WINNT_AUTH_IDENTITY结构绑定(bind)到我的C应用程序中的服务器,但该函数被标记为已弃用。出于这个原因,我想将其更改为ldap_sasl_bind_s功能。intmain(void){LDAP*ld;intrc=0;char*binddn="cn=admin,dc=local";constintversion=LDAP_VERSION3;SEC_WINNT_AUTH_IDENTITYwincreds;structbervalsaslcred;wincreds.User="admin";wincreds.UserLength

java - 从java类编译C文件

importjava.io.*;publicclasschk{StringclassName;Stringcommand,command1,command2;publicStringgetMsg(StringfileName,FilePath1){Stringdir;command="tcc"+fileName;Stringoutput=executeCommand(command,Path1);if(output.compareTo("")==0)output="CompilationSuccessfull!!";returnoutput;}privateStringexecuteC

windows - C++ 获取当前用户的 session 名称、IP 地址、已安装操作系统的名称和该操作系统的版本

我需要知道哪些词汇才能获取当前用户名、已安装操作系统的名称、此操作系统的版本以及C++应用程序中的相关IP地址?编辑:该解决方案只能在Windows操作系统上运行。 最佳答案 window:GetUserNameGetVersionExGetIpAddrTable(orabunchofotherAPIsiniphlpapi.dll)Unix:getloginunamegetifaddrs 关于windows-C++获取当前用户的session名称、IP地址、已安装操作系统的名称和该操作系

c++ - 监听 WM_SYSCOMMAND 事件

我正在编写一个小的c++程序,它应该对sc_screensaver和sc_monitorpower事件使用react。这应该在后台运行,因此没有gui。因为我还没有使用WindowsAPI的经验,所以我为此苦苦挣扎。A已经在谷歌上搜索了很多,发现了很多我不理解或不起作用的方法。你们中的任何人都可以给我提示吗?我阅读了有关捕获wm_syscommand的内容,但这似乎很困难,因为我没有窗口。 最佳答案 获取消息的唯一方法是通过消息循环和窗口过程。如果您的程序没有可见的图形用户界面,您必须创建一个message-onlywindow为此

c++ - 报告 ListView 中的气球式工具提示中错误的词干位置

我想将ListView控件工具提示的默认样式更改为气球。我首先调用了ListView_GetToolTips()获取ListView工具提示控件的HWND,然后使用了GetWindowLongPtr()/SetWindowLongPtr()添加TTS_BALLOON样式。我处理LVN_GETINFOTIP以自定义ListView中项目(第一列)的工具提示:第一列项目出现的工具提示文本实际上是第三列文本的拷贝柱子。其他列(子项)由ListView自动管理。第一列项目的气球式工具提示看起来不错;它们的词干位置正确:但是第二列的工具提示似乎画错了,例如气球被绘制为好像它被引用到鼠标光标指向的

c++ - 并非总是可以在 "clean"Windows 8.1 上的 WoW64 上捕获 SEH

我有使用VS2008编译的Win32MFC应用程序。该应用程序具有TreeConrtol。有一个TVN_ITEMCHANGING处理程序,在处理程序中我强行重新绘制已更改的树项。这是带有SEH处理程序和直接WinAPI调用而不是MFC包装器的代码(这不会影响问题):voidCMainDlg::OnTvnItemChangingMainTree(NMHDR*pNMHDR,LRESULT*pResult){NMTVITEMCHANGE*pNMTVItemChange=reinterpret_cast(pNMHDR);HWNDhTreeCtrl=_ctrlTree.GetSafeHwnd()

C++ 写注册表

这个问题在这里已经有了答案:UsingC++toedittheregistry(5个答案)关闭8年前。我会在注册表中写入此注册表项。它应该用C++为Windows7和8编写。这是.reg文件:REGEDIT4WindowsRegistryEditorVersion5.00[-HKEY_CLASSES_ROOT\.bin\][-HKEY_CLASSES_ROOT\binimage\][-HKEY_CLASSES_ROOT\BootvisTraceFile\][-HKEY_CLASSES_ROOT\CrestronSIMPLWindowsCompiledProgram\][-HKEY_CL

c - fwrite() 性能远低于磁盘容量

我有一个包含1700万个元素的struct动态分配数组。为了将它保存到磁盘,我写了fwrite(StructList,sizeof(Struct),NumStructs,FilePointer)在后面的步骤中,我使用等效的fread语句读取它,即使用sizeof(Struct)和NumStructs的计数.我预计生成的文件大约为3.5GB(这都是x64)。是否可以通过传递sizeof(Struct)*NumStructs作为大小和1作为计数来加快速度?我绞尽脑汁想知道为什么在具有32GBRAM(大量写入缓存)的快速计算机上写入操作可能需要分钟。我已经运行了自制基准测试,缓存足够激进,前