草庐IT

c++ - 主对话框在命令消息处理程序返回之前销毁

我的程序使用无模式对话框与用户交互,还有一个托盘图标。用户可以使用托盘图标立即退出应用。BOOLOnInitDialog(){initdata...}voidOnDestroy(){destroydata...}voidOnSomeButton(){CFileDialogdlg;...dlg.DoModal(m_hWnd));accessdata......}voidOnMenuExit(){DestroyWindow();}问题是,当我弹出一个模态对话框(OnSomeButton),然后使用托盘图标菜单退出时,主对话框首先被销毁,然后模态对话框返回,试图访问一些无效数据,导致崩溃。我

windows - Windows 上的安全命名共享内存,因此只有特定进程可以打开

有没有办法在Windows中使用命名共享内存设置权限,以便由进程而不是用户完成访问控制?我想让一个程序创建内存,传递句柄或传回PID,以便客户端进程可以访问内存。应拒绝所有其他进程访问。谢谢 最佳答案 访问控制仅由安全主体进行,安全主体可以是用户、组、计算机等。如果你有一个你想与另一个进程共享的对象,你可以使用DuplicateHandle. 关于windows-Windows上的安全命名共享内存,因此只有特定进程可以打开,我们在StackOverflow上找到一个类似的问题:

带参数的 C++ 简单线程(无 .net)

我已经在互联网上搜索了一段时间并找到了不同的解决方案,但后来都没有真正起作用或者对我的使用来说太复杂了。直到2年前我才使用C++,所以它可能有点生疏:D我目前正在编写一个将数据发布到URL的程序。它只发布数据。为了发布数据,我使用curl,但它会阻塞主线程,并且当第一个帖子仍在运行时,第二个帖子应该开始。最后大概有5-6个post操作同时运行。现在我想将带有curl的帖子推送到另一个线程中。每个帖子一个线程。线程应该得到一个字符串参数,其中包含要推送的内容。我目前被困在这个问题上。尝试了Windows的WINAPI,但在读取参数时崩溃了。(在我的示例中,第二个线程仍在运行,而主线程结束

windows - GetProcAddress 为 RegDeleteKeyEx 返回 NULL

我正在尝试为32位和64位操作系统实现注册表项的递归删除。由于RegDeleteKeyEx未针对低于XPx64Professional的操作系统定义,因此我尝试间接使用该函数。问题::即使在x64上,GetProcAddress()也会返回NULL。//GlobalDeclarationstypedefLONG(WINAPI*PFN_RegDeleteKeyEx)(HKEYhKey,LPCTSTRlpSubKey,REGSAMsamDesired,DWORDReserved);PFN_RegDeleteKeyEx_RegDeleteKeyEx;//Thecodeinsidefuncti

c++ - 关于 MSDN 代码示例, "Enabling and Disabling Privileges"

MSDN文章,EnablingandDisablingPrivilegesinC++,提供了一个代码示例来展示如何在访问token中启用或禁用权限。我引用被质疑的部分:tp.PrivilegeCount=1;tp.Privileges[0].Luid=luid;if(bEnablePrivilege)tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;elsetp.Privileges[0].Attributes=0;Attributes成员的零值是什么意思?根据TOKEN_PRIVILEGES的文档结构,权限的属性可以是以下值的组合:SE

windows - 如何在 CreateFile 中打开卷的文件系统?

CreateFile上的MSDN页面说:字符串"\\.\C:\"可用于打开C:卷的文件系统。但是,以下代码总是返回错误:ERROR_PATH_NOT_FOUND。HANDLEh=CreateFile(L"\\\\.\\C:\\",FILE_READ_ATTRIBUTES,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,0,OPEN_EXISTING,0,0);我应该如何正确传递参数? 最佳答案 如果您想要一个卷句柄(与I/O控制代码一起使用),您需要去掉尾部的斜线。为了获得根目录

windows - 查找并模拟点击系统托盘图标?

我需要弄清楚如何以编程方式从单独的应用程序的系统托盘图标中查找和选择上下文菜单项。我能想到的实现这一点的唯一方法是使用mouse_event()和一些硬编码的x/y值,并将图标设置为始终显示。除了一般的硬编码的hacky使用之外,这里的问题是图标将保留其位置的假设(这可能会在另一个应用程序加载/卸载时中断)。我想知道是否有人知道解决此问题的其他方法? 最佳答案 根据应用程序的编写方式,从上下文菜单中选择项目将导致WM_COMMAND消息发布到属于该应用程序的窗口。您可以使用像Spy++这样的工具来检查这一点。如果是这种情况,那么您所

windows - 如何在 lua 中递归地遍历 Windows 注册表?

我来自Linux领域,请多多包涵。我想递归地遍历Windows注册表。到目前为止,我所做的一切都是为了获取各个键的值>require'luacom'>sh=luacom.CreateObject"WScript.Shell">=sh:RegRead"HKCU\\Console\\ColorTable01"8388608还没有办法迭代注册表节点... 最佳答案 如果您需要使用Lua执行任何特定于Windows的操作,您的第一个调用端口应该是winapi图书馆;在这种情况下,您可以使用open_reg_key()枚举注册表项和Regke

c - fscanf() 返回负值

我正在使用fscanf()函数从文本文件中逐行读取数据。它运行良好,但突然我不知道我犯了什么错误,现在该函数返回一个负值。下面是我的代码片段:FILE*fp;charip[16];intport;fp=fopen("ClientInformation.txt","r");intsize=-1;while(!feof(fp)){fgetc(fp);size++;}charbuff[1000];sprintf(buff,"%i",size);MessageBox(NULL,buff,"Size",MB_ICONINFORMATION);if(size>0){while(fscanf(fp,

windows - Psexec 和 UAC 问题

我正在使用psexec在Windows7远程机器上运行exe。我需要exe以管理员权限运行,因为它需要更新远程系统中HKLM下的一些注册表。在运行psexec时,我提供了远程系统上管理员帐户的凭据。当远程系统上的UAC关闭时,一切正常。但是开启UAC后,远程exe无法启动。已将exe配置为使用“RequireAdministrator”的list设置。我期望的是在远程计算机上启动exe时看到UAC提示提升警告。如果有某种方法可以绕过提示,那就太好了。但不幸的是,exe无法自行启动。有任何想法吗? 最佳答案 需要的是psexec.ex