随笔分类 - 软件开发:.NET
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~) 有关 PIDL PIDL亦有“绝对路径”与“相对路径”的概念。表示“相对路径”的PIDL(本文简称为“相对PIDL”)只有一个ITEMIDLIST结构的元素,用于标识相对于父文件夹的“路径”;表示“绝对路径”的PIDL(简称为“绝对PIDL”)有若干个ITEMIDLIST结构的元素,第一个元素表示外壳名字空间根文件夹(“桌面”)下的某一子文件夹A,第二个元素则表示文件夹A下的某一子文件夹B,其余依此类推。这样绝对PIDL就通过保存一条从“桌面”下的直接子文件夹或文件的绝对PIDL与相对PIDL是相同的,而其他的文件夹或文件的相
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~) 上一节说到如何弹出 IShellFolder 的上下文菜单,也就是 IContextMenu。有时候我们需要在这个菜单上面,加入一些属于自己的菜单项。举个例子,你打开资源管理器,查看左边目录树的右键菜单,会发现顶层多了一个折叠/展开的菜单项。好,我们也动手来加入这个菜单项。 修改例子3,我们找到 QueryContextMenu 处,这时候提供了一个菜单句柄://提供一个弹出式菜单的句柄 IntPtr contextMenu = API.CreatePopupMenu(); iContextMenu.QueryContextM
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~) 这里解释上一节中获取名称的方法 GetDisplayNameOf 定义:void GetDisplayNameOf( IntPtr pidl, SHGNO uFlags, IntPtr lpName);该方法是用来转换PIDL成为可显示的名称字符串。PIDL必须是相对于对象的父目录的。换句话说,它必须包含一个非空的SHITEMID 结构。因为有多种命名对象的方式,资源管理器通过在uFlags参数中定义SHGNO标识的组合来表示名称类型。SHGDN_NORMAL或SHGDN_INFOLDER将被用来指定名称是相对于文件夹的
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~) 让我们详细解释一下 Shell 编程中最基本的一些函数、结构体和枚举。 SHGetDesktopFolder 获取桌面的 IShellFolder 接口[DllImport("shell32.dll")] public static extern Int32 SHGetDesktopFolder(out IntPtr ppshf);要使用这个函数,必须先定义一个 IntPtr 指针。然后通过指针,使用 GetObjectForIUnknown 返回通过指向 COM 对象的 IShellFolder 接口的指针实例。于是需要编
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~)从本节起,我所要讲述的是对 Windows 系统的“Shell 扩展”。“Shell 扩展”从字面上分两个部分:Shell 与 Extension。Shell 指 Windows Explorer,而Extension 则指由你编写的当某一预先约定好的事件(如在以. doc 为后缀的文件图标上单击右键)发生时由 Explorer 调用执行的代码。因此一个“Shell 扩展”就是一个为 Explorer 添加功能的 COM 对象。 “Shell 扩展”有很多种类型,每种类型都在各自不同的事件发生时被调用运行,但也有一些扩展的类型和
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~)关于注册动态库必须注册才能使用。除了使用 regasm 来注册 DLL 以外,还应该在代码中增加 RegisterServer 和 UnregisterServer 方法,以指导 DLL 注册时,在 Windows 注册表中增加什么键。关于具体键以下做简单说明:1) 注册 DLL 的 Shell Extensions。具体位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved,增加以 GUID 为名称的键
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~)QueryInfo扩展 活动桌面引入一项新特性,当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述。我们可以使用 QueryInfo 扩展为Shell中的其它对象提供自定义的工具提示。如下图: 事实上,这个功能实现比前两个 Shell 扩展更简单,它仅仅是实现 IQueryInfo 接口:IQueryInfo 接口定义 [ComImport(), ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), GuidAttribute("00
阅读全文
摘要:(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢~) Windows Shell 编程,即 Windows 外壳编程。我们所看到的资源管理器以及整个桌面,都是一个 Shell。 关于 Windows 外壳的基本概念,我这里不做详细介绍,不了解的朋友,可以看看 姜伟华 的 Windows外壳名字空间的浏览。 好,现在让我们从基础学起,早日做出一个强大的资源管理器软件。(偶也是初学者,多多指教)1 - 基础,浏览一个文件夹我们知道,在win32中是以外壳名字空间的形式来组织文件系统的,在外壳名字空间里的每一个对象(注)都实现了一个IShellFolder的接口,通过这个接口我们可以直
阅读全文
摘要:DateTime dt = DateTime.Now;// Label1.Text = dt.ToString();//2005-11-5 13:21:25// Label2.Text = dt.ToFileTime().ToString();//127756416859912816// Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816// Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25// Label5.Text = dt.ToLong
阅读全文
摘要:介绍IIS PowerShell 名空间包括诸如: Web-Sites, Apps, Virtual Directories 和 Application Pools.使用内置的PowerShell cmdlets可以很容易创建一个名空间项和管理该项. 创建Web站点 如果您熟悉PowerShell 的话,就会知道在各种PowerShell 名空间下New-Item cmdlet 通常被用于创建新项。 举个例子,当前命令 "New-Item c:\TestDirectory"会创建一个新的文件夹 (尽管多数人使用New-Item的别名命令"MD" 或 "MKDIR"). 在IIS 7.0 Pow
阅读全文
摘要:为了写本文,又搭工又搭料,累的2天2宿没睡觉,这篇文章实在是耗费我太多的心血,版权永远属于CSDN社区的清清月儿,请不要试图修改本文,破坏全文的完整性,希望您尊重我的劳动成果!快速预览:GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合鼠标移到GridView某一行时改变该行的背景色方法一鼠标移到GridView某一行时改变该行的背景色方法二GridView实现删除时弹出确认对话框GridView实现自动编号GridView实现自定义时间货币等字符串格式Gr
阅读全文
摘要:Visual Studio 2010正式版己于4月13日开放公众下载。我迫不及待地在自己的电脑上安装并试用,与RC版本相比,新版变化不大,安装也顺利。但没想到,为了将我原先在RC版本中下载的高达3.25G的MSDN文档在正式版中“复用”,却弄得我焦头烂额! 微软在VS2010中将随机文档MSDN Library换成了Web版,想必有他的考虑,但就我这一普通用户看来,实在是一个退步。 其原因是——Web版的MSDN Library 太难用了! (1)最大的缺点是没有索引。 (2)左侧的目录树各级别缩进太小,很难分清当前所看的文档在目录树的级别, (3)搜索功能给出的信息太少,当你搜索一个同时
阅读全文
摘要:老纪不鼓励也不赞同使用破解的软件,尤其是共享软件,因为自己是程序员可能将来自己也会开发出能够让广大用户使用的好的共享软件(但我宁愿做免费的软件),但是对于像visual studio和photoshop这种恐龙级的软件而且是我们每天必用的贵的买不起的软件,能有破解的使用也是一种权宜的happy的事4月12日, visual studio 2010发布,相应的微软官方也提供了下载,正好看相关文章时看到一个注册码,也就是Product Key,很好使(微软的东西好破解,这可能是他们的商业用意),这样我们这帮没钱的主就可以用号称微软最完美的开发软件了。破解方式:Product Key为YCFHQ9D
阅读全文
摘要:先要下载两个文件:FCKEditor(JS文件),FCKEdito.net(COM+组件 DLL文件)官方网站:http://sourceforge.netFCKEdiotr的安装与配置:把FCKEdiotr文件包直接解压到项目的根目录中,这样根目录下就得到了一个FCKEditor文件夹,里面富含所有FCKeditor的核心文件.然后把FCKEditor.Net文件夹内的DLL文件添加到VS工具箱内,这样项目的根目录下就多出一个Bin文件夹,里面就会有所添加的FredCK.FCKeditorV2.dll文件.这样,安装就完毕了,下面还要配置一些属性才可以让该控件正常使用:FCKeditor在A
阅读全文
摘要:这是在做客服呼叫中心的项目时用到的,是C/S的windows系统,其中有个模块要实现象QQ那样的热键呼出,所以总结了一下这方面的代码。//API辅助操作类using System;using System.Windows.Forms; // for Key namespaceusing System.Runtime.InteropServices;namespace hotkeytest{/// ...
阅读全文
摘要:用axWebBrowser加载HTML网页时,真正显示内容的窗体并不是axWebBrowser,而是其子窗口的子窗口一个名为Internet Explorer_Server的类。从spy++可知: 公司需要在网页上进行手写,需要对Internet Explorer_Server进行操作,而通过axWebBrowser的Handle不能直接操作Internet Explorer_Server。于是在网上搜到Paul DiLascia写的一个CFindWnd类,是用C++写的,由于我用C#进行了改写。这个类主要用的的API 是EnumChildWindows和FindWindowEx,第一个遍历指
阅读全文
摘要:关于调试windows service, 其实这是一个老生常谈的问题了. 通常的处理办法是, 在service运行后, 在调试器中选择attach to process. 然而这种做法也有一定的局限性, 例如在service启动时的OnStart事件中的代码, 基本上很难调试. 往往当attach到我们的service的时候, 这部分代码已经执行过了. 于是, 有人提出, 可以另写一个proje...
阅读全文
摘要:不能更改组件或其子组件的位置,因为该组件已经存储在其他位置或者该组件依赖的某个文件已经存储在其他位置。以下程序将导致发生垂直集成:Microsoft Visual Studio Tools for Applications 2.0 - ENU Microsoft Visual Studio Tools for Applications 2.0 Language Pack - CHS Microsoft Visual Studio 2008 Shell (integrated mode) - CHS 若要更改文件路径,必须卸载上面列出的程序,然后将它们重新安装到希望在其中存储与 Visual S
阅读全文
摘要:using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.IO;namespace PhotoExport{ class Program { static void Main(string[] args) { B...
阅读全文
posted @ 2010-02-06 01:41
Max Woods
摘要:最近在处理一批下载的评书mp3文件时,需要把它们的一些属性做修改为有规律的样式,以便自己播放时知道是播放的那首。要修改的属性如下:修改的方法我是使用的http://www.cnblogs.com/TianFang/archive/2009/09/27/1574722.html 介绍的 使用 WindowsAPICodePack 的方法来修改。但是上述地址给出的函数有个小bug,且具体如何用代码实现...
阅读全文
浙公网安备 33010602011771号