原文 (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标? QueryInfo扩展 活动桌面引入一项新特性,当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述.我们可以使用 QueryInfo 扩展为Shell中的其它对象提供自定义的工具提示.如下图: 事实上,这个功能实现比前两个 Shell 扩展更简单,…
原文 (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标? (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单 关于注册 动态库必须注册才能使用.除了使用 regasm 来注册 DLL 以外,还应该在代码中增加 RegisterServer 和 UnregisterServer 方法,以指导 DLL 注册时,在 Windows 注册表中增加什么键.关于…
原文 (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列6 - 执行 从本节起,我所要讲述的是对 Windows 系统的“Shell 扩展”.“Shell 扩展”从字面上分两个部分:Shell 与 Extension.Shell 指 Windows Explorer,而Extension 则指由你编写的当某一预先约定好的事件…
原文(C#)Windows Shell 外壳编程系列6 - 执行 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列5 - 获取图标 执行 许多人都知道 ShellExecute ,用于执行一个外部命令.但对于  IShellFoloder 对象来说,它的执行命令,都在它的 ContextMenu 里面了.记得前几节说过如何直接调用 ContextMenu 里的项,因此,执行一个 IShellFoloder,也无非是调用…
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 有关 PIDL  PIDL亦有“绝对路径”与“相对路径”的概念.表示“相对路径”的PIDL(本文简称为“相对PIDL”)只有一个ITEMIDLIST结构的元素,用于标识相对于父文件夹的“路径”:表示“绝对路径”的PIDL(简称为“绝对PIDL”)有若干个ITEMIDLIST结构的元素,第一个元素表示外…
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 上一节说到如何弹出 IShellFolder 的上下文菜单,也就是 IContextMenu.有时候我们需要在这个菜单上面,加入一些属于自己的菜单项.举个例子,你打开资源管理器,查看左边目录树的右键菜单,会发现顶层多了一个折叠/展开的菜单项.好,我们也动手来加入这个菜单项. 修改例子3,我们找到 QueryCo…
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹 让我们详细解释一下 Shell 编程中最基本的一些函数.结构体和枚举. SHGetDesktopFolder 获取桌面的 IShellFolder 接口 [DllImport("shell32.dll")]        public static extern Int32 SHGetDesktopFolder(out IntPtr…
(本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开 这里解释上一节中获取名称的方法 GetDisplayNameOf 定义: void GetDisplayNameOf(            IntPtr pidl,            SHGNO uFlags,            IntPtr lpName); 该方法是用来转换PIDL成为可显示的名称字符串.PIDL必须是相对于…
1 - 基础,浏览一个文件夹 我们知道,在win32中是以外壳名字空间的形式来组织文件系统的,在外壳名字空间里的每一个对象(注)都实现了一个IShellFolder的接口,通过这个接口我们可以直接查询或间接得到其他相关的接口.(注:这里的对象指的是外壳名字空间中的一个节点,对象有可能是一个文件夹,有可能是一个文件,也有可能是一个虚拟文件夹,例如:我的电脑,网上邻居,控制面板等) 在C#中,我们这样定义 IShellFolder 接口: using System;using System.Coll…
前言 学习shell脚本编程需要的知识储备: vi/vim编辑器命令 vimrc设置要熟练 基础命令,100多个要熟练 基础和常用的网络服务命令要会:nfs . rsync. inotify . lanmp . sersync  .ssh  key 一.shell脚本概念及示例 1.什么是shell Shell是一个命令解释器,它在操作吸引的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户.这种对话方式可以是交互的方式(从键盘输入命…
1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自动加上以上信息,方法是修改~/.vimrc配置文件 3.脚本中不用中文注释 尽量用英文注释,防止本机或切换系统环境后出现中文乱码的困扰 4.尽量以.sh为扩展名 Script-name.sh 5.代码书写优秀习惯 1)成对的内容一次性写出来,防止遗漏:{}   []   ‘’   “” 2)[]中括…
同步设备IO与异步设备IO之异步IO介绍 设备IO与cpu速度甚至是内存访问相比较都是比较慢的,而且更不可预测.虽然如此,通过使用异步设备IO我们仍然能够创造出更高效的程序. 同步IO时,发出IO请求的线程会被挂起.而异步IO时发出请求的线程不会被挂起,而是可以继续执行.异步IO请求传给了设备驱动程序,被加入到驱动程序的请求队列中,驱动程序负责实际的IO操作.当设备驱动程序完成了对队列中IO请求的处理,无论成功与否都必须通知应用程序. 异步IO非常关键的一点就是将IO请求加入驱动程序队列,这是设…
Windows Shell名字空间介绍: http://blog.csdn.net/kingcom_xu/article/details/18943 Windows Shell 外壳编程基础教程(C#): http://www.cnblogs.com/lemony/archive/2007/04/16/715833.html http://blog.csdn.net/chchzh/article/details/2211475…
第二章Shell的结构  “Shell 编程”的大伞之下有大量的API函数和COM接口.这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程.函数和接口并不是两种提供相同功能的等价途径,相反,它们在不同的逻辑层上提供不同的功能.          API函数包含了用户想要在Shell对象上执行的基本操作,如文件和文件夹.COM接口则给出了扩展增强,甚至客户化各种要素对象的机会,包括Shell本身标准行为.用面向任务的方法对函数和对象进行分组将给我们一个总体上观察Shel…
参考书<VC++ Windows Shell Programming>   这里仅仅是记录下该资源,推荐到下文列出的连接进行查看   用VC++ 进行Windows Shell 扩展编成               由ccc编译   序言:        看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对windows shell的扩展编程不很了解,也…
原文 C#)Windows Shell 编程系列5 - 获取图标 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 有关 PIDL PIDL亦有“绝对路径”与“相对路径”的概念.表示“相对路径”的PIDL(本文简称为“相对PIDL”)只有一个ITEMIDLIST结构的元素,用于标识相对于父文件夹的“路径”:表示“绝对路径”的PIDL(简称为“绝对PIDL…
原文 (C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 接上一节:(C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开这里解释上一节中获取名称的方法 GetDisplayNameOf 定义: void GetDisplayNameOf(             IntPtr pidl,             SHGNO uFlags,             IntPtr lpName); 该方法是用来转换PIDL…
原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows 外壳编程.我们所看到的资源管理器以及整个桌面,都是一个 Shell. 关于 Windows 外壳的基本概念,我这里不做详细介绍,不了解的朋友,可以看看 姜伟华 的 Windows外壳名字空间的浏览. 好,现在让我们从基础学起,早日做出一个强大的资源管理器软件.(偶也是初学者,多多指教) 1 - 基…
原文(C#)Windows Shell 编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单 上 一节说到如何弹出 IShellFolder 的上下文菜单,也就是 IContextMenu.有时候我们需要在这个菜单上面,加入一些属于自己的菜单项.举个例子,你打开资源管理器,查看左边目录树的…
原文 (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 让我们详细解释一下 Shell 编程中最基本的一些函数.结构体和枚举. SHGetDesktopFolder  获取桌面的 IShellFolder 接口 [DllImport("shell32.dll")]         public static …
第四章 文件的本质 以前,所有文件和目录都有一个确定的属性集:时间,日期,尺寸,以及表示‘只读的’,‘隐藏的,‘存档的’,或‘系统的’状态标志.然而,Windos95(及后来的WindowsNT4.0)出现使这些概念产生了改变,其中最重要的‘文件’变得更加广泛.现在,文件可以是任何Shell部件对象—不一定必须是文件系统的部件. 文件的精确定义是,任何作为Shell命名空间部件的对象称之为文件对象.注意,在定义中所说的‘命名空间’,它不是C++的关键字.‘Shell 命名空间’所指的是实际组成S…
shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h 服务器ip地址 -d 等价于--no-data 只导出表结构 -t 等价于--no-create-info 只导出数据,不导出建表语句 -A 等价于--all-databases -B 等价于--databases 导出一个或多个数据库 需求:将school中的score表备份,并且将备份数据通过f…
shell编程系列10--文本处理三剑客之sed利用sed查询特定内容 利用sed查找文件内容: pattern种类: .8p .,10p .,+5p ./regexp/p .,/regexp/p ./regexp/,8p .打印/etc/passwd中第10行的内容 sed -n '10p' /etc/passwd .打印/etc/passwd中第8行开始,到第15行结束的内容 sed -n '8,15p' /etc/passwd .打印/etc/passwd中从第8行开始,然后+5行结束的内…
第三章 操作文件 我依然清楚地记得,Windows95 的贝塔版出现的情形,它在朋友之间和学院中传播,好酷,全新的文件管理器,一种全图标,全彩色可客户化的界面,以及活泼的动画标识使得在文件拷贝和删除方面的操作更容易和直观. 作为真正的软件狂人,我们能为一个比萨饼的奖金开始竞赛,一直以求成为第一个能够编程再造如此行为的人—即,怎样以动画方式拷贝文件.花了几个小时的时间才在一大堆新函数中找出了SHFileOperation()函数,这是一个响应动画拷贝的API函数,它也是探测器执行所有文件操作的函数…
Windows Shell Extension 系列文章 http://www.codeproject.com/Articles/512956/NET-Shell-Extensions-Shell-Context-Menus…
第九章 图标与Windows任务条 如果问一个非程序人员Windows最好的特色是什么,得到的答案应该是系统最有吸引力的图标.无论是Windows98现在支持的通用串行总线(USB)还是WDM(看上去有点像一个软件协会而不象普通的设备驱动体系结构的缩写),图标在人们的心目中仍然是亲切的.你必须承认,微软总是从它的图形族群中获得最大的利益. 要了解使用图标表述菜单命令背后的的简单(或不简单)概念,你需要的不是绘制激情也不是艺术欣赏,而是应该清楚,仅使用32X32像素和16种颜色的图块做这样的表述是…
windows应用程序是基于消息驱动的.各种应用程序对各种消息作出响应从而实现各种功能. windows钩子是windows消息处理机制的一个监视点,通过安装钩子能够达到监视指定窗体某种类型的消息的功能.所谓的指定窗体并不局限于当前进程的窗体,也能够是其它进程的窗体.当监视的某一消息到达指定的窗体时,在指定的窗体处理消息之前,钩子函数将截获此消息,钩子函数既能够加工处理该消息,也能够不作不论什么处理继续传递该消息.使用钩子是实现dll注入的方法之中的一个.其它经常使用的方法有:注冊表注入,远程线…
有关COM编程资料 转载:http://www.cnblogs.com/lzjsky/archive/2010/11/22/1884702.html 活动桌面引入一项新特性, 当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述 例如对TXT格式文件: 系统默认的:                                                            扩展之后的:                                 第一步:新建一个ATL项目,输入…
windows内的各个进程有各自的地址空间.它们相互独立互不干扰保证了系统的安全性.但是windows也为调试器或是其他工具设计了一些函数,这些函数可以让一个进程对另一个进程进行操作.虽然他们是为调试器设计的,但是任何应用程序都可以调用它们 .接下来我们来谈谈使用远程线程来注入DLL. 从根本上说,DLL注入就是将某一DLL注入到某一进程的地址空间.该进程中的一个线程调用LoadLibrary来载入想要注入的DLL.由于我们不能直接控制其他进程内的线程,因此我们必须在其他进程内创建一个我们自己的…
shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_process 返回进程名列表字符串"nginx httpd mysql datanode" .function get_process_info 返回进程详细信息列表字符串,详细信息包括:运行状态.PID.CPU.MEM.启动时间 注:该函数可以接收一个参数,参数为进程名称 .funct…