现在有2个问题或者可以归类为一个问题需要解决。比如我当前再任务栏中打开了几个任务,当前活跃的是一个doc文档,如何能过获取到这个word文档的绝对地址呢。 C:\Documents and Settings\admin\桌面\1.doc?????还有就是,任务管理器的进程列表和应用程序的列表都是可以获取的,如何获取应用程序列表中任务的绝对地址或者文件夹的目录地址呢?C:\Documents and Settings\admin\桌面\1.docC:\Documents and Settings\admin\桌面\paper32889[1].pdfC:\Documents and Settings\admin\桌面C:\Program Files\Internet Explorer\IEXPLORE.EXE
翻了好几次msdn也没找到合适的方法,希望各位大侠帮帮忙了。

解决方案 »

  1.   


                Process[] ps = System.Diagnostics.Process.GetProcesses(); 
                foreach (Process p in ps) 
                { 
                    if (p.MainWindowHandle != null) 
                    { 
                        try 
                        { 
                            Console.WriteLine(p.MainModule.FileName);//是可以打出路径来的 
                        } 
                        catch (Exception ex) 
                        { 
                        } 
                    } 
                } 
      

  2.   

    2楼的方法我之前尝试过,貌似打印出来是每个应用程序的标题比如:1.doc mircosoft word之类的,而并非是我想要得到的这个应用程序,或者说这个文件的绝对路径:C:\Documents and Settings\admin\桌面\1.doc 学有余力的高手们帮帮忙那,现在被这个问题给卡死了。
      

  3.   

    Process.MainModule.FileName
    也就是这个了,筛选的话,自己做么,程序都是.EXE,其他的.doc,.pdf等等!
      

  4.   


    并不是每个应用程序的标题,而是每个应用程序的完整路径+名称,对于同一名字的多个进程而言,只能打印一次,所以没有得同一应用程序多个实例的主窗体标题;可以用这样一个方法:调用系统的API,枚举所有的窗口标题;
      

  5.   


    Process[] ps = System.Diagnostics.Process.GetProcesses(); 
                foreach (Process p in ps) 
                { 
                    if (p.MainWindowHandle != null) 
                    { 
                        try 
                        { 
                            Console.WriteLine(p.MainModule.FileName);//打出路径来 
                        } 
                        catch (Exception ex) 
                        { 
                        } 
                    } 
                } 
    ****************************************************************************************** 
    C:\WINDOWS\system32\mdm.exe 
    F:\Mine\源码\你好\你好\explorer.exe 
    C:\Program Files\MSN Messenger\msnmsgr.exe 
    C:\WINDOWS\system32\lsass.exe 
    C:\WINDOWS\system32\wuauclt.exe 
    C:\WINDOWS\system32\conime.exe 
    C:\WINDOWS\System32\svchost.exe 
    C:\Documents and Settings\windflower\桌面\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe 
    C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 6.0\avp.exe 
    C:\WINDOWS\system32\services.exe 
    C:\WINDOWS\system32\nutsrv4.exe 
    C:\Program Files\360safe\safemon\360tray.exe 
    E:\Program Files\FairyQQ\QQ.exe 
    C:\Program Files\ZTE IM\IM.exe 
    C:\WINDOWS\system32\svchost.exe 
    C:\WINDOWS\system32\taskmgr.exe 
    C:\WINDOWS\SOUNDMAN.EXE 
    E:\vs6\Common\MSDev98\Bin\MSDEV.EXE 
    C:\Program Files\Kingsoft\Powerword 2007\xdict.exe 
    C:\Program Files\Internet Explorer\iexplore.exe 
    C:\Program Files\lotus\notes\NLNOTES.EXE 
    C:\Program Files\Microsoft SQL Server\90\Shared\sqlwriter.exe 
    C:\Program Files\lotus\notes\ntaskldr.EXE 
    C:\WINDOWS\system32\notepad.exe
    打印出来的只是进程的地址,而不是文件的地址。或者,退而求其次,能打印出当前打开的word的地址就可以了。