假设我在一台Windows机器上删除了(或者可能移动或重命名)了一些文件。现在我想找出删除/移动它们的过程。我该怎么做? 最佳答案 假设您在代码中需要这个,唯一的选择是让文件系统过滤器驱动程序拦截请求并捕获您需要的信息。我们的CallbackFilter产品允许在用户模式下执行此操作(包括驱动程序)。其他选项(不在代码中)是对有问题的文件启用审核并使用ProcMon工具(Sysinternals的ProcessMonitor)来监控文件。 关于windows-如何在Windows中找到删
我们使用InstallAnywhere2012部署了一个Java应用程序。部署的应用程序有一个版本通知机制,弹出一个网站,并鼓励用户下载并启动“新版本”,而“旧版本”可能仍在运行。在此过程中有一个“请退出”对话框,但用户通常不会退出,安装“新版本”的行为通常只会覆盖未锁定的文件,这会导致无法安装,直到用户执行干净重新安装。如果“旧版本”当前正在运行,我想修改实际安装程序以退出,要求用户先退出它。IA提供了一种“执行自定义代码”的方法,它可以指向一个jar文件。因此,我创建了一个独立的可运行jar程序,如果一切正常,该程序将以代码0退出,如果检测到“旧版本”正在运行,则以代码1退出,这取
我在将一些C++代码转换为Windows上的Haskell后遇到了问题。C++中的代码工作正常,但在Haskell中,任何OpenGL函数都无法加载,即usererror(unknownOpenGLextensionentryglGenVertexArrays,checkforOpenGL3.1)而该函数在C++中运行良好(我使用的是glLoadGen)。我已将两者都加载到depends.exe中,但没有发现它们与OpenGL32.dll的使用有任何区别。我正在使用OpenGLRaw-1.3.0.0。 最佳答案 这是由于在调用Gra
我正在运行一个具有SYSTEM权限的程序。我从LogonUser(szUserName,NULL,szPassword,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,&hToken)中请求句柄的用户名和密码以进行本地登录。我想运行cmd.exe程序作为登录提供的用户凭据。登录成功,但当我尝试运行该过程时,没有任何反应。程序中止。我的代码是...//cmd.cpp:Definestheentrypointfortheconsoleapplication.//#include#include#include#include#include#i
我想获取我从我的应用程序运行的进程打开的线程数,以运行我使用此代码的应用程序p.StartInfo=newProcessStartInfo(Application.StartupPath+@"\bin\childApp.exe",parametr);p.StartInfo.CreateNoWindow=true;p.StartInfo.WindowStyle=ProcessWindowStyle.Hidden;p.StartInfo.UseShellExecute=false;p.StartInfo.RedirectStandardOutput=true;p.Start();我想知道我
我有一个WPF应用程序,它显然是一个Windows进程,我能够确定分配的托管内存,重要的是确定使用的总内存(专用工作集)。是否有准确判断进程分配的剩余可用内存?我很想知道什么时候会抛出OutOfMemory异常。 最佳答案 没有直接的方法,但您可以使用MemoryFailPoint来“探测”剩余的可用内存。类(class)。如果请求的内存不可用,它将抛出InsufficientMemoryException。然后,您可以进行一种“二分搜索”以获得可用内存的近似值。 关于.net-是否有办
我正在使用WindowsAPI线程,我想比较线程ID。首先,我用CreateThread()创建了一个线程并存储我从函数中获取的句柄(HANDLE)和ID(LPDWORD)。然后我使用GetCurrentThread()从创建的线程中获取句柄和ID和GetThreadId().对于两个句柄和两个ID,我总是得到不同的值。有没有办法以类似于pthread的方式比较线程?我这样做是为了作为确认正确执行的调试选项。我总是从其他库(pthread.h、threads.h)但不是从Windowsapi得到正确的结果。这不是一个关键问题,但我想学习winapi中的程序
我有一个服务器,它为每个传入请求生成一个新进程或线程,我需要从线程和进程读取和写入在该服务器中定义的变量。由于服务器程序需要同时在UNIX和Windows上运行,我需要以可移植的方式共享变量,但我该怎么做呢?我需要使用标准C库或native系统调用,所以请不要推荐第三方库。 最佳答案 sharedmemory是特定于操作系统的。在Linux上,考虑阅读shm_overview(7)和(因为使用共享内存,你总是需要某种方式来同步)sem_overview(7).当然,您需要找出相似(但可能不等同)的Windows函数调用。注意thre
我有一个捕获Controller输入的线程。这是该线程所做的唯一事情-它每x毫秒调用一次XInputGetState()并将结果存储在一个同步的循环缓冲区中。当达到特定条件时,我有另一个线程通过XInputSetState()振动Controller来对此输入使用react。换句话说,一个线程只会调用XInputGetState(),而另一个线程只会调用XInputSetState()。从理论上讲,不可能同时多次调用任一函数。如果没有同步,这样做仍然不安全吗?注意:这两个函数处理完全不同的数据集,但实现最有可能读取/写入不同步的内容。 最佳答案
有谁知道如何产生类似的结果?(本质上是将Windows终端绑定(bind)到打开的程序)例如,当您在bash(或另一个linux终端)中运行“emacs”时,它将在打开的终端中产生一个输出,直到程序终止(或使用emacs&)我希望能够在Windows上重现这种效果,但不知道如何运行start(和类似的命令)只会在新窗口中运行该程序,并带有隐藏的命令行,与cmd行进程分离。 最佳答案 你需要/B标志:start/Bmyprogram(当然,这只适用于实际使用控制台的程序。如果程序不生成控制台输出,这不会神奇地让它这样做。)