winform如何实现在一个form里单击某一图标就调用桌面图标的功能,然后就打开了一个程序?我的思路是遍历桌面的.exe后缀的图标名称和路径,然后通过点击来调用外部的EXE,这样就有一个问题,那么图标呢?我应该怎样为它们添加和桌面一样的图标呢?或者有没点其它好的办法和思路呢?请各路大虾多多指教。

解决方案 »

  1.   

    System.Diagnostics.Process p = System.Diagnostics.Process.Start(@"C:\Windows\System32\calc.exe");
    p.WaitForInputIdle();这里的例子是打开系统计算器的.exe程序 其他的你自己应该知道了 
    不过要考虑下 其他电脑是不是也有你要调用的程序  
    这里我调用的计算器的path每台电脑都一样
      

  2.   

    嗯,调用一个外部的exe我明白。问题在于我不知道桌面图标要如何去遍历出来,而且有些图标并不是EXE后缀的,我是用以下代码做遍历的,有没什么更好的办法来获取所有桌面图标的路径?   
            string[] diskTopName = Directory.GetFiles(@"C:\Documents and Settings\Administrator\桌面", "*" + ".exe",
                                  SearchOption.AllDirectories);
      

  3.   

    Dim Spath As String = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
                Dim S() As String = IO.Directory.GetFiles(Spath)
      

  4.   

    先看下面链接.引用Com组件中的此dll. 
    http://blog.sina.com.cn/s/blog_53e44ee70100p0l8.htmlcode:using IWshRuntimeLibrary;
    string[] diskTopName = Directory.GetFiles(@"C:\Documents and Settings\Administrator\桌面", "*.lnk", SearchOption.AllDirectories);
                    WshShell shell = new WshShell();                foreach (string a in diskTopName)
                    {
                        IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(a);
                        string path = shortcut.TargetPath;//目标路径
                        
                    }
      

  5.   

    http://hi.baidu.com/chenggong678/blog/item/52cea1db7c29e26ed0164e87.html
    给你个链接参考下..