我在现场遇到一个奇怪的问题,我们的应用程序在启动时挂起。现场拿到custom生成的crashdump,显示主线程被beginthreadexapi卡住了。这是调用堆栈:0:006>kvChildEBP0161ebb8ntdll!KiFastSystemCallRet(FPO:[0,0,0])0161ebbcntdll!ZwWaitForSingleObject+0xc(FPO:[3,0,0])0161ebf8ntdll!RtlpWaitOnCriticalSection+0x1a3(FPO:[2,7,4])0161ec18ntdll!RtlEnterCriticalSection+0x
如何“记录”进程访问了哪些注册表项?我可以使用ProcessExplorer或类似工具来执行此操作吗? 最佳答案 ProcessMonitor 关于windows-记录进程读取/写入的所有注册表项,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5730289/
首先开始在Delphi7中启动我自己的服务。遵循文档并使服务生成一个自定义线程,该线程会发出蜂鸣声并记录日志。只有它没有。最后一次尝试是在OnExecute事件过程中放置相同的蜂鸣声和日志代码,但是当我启动该服务时,我收到一个Windows对话框,提示它已启动然后再次停止。在thiscode中应该有一些明显的东西被我忽略了.你能看看吗?我还将接受指向简单、有效、可下载的服务示例项目的链接……这样我就可以得到每10秒左右调用一次的东西,我将从那里获取它。 最佳答案 接下来是一个基本的服务应用程序。请注意,如果您想使用Service
我有一个应用程序(winforms)将文件下载到用户的临时文件夹,然后它打开文件供用户查看内容,当文件关闭时,文件从临时文件夹中删除。如果我打开应用程序工作正常假设一个.pdf和一个.doc如果另一个winword进程仍在运行,则在尝试打开一个.doc时出现问题(无论是由我的应用程序打开还是由用户直接打开).我正在使用以下代码:_OpenFileProces=System.Diagnostics.Process.Start(TempFileName);_OpenFileProces.EnableRaisingEvents=true;_OpenFileProces.Exited+=new
如何从文件名中获取进程ID?比如:intprocessId=getProcessIdByFileName("Network.dll");顺便问一下,哪种数据类型具有进程ID?扩展信息:我有一个DLL的源代码。这个DLL被加载到应用程序中,就像其他一些DLL一样。我想Hook其他DLL的功能。因此我需要它们的进程ID(如果它们都在一个应用程序下运行,是否每个DLL都有一个进程ID?如何在我的DLL中调用其他DLL的函数?如何处理它们? 最佳答案 DLL没有进程ID。一个DLL可能被加载到多个进程中,或者根本没有。DLL可以加载到进程中
我已经为我们部门的调试竞赛创建了一个Windows应用程序(使用c#.net)。在这个过程中,许多用户使用同一个数据库来选择问题列表并单独更新各自ID中的标记。当他们更新数据库中的标记时是否需要使用线程概念..any1请帮助我..提前致谢... 最佳答案 Mutil-Threading或多线程用于您希望一次执行多个任务或同时执行某些任务的场景。您应该考虑您的场景以及在您的场景中可能使用多个线程。如果你认为有些任务可以分成两个独立的任务并且它们可以并行运行,你可以使用多线程来提高性能。同样,如果您认为某些任务很繁重并且需要花费大量时间
我正在寻找一种方法来协调同一进程中的DLL,以便在它们之间提供数据共享机制。目标是为所有DLL提供相同的共享代码,并让它们以这样一种方式进行协调,即由主程序加载的第一个将充当共享项的管理器,而其他人将使用此管理器。我无法修改主应用程序,因此不可能设置管理器并与其他DLL共享其内存地址。使用此机制的DLL集可能会有所不同,因此我不能明确假设其中一个将被加载。我考虑的一种解决方案是将内存地址添加到进程的环境变量中。第一个DLL会看到环境变量尚未设置,创建管理器对象并将变量设置为其地址。其他DLL会看到该变量并从中创建一个指向管理器对象的指针。这接近我想要的,但它似乎有点粗糙,因为不能保证环
首先,这是我关于类似主题的第三个问题..我仍然没有答案,也许只是接近它(参见first,second)。我的网络应用程序(IIS7.5下的ASP.NETMVC3)运行git来访问一些github存储库。在我将工作站升级到WindowsSP1后,它停止工作了。原因是git一启动,其实是运行ssh.exe来和github通信的。ssh.exe似乎挂起,因此所有应用程序都挂起。该应用程序使用的应用程序池使用与我相同的进程标识。但是使用ProcessHacker我可以看到下图:因为USERPROFILE指向/system32/config/systemprofilessh.exe期望有.ssh
我想编写一个批处理文件来更新正在运行的进程(一个常规应用程序)正在使用的DLL。为此,计划是停止进程,将DLL复制到所需位置,然后重新启动进程。我知道我可以尝试使用taskkill终止进程。在我拍摄它之后,如何确保该过程已经倒下并死亡? 最佳答案 这是我用过的。它是批处理文件中的一个子程序。settasklist=%windir%\System32\tasklist.exesettaskkill=%windir%\System32\taskkill.exe---------------------------------------
面试官问:我们如何才能发现应用程序是否由于死锁或由于等待某些IO而变得无响应?任何人都可以评论执行此操作的任何一般方法,或者各种方法是否提供了一些特定的方法?我相信这是与操作系统相关的事情,所以我不会在这里标记任何语言。编辑:我也想了解执行此操作的技术和API。这样我就可以根据需要运行监控程序。 最佳答案 在Linux上我会使用sar-u1。如果%iowait列很高,那么应用程序可能正在等待IO 关于windows-如何确定进程是否处于死锁状态或正在等待I/O,我们在StackOverf