none
如何:获取某个程序正在占用哪些文件? RRS feed

  • 问题

  • 在win7以后,就可以很轻松的调出这个功能:

    想了解我说的功能,可以去看一下:打开任务管理器→“性能”标签→打开资源监视器→磁盘
    在这个窗口内,选中一个程序,就能查看这个程序所占用的文件。
    其实就和木马辅助查看器类似的功能,希望有人指点我一下,感激不尽!

    加一个图,资源监视器:


    Just 4 Love


    2013年11月7日 9:38

全部回复

  • 您是否是要C#程序启动资源管理器?如果是请参考:

    1)拖拽一个Process控件到WinForm上。

    2)书写代码:

     process1.StartInfo .FileName =@"C:\WINDOWS\system32\taskmgr.exe";
     process1.Start();

    3)参考:http://zhidao.baidu.com/link?url=VEN3rtQhKZ1AqEqHbAtoI0LgGFaBHRj86qXkhcyCXz6VdJtFSEDGN9c3cULRrSB_zz0aub72Ea1lj1bSeEOvz_


    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月8日 1:48
    版主
  • 不是啊,我是要获取信息,不是搞控件。

    Just 4 Love

    2013年11月8日 1:49
  • 获取哪些信息呢?可以具体描述一下吗?

    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月8日 2:20
    版主
  • 那我再说一下吧。

    我要获取指定的一个软件,当前正在占用了哪些文件,然后从这些文件里我可以进行一些操作,比如:

    我可以从一个播放器(未指定是什么播放器),获取到当前正在播放的歌曲的本地存储路径,然后,我觉得它挺好听,就把这个文件转移到另一个地方……

    当然功能不是仅仅这样的,还有很多,前提是,性能不可以太差,如果用监视文件肯定不行,就用系统的自带的这个功能就可以,主要是我不知道怎么用,他应该有api之类的,甚至可能有托管代码的封装(这样最好)


    Just 4 Love

    2013年11月8日 2:55
  • 你好:

    欢迎来到MSDN中文论坛!

    .net中提供了PerformanceCounter 类,用这个类可以查看进程的效能信息,比如cpu,内存的使用情况。但是不确定是否可以查看进程的磁盘活动信息。

    你可以尝试一下里面提供的这些方法和函数。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月8日 9:31
    版主
  • 嗯,我也觉得可能

    System.Diagnostics 命名空间

    这里有相关操作的类,但是粗略的翻了一下,真没找到看出有这个功能的,我实在是找不到才来问的。

    希望能有用过的人吧,也只能这样了,这几天我也继续翻一翻,不是很急,因为自己写的项目刚开始,觉得这个地方最有可能卡住了所以提前搞一下。


    Just 4 Love

    2013年11月12日 2:23
  • 我觉得有些功能貌似C#无能为力,或许要底层API(直接调用Windows底层的方法)方可完成。

    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月12日 5:33
    版主
  • 那我要如何操作,头都大了,他们轻轻松松就能做的功能,怎么到了咱们这儿各种解决不了,就感觉挺着急的,自己不会的东西果然太多了。

    如果要用系统api那就真麻烦了,我没法搞了,那有什么地方能去学习到么?
    毕竟这个功能是一定要做到的!


    Just 4 Love

    2013年11月12日 5:53
  • 有些其他语言实现起来很麻烦的功能通过.net中提供的命名空间确可以轻松实现。只是说你想实现的这个功能偏底层,不是C#或者VB.net的强项而已。

    调用系统api也并不是麻烦的事情,只要你能找到对应的能够实现你想要的功能的方法,直接通过DllImport来引入方法定义就可以调用了。这里给你一个全面的PInvoke方法的网站:PInvoke.net, 你可以查询到所有常用的方法。同时有一篇关于如何使用WinAPI的博文供你参考:如何使用C#操作WinAPI

    我也索搜了下,但是很不幸没有发现实现这个功能的WinAPI函数,如果你看见过别人实现过这个功能的话,你可以参考一下对方的代码,查一下底层调用了哪些方法。希望你有所收获吧。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月12日 9:47
    版主
  • 嗯,看来真的挺麻烦的了。

    我去看看吧谢谢你的答复,不知道能不能搞到……
    毕竟我技术有限,那只能先这样吧吧……


    Just 4 Love

    2013年11月16日 6:48
  • 楼主,如果你英语水平不错,你还可以去StackoverFlow(点击我签名档Other Discussions)然后点击“StackOverFlow”最大的那个去提问,或许那边有更好的回答。我个人以为这个是调用底层API,但是具体哪个不是十分清楚,谢谢!

    ASP.NET Questions
    Other Discussions
    FreeRice Donate
    Issues to report

    2013年11月16日 7:53
    版主
  • 没有这样的API。SysInternal 有个handles.exe,用的是非公开的接口。

    很多程序打开文件是短期行为,在读取之后不再有活动的文件句柄。要知道程序打开了哪些文件,需要正好在程序读取文件的时候去扫描,结果很不可靠。



    Visual C++ MVP

    2013年12月30日 16:25
    版主