我有一个在Citrix环境中运行的应用程序。该应用程序可以由多个用户在不同的用户session中同时运行。在我的应用程序中,我正在写入一个文件,该文件应该在所有用户session中互斥。我尝试使用Mutex来避免从不同的用户session写入文件,但使用Mutex失败,因为在某些情况下,不同的用户session无法检测到是否已创建Mutex对象。谁能告诉我以下哪种方法更适合在所有用户session中实现互斥:使用命名管道:如果命名管道已经存在,那么应用程序将等待管道被打开它的应用程序实例关闭。否则创建命名管道以指示获取锁。使用锁定文件:在磁盘上创建一个普通文件来表示获取锁,需要解锁时删
我正在做一个应用程序虚拟化项目。所以我在NT级别挂接应用程序并将注册表调用定向到我的虚拟注册表。在运行任何应用程序时,如果我转到"file"->“打开”。我几乎没有像下面这样的注册表调用:ZwOpenKey(registrykeypath)->它生成句柄ex:(0x04e8)ZwQueryKey(0x4ea,...)ProcessMonitor说打开和查询都是在同一个键上执行的。我自己测试确认是同一个key。查询键也为查询键api生成了正确的结果。这2个字节的差异并不适用于所有打开和查询键的情况。应用程序如何以及为何在调用querykey之前将句柄从0x4e8更改为0x4ea?我还测试
在我的工作场所,我需要创建一个用户必须填写的问卷。目的是使其尽可能不干扰用户并将其链接到他们的Windows帐户。然后,结果将存储在数据库中,可以根据响应生成报告。建议是在登录时加载问卷,即当用户登录计算机时。我必须使该窗口独占,以便无法与其他窗口进行交互。我的问题是我该怎么做?这可以用WPF完成还是我需要XNA或类似的东西?此外,对于如何通过不同的实现方式满足所有标准,是否还有其他建议?有没有办法在屏幕解锁时运行/激活应用程序? 最佳答案 您可以使用WinForms或WPF创建应用程序。我不知道XNA。:)你可以在启动时加载它;通
我有一个作为本地系统运行的Windows服务。我希望该服务产生一个进程作为“NTAUTHORITY/网络服务”。但是,我没有此帐户的凭据。如何使用C++作为“网络服务”用户生成进程。 最佳答案 我不在我的win32开发箱前,所以我无法确认,但我会提供两种可能的方法:遍历进程列表调用OpenProcess()获取现有网络服务进程的句柄调用OpenProcessToken()使用该句柄从他的进程中获取安全token调用CreateProcessAsUser()使用token创建一个进程作为NETWORKSERVICE或者,您可以:调用C
如何“记录”进程访问了哪些注册表项?我可以使用ProcessExplorer或类似工具来执行此操作吗? 最佳答案 ProcessMonitor 关于windows-记录进程读取/写入的所有注册表项,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5730289/
我正在为Windows应用程序创建安装程序(使用InnoSetup)。该应用程序包含我需要存储在用户“我的文档”文件夹中的初始文档。这是问题所在,我以管理员身份安装它,但该机器上可能有一个或多个非管理员用户。我如何将同一个文件夹添加到所有可能的当前(和future用户的)我的文档文件夹中?这是我到目前为止尝试过的-1)我可以尝试获取所有用户名-但是,这对future的用户创建不起作用:(2)我试图将它添加到系统%allusersprofile%\Documents文件夹中。它不会反射(reflect)到单个“我的文档”文件夹中。我相信应该有办法,但到目前为止一直无法从互联网上找到干净的
我想在注册表中存储一个System.SecureString。那可能吗?我将如何着手去做?下次运行时我的程序是否能够再次解密字符串? 最佳答案 如果没有辅助层,就不可能以加密形式进行操作。它本身不支持任何形式的序列化,实际上甚至无法以其原生形式进行检查。要从中获取任何信息,您需要通过PInvoke或SecureStringToBSTRAPI。这两者都可以让您以未加密的形式访问string。我可以看到这个工作的一种方式是通过SecureStringToBSTR将SecureString转换为BSTR加密BSTR将结果存储在注册表中当然
我正在使用reg->SaveKey("Software","D:\1.reg")。但是得到空文件,没有数据。void__fastcallTForm1::Button2Click(TObject*Sender){TRegistry*reg=newTRegistry(KEY_READ);reg->RootKey=HKEY_LOCAL_MACHINE;reg->OpenKey("Software",0);;reg->SaveKey("Software","D:\\1.reg");deletereg;} 最佳答案 SaveKey是对RegS
我正在尝试编写一个应用程序,我可以在其中提供一个注册表路径,例如HKLM\hardware\description\system并且我的应用程序应该在系统下读取每个键名,如果有子键它们的名字,如果还有更多的子项然后他们的名字等等...我的应用程序正在运行(或多或少),但我的问题是如何计算子键?比如system下有2个key,a和b,a下多了3个key,b下多了5个,那我应该怎么算自己在哪个sublevel呢?这很重要,因为我必须知道如何连接注册表路径?到目前为止,这是我的代码(大部分来自msdn,但我找不到类似的示例):#include#include#include#include#
我有几个用perl、python和java编写的脚本(包装在javaGUI下,系统调用perl和python)。我有许多不懂技术的用户需要在他们的Windows机器(xp和7)中使用它。为了避免用户安装perl、python和java,并避免这些解释器的各种版本之间潜在的不兼容,我想在一个文件夹中制作这些解释器的本地副本,然后调用它们。我会压缩整个文件夹(其中也包含我的代码)并将其发送出去。我不得不担心环境变量并调用正确的解释器(特别是当其他版本的python、java、perl可能存在于他们当前的系统中时),但不确定我可能面临的其他问题。有更好的想法吗?我从未使用过jython,也不