先推荐一款软件 objectDocker
    他是一款桌面图标管理工具 . 效果很玄..
    
 我比较感兴趣, 想用C#研究这样的一个程序来, 不需要他上面图标摆动的效果.. 
   但是有许多问题:
       
 你直接加进去后,图标就取到了(也就是说有图片) , ,他上面的图标是好象是通过注册表取到的.
 但是问题是 如何取的? 还有 直接把东西拽到它的上面去. 就保存上了. 
  也就是说 是用怎样的一种方式接受拖拽来的数据..
    这样一系列是怎么实现的...
   最好给源码实现...
        源码沾边者 15分. 回答问题沾边者3分..    源码正确者.或者大概的源码能把我带到思路上.50分 会额外加100分.  

解决方案 »

  1.   

    刚学Winform,感觉需要做的就是WinFrom的设计,其他的不多.时间要做的特多,特细.鼠标的进入,离开.等等.
      

  2.   

    同学。图标,是有一个叫做 shell32.dll的文件,里面有系统图标资源,还有取图标的函数入口……
    每个EXE和DLL文件都有资源区来保存它自己的图标文件的……你其实可以用,有如exescope之类的软件来理解一下,而快捷方式和系统文件夹或者之类的都是与shell32.dll相关的。C#来说,你去实现drag一族的事件来完成拖动,具体查MSDN。解析图标如我上说。别的,呵呵,再说。代码没有。只给想法。示例程序,MSDN上有的是,CSDN不是要示例的地方。
      

  3.   

    objectDocker 没用过,先看看效果再研究如何实现。
      

  4.   

    这是一段获取文件图标的类,lz参考参考,呵呵。
    Public Class GetItemBitmap
        Private Const SHGFI_ICON As Integer = 256
        Private Const SHGFI_SMALLICON As Integer = 1
        Private Const SHGFI_LARGEICON As Integer = 0    Private Structure SHFILEINFO
            Public hIcon As IntPtr
            Public iIcon As Integer
            Public dwAttributes As UInteger
            <Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=256)> _
            Public szDisplayName As String
            <Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=80)> _
            Public szTypeName As String
        End Structure    <Runtime.InteropServices.DllImport("Shell32.dll")> _
        Private Shared Function SHGetFileInfo(ByVal pszPath As String, ByVal dwFileAttributes As UInteger, ByRef psfi As SHFILEINFO, ByVal cbFileInfo As Integer, ByVal uFlags As UInteger) As IntPtr
        End Function    <System.Runtime.InteropServices.DllImport("user32.dll", CharSet:=Runtime.InteropServices.CharSet.Auto)> _
        Private Shared Function DestroyIcon(ByVal handle As IntPtr) As Boolean
        End Function    Public Shared Function GetIcon(ByVal filename As String) As Drawing.Bitmap
            Dim iconbitmap As Drawing.Bitmap
            Dim shinfo As New SHFILEINFO()
            Dim hImgSmall As IntPtr = SHGetFileInfo(filename, 0, shinfo, System.Runtime.InteropServices.Marshal.SizeOf(shinfo), SHGFI_ICON Or SHGFI_SMALLICON)
            Dim icon As Drawing.Icon = System.Drawing.Icon.FromHandle(shinfo.hIcon)
            iconbitmap = icon.ToBitmap()
            DestroyIcon(shinfo.hIcon)
            Return iconbitmap
        End Function
    End Class
      

  5.   

    应该是从WINDOWS的API走吧?给WINDOWS加壳?
      

  6.   

    up,objectDocker没有用过,先看看去