弱弱的问一下:单击右键菜单菜单项如何关联到事件处理过程

lkhoji 2010-08-08 02:57:42
问题如题:单击右键菜单菜单项如何关联到事件处理过程。例如下面代码的菜单,单击右键菜单的“升序”菜单项的时候,如何关联到过程“升序排序”

Private Sub 初始化右键菜单()

ContextMenuStrip1.Items.Add("复制")
ContextMenuStrip1.Items.Add("粘贴")
ContextMenuStrip1.Items.Add("-")
ContextMenuStrip1.Items.Add("升序")
ContextMenuStrip1.Items.Add("降序")
ContextMenuStrip1.Items.Add("-")
ContextMenuStrip1.Items.Add("查找")

DataGridView1.ContextMenuStrip = ContextMenuStrip1

End Sub

Private Sub 升序排序()
'代码略
End Sub
...全文
173 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkhoji 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 asdfy 的回复:]
Dim newMenu As New ToolStripMenuItem
newMenu.Text = "升序"
ContextMenuStrip1.Items.Add(newMenu)
AddHandler newMenu.Click, AddressOf 升序排序

Private Sub 升序排序(ByVal sender As System.Object, ByVal e As ……
[/Quote]
研究了四五个小时了,没有肯定的结论,是不是右键菜单都得有事件来处理啊?
古今多少事 2010-08-08
  • 打赏
  • 举报
回复
Dim newMenu As New ToolStripMenuItem
newMenu.Text = "升序"
ContextMenuStrip1.Items.Add(newMenu)
AddHandler newMenu.Click, AddressOf 升序排序

Private Sub 升序排序(ByVal sender As System.Object, ByVal e As System.EventArgs)
'代码略
End Sub
lkhoji 2010-08-08
  • 打赏
  • 举报
回复
这样也不知道右键菜单的那个选项被点击了啊。

关键就是我不知道右键菜单的那个选项被点击了,怎么获取被点击的项呢?
wuyq11 2010-08-08
  • 打赏
  • 举报
回复


private void dataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{
dataGridView.ClearSelection();
dataGridView.Rows[e.RowIndex].Selected = true;
dataGridView.CurrentCell = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex];
contextMenuStrip.Show(MousePosition.X, MousePosition.Y);
}
}
}

动运行概述操作系统具有一项称为自动运行的特性。当插入一张带有自动运行菜单程序的光盘到光盘驱动器中,系统会自动加载并启动自动运行菜单。使用这项特性,可以为光盘创建一个良好的用户操作界面。例如,通过自动运行菜单,可以运行安装程序(或其它程序)、打开使用文档、运行演示程序、浏览文件夹以及执行多种其它操作。   创建自动运行的光盘如果光盘的根目录下有一个命名为 autorun.inf 的文件,操作系统就会自动加载该文件中指定的程序,并作为自动运行菜单将其启动。通常,autorun.inf 文件包括以下几行内容。   字段就是光盘自动运行菜单的程序文件名,icon 字段是光盘显示于资源管理器中的图标,可以是一个图标文件,也可以是可执行文件中的一个图标资源。如果要创建一张可自动运行的光盘,就必须编写一个作为自动运行菜单的程序,并编辑 autorun.inf 文件。   软件功能使用 AutoPlay Menu Builder,可以方便快捷地创建自动运行菜单。无需任何编程知识,只要通过点击和拖放鼠标,使用内置的控件“画”出菜单界面,并设置好控件属性,程序会帮您完成其它工作。程序会自动创建 autorun.exe、autorun.ico、autorun.inf 以及 autorun.apm 文件,其中 autorun.apm 文件是自动运行菜单的数据文件。如果选定了创建可独立运行的执行文件选项,菜单数据会附加在 autorun.exe 文件中,意外着您不需要刻录 autorun.apm 文件到光盘中。如果需要在菜单运行前安装一些字体,程序还将创建一个名为 FontData 的目录来存放字体文件。请自行尝试一下,您会发现本软件的功能还有许多。   工作选项点击菜单查看->选项,可以设置程序的工作选项。   显示网格在设计窗口上绘制点阵以形成网格对齐控件到网格自动对齐控件到临近的网格同时编辑所有选定控件的属性当选定多个控件时,使用属性编辑器修改所有控件的属性,或者仅修改第一个控件的属性网格大小设置网格点阵中两点之间的距离测试时最小化其它窗口测试菜单时,最小化主窗口、控件栏、属性编辑器、对齐面板、布局预览以及素材库窗口。   创建压缩的数据文件以压缩方式存储数据文件,可以减小文件大小,但需要花费更多的时间加载和保存项目。   创建可独立运行的执行文件保存项目时附加菜单数据即 autorun.apm 文件的内容到 autorun.exe 文件中。激活此选项,则不需要刻录 autorun.apm 文件到光盘上,但仍需要使用 autorun.apm 文件编辑和修改菜单。   项目管理新建项目点击菜单文件->新建或工具栏按钮新建,将会弹出下面的对话框。   键入用于存储新项目的路径,选择新项目需要继承的模板,点击确定按钮即可在指定路径中创建一个新项目。关于模板的更多信息,请查阅使用模板。   打开项目点击菜单文件->打开或工具栏按钮打开,选择已经存在的项目文件,则可以加载选定的菜单目到编辑器中。点击菜单文件->重新打开或工具栏按钮打开的下拉列表,可以显示最近打开过的项目列表,并打开其中的一个项目。   保存项目点击菜单文件->保存或工具栏按钮保存,可以保存对当前项目所做的修改。   测试项目点击菜单文件->测试或工具栏按钮测试,可以切换设计和测试状态,方便快捷地测试您的工作成果,不需编译。点击菜单文件->外部测试,可以启动项目输出的可执行文件 autorun.exe 进行测试。   保护项目点击菜单文件->口令保护,输入保护口令,则可以要求在打开项目进行编辑时输入编辑口令。这个功能可以防止您的菜单目被别人修改。如果需要禁用口令,在设置口令对话框中输入空口令即可。   虚拟驱动器专家虚拟驱动器专家是一个小巧实用的工具。它可以创建映射到目录的虚拟磁盘,就像 DOS 命令 SUBST 一样。比 SUBST 更加强大的是,虚拟驱动器专家拥有一个友好而易于使用的图形用户界面,并且,它能够在系统重新启动时自动恢复所有虚拟驱动器。使用它,您可以创建一个虚拟磁盘,用来组织需要刻录到光盘上的数据,并基于此虚拟磁盘创建自动运行菜单目。可以通过菜单工具->虚拟驱动器专家启动该工具。   独立执行文件转换如果在选项对话框中激活了创建可独立运行的执行文件选项,就可以把菜单数据嵌入到 autorun.exe 文件中,从而使它脱离菜单数据文件 autorun.apm 运行。   如果您已经丢失了项目的原始数据文件 autorun.apm,但尚留存独立执行文件 autorun.exe,此时您可以通过本转换工具将独立执行文件转换为原始项目数据文件。转换后,您就可以打开该数据文件进行编辑。   可以通过菜单工具->独立执行文件转换启动该转换工具。   刻录光盘完成自动运行菜单的制作后,就可以将它刻录到光盘上。将以下文件和目录放到光盘的根目录下。   :菜单程序文件:光盘图标:自动运行配置文件:菜单数据文件,如果在选项对话框中激活了创建可独立运行的执行文件选项,则不需要:特殊字体目录使用模板从模板新建项目点击菜单文件->新建或工具栏按钮新建,将会弹出下面的对话框。   键入用于存储新项目的路径,选择新项目需要继承的模板,点击确定按钮即可在指定路径中创建一个新项目。   安装模板点击模板->安装菜单,选择模板包文件,即可从 .zip 压缩文件中安装模板。   分发模板点击模板->打包菜单,可以将选定的模板打包为 .zip 文件,用于存档或分发给其它用户。   删除模板选定需要删除的模板,按下 DELETE 键,或点击菜单模板->删除,可以删除选定的模板。例外:由于空白菜单是一个虚拟的菜单,所以不能被删除。   创建模板点击主窗口中的菜单文件->另存为模板,将会弹出下面的对话框,帮助您将当前正在编辑的项目保存为新的模板。您需要键入新模板的名称、作者及说明,程序会根据当前视图自动创建预览图像。模板创建完成之后,就能在新建对话框的模板列表中找到新的模板。   项目属性点击菜单编辑->项目属性或工具栏按钮项目属性,可以编辑项目的相关属性。   常规图标自定义菜单程序的图标,也即光盘显示于资源浏览器中的图标。   光标、热点光标与文本光标自定义菜单程序的光标样式,其中,热点光标是动作控件的光标样式,而文本光标为文本框控件中的光标样式。   起始页面菜单启动时显示的页面。   第一页一直可见一直显示第一页上的内容,无论当前页面是哪一页。   背景音乐选择菜单的背景音乐,支持 MP3/MP2/MP1/OGG/WAV/MID/RMI/XM/IT/MOD/S3M/MTM 等十数种音乐格式。背景音乐将嵌入到数据文件 autorun.apm 中。   循环控制:循环播放背景音乐或只播放一次。   自动播放:菜单启动时自动播放背景音乐。   自动控制:当菜单窗口激活时自动播放背景音乐,而当菜单窗口移到后台时自动停止背景音乐。   按下[ESC]键时退出当用户按下[ESC]键时退出菜单程序。   不在任务栏显示在任务栏中隐藏菜单程序。   使用系统信息框弹出信息时,使用系统默认的信息框,而不使用程序提供的 Office 风格的信息框。   窗口菜单中隐藏“关于”项隐藏菜单窗口系统菜单中的关于菜单。   工具提示当移动鼠标到动作控件上方时,可以弹出一条工具提示,并且可以使用漂亮的自定义风格替换系统默认的工具提示风格。   使用自定义工具提示使用自定义风格的工具提示,不选定则使用系统默认的工具提示风格。   方位工具提示相对于鼠标位置的访。如果指定方位没有足够的屏幕空间用来显示工具提示,会自动调整到其它方位。   背景工具提示的背景风格。   颜色工具提示使用的各种颜色。   外观字体及阴影设置。   测试用来测试自定义风格工具提示的按钮。   延迟指定工具提示的延迟时间,包括从鼠标移入控件到显示工具提示的延迟时间,以及在鼠标不移出控件的情况下,从显示工具提示到工具提示消失的延迟时间。   启动窗口和结束窗口启动窗口是启动自动运行菜单时显示的窗口,而结束窗口则是退出菜单时显示的窗口。可以在启动窗口和结束窗口中使用不规则外观以及淡入淡出特效。测试按钮可以测试启动窗口和结束窗口的实际效果。如果选定了不规则外观,并且载入一幅动态 GIF 图像,启动窗口和结束窗口将表现为极酷的动画窗口。   注意:JPEG 图像不能用来创建不规则外观的窗口,因为 JPEG 是有损压缩格式,没有绝对单一的背景颜色。   另外,未注册版本制作的菜单会显示一个固定的启动窗口,不能修改。   启动需要管理员权限在用户没有管理员权限时,弹出一段信息并退出自动运行菜单。   启动时运行程序或打开文档在启动菜单前,可以运行一个程序、打开一个文档甚至访一个网页。如果选定了运行程序或打开文档后退出选项,菜单会在启动其它程序或文档后立即退出,仅仅作为一个启动器的功能。如果选定了等待程序结束选项,菜单会一直等待直到启动的程序或文档退出后蔡会继续运行,但此功能在某些特定情况下可能失效,请自行仔细测试。如果要在启动菜单前访一个网页,可以在文件名编辑框中输入完整的网页地址,而输入 mailto:xxx@yyy.com 则可以启动邮件客户端撰写并发送一封电子邮件。   过期设置给自动运行菜单设置一个过期时间,并在过期后显示一段信息。同时,可以允许用户输入一个解锁码解除过期限制。注意,本程序不是一个加密工具,这种过期保护是非常弱的,如果需要较强的保护效果,请使用其它的专业工具。   字体如果在自动运行菜单中使用了特殊字体,可以让菜单在运行前自动安装它们。如上图所示,左侧列表是菜单使用的所有字体,右侧列表则是需要在菜单运行前自动安装的特殊字体。请将需要安装的字体从左侧列表添加到右侧列表中。   注意:仅添加菜单中使用的特殊字体,不要添加系统字体。   控件编辑添加控件位于屏幕左侧的控件栏使用图标代表了可以使用在菜单中的所有控件。选定一种控件,然后点击设计窗口中的目标位置,或者在设计窗口中按下鼠标画出一个目标矩形,就可以在设计窗口中添加一个新控件。   如果需要添加多个相同类型的控件,可以在选定控件类型时按住 SHIFT 键。这样,当添加新的控件之后,控件图标会保持在选定状态。点击控件栏上的箭头图标,可以取消控件图标的选定状态。   双击控件栏上的图标,也可以新建一个相应控件。   选择控件在设计窗口中点击一个控件,在它的周围会出现八个小方块,代表它处于选定状态,此时,可以对它进行编辑。如果需要同时选定多个控件,可以按住 SHIFT 键并点击需要选定的控件,也可以在窗口空白处按下鼠标画出矩形来选定一个范围内的控件。   删除控件选定需要删除的控件,然后点击菜单编辑->删除,或者工具栏上的删除按钮,或者直接按下 DELETE 键。删除选定的控件之后,程序会自动选择当前视图中的另一个控件。   克隆控件如果需要创建几个相同的控件,不必依次创建每个控件并修改它们的属性。先创建一个控件并修改属性,选定它,然后点击菜单编辑->克隆,或者工具栏上的克隆按钮,就可以创建一个完全相同的控件,程序会自动选定新创建的克隆控件。您也可以一次选定多个控件并克隆它们。   剪贴板操作您可以剪切或复制选定控件到剪贴板,也可以将剪贴板中的控件插入到菜单中。AutoPlay Menu Builder 使用与大部分 Windows 程序一样的菜单、工具栏按钮以及快捷键来进行剪贴板操作。   移动控件到其它页面点击菜单编辑->移动到页面,可以将选定的控件移动到其它页面。   控件位置与大小在控件上按下鼠标就可以将它拖动到新的位置。选定控件,然后拖动它周围的八个黑色小方块可以改变它的大小。改变控件的位置和大小时,控件会自动对齐到网格。点击菜单查看->选项可以打开选项对话框,设置网格大小以及是否对齐到网格。点击菜单编辑->对齐到网格,可以将选定的控件手工对齐到网格。菜单编辑->移动到底层和编辑->移动到顶层用来调整控件的前后层次。由于某些特殊原因,滚动文本、文本框、Flash 影片、网页浏览器、媒体播放器这几个控件不能位于其它控件的后面。   您还可以使用快捷键来微调(以一个象素为单位)控件的位置和大小。方向键用来调整控件位置,而 SHIFT+方向键则可调整控件的大小。   菜单编辑->锁定控件可以将选定的控件锁定为当前的位置和大小。菜单编辑->组合控件可以将选定的多个控件进行组合,组合之后,这些控件只能被同时选定和移动。   对齐面板菜单查看->对齐面板可以显示或隐藏对齐面板。   使用对齐面板可以将对齐控件到窗口,或者使控件之间相互对齐。控件面板中的每个按钮都有工具提示。如果您不了解某个特定按钮的功能,可以在该按钮上按下鼠标并保持按下状态,按钮上图像的变化反映了该按钮按下后的效果。松开按钮将会执行对齐操作。如果您不想应用当前操作,可以拖动鼠标到对齐面板外部再松开按键。   控件属性选定控件后,属性编辑器中就会显示当前控件的属性。以下控件,热点标签、按钮、图形按钮、炫目标签、炫目文本、形状、文字动画以及图像还具有动作属性。您可以用属性编辑器来修改控件的常规属性和动作属性。同时选定多个同类控件,就可以同时编辑它们的属性。例如,您可以选定所有的按钮,将它们的字体设置为相同的值,或者选定所有的动作控件,修改它们的鼠标音效。 对齐面板菜单查看->对齐面板可以显示或隐藏对齐面板。   使用对齐面板可以将对齐控件到窗口,或者使控件之间相互对齐。控件面板中的每个按钮都有工具提示。如果您不了解某个特定按钮的功能,可以在该按钮上按下鼠标并保持按下状态,按钮上图像的变化反映了该按钮按下后的效果。松开按钮将会执行对齐操作。如果您不想应用当前操作,可以拖动鼠标到对齐面板外部再松开按键。   控件属性选定控件后,属性编辑器中就会显示当前控件的属性。以下控件,热点标签、按钮、图形按钮、炫目标签、炫目文本、形状、文字动画以及图像还具有动作属性。您可以用属性编辑器来修改控件的常规属性和动作属性。同时选定多个同类控件,就可以同时编辑它们的属性。例如,您可以选定所有的按钮,将它们的字体设置为相同的值,或者选定所有的动作控件,修改它们的鼠标音效。   技巧可以通过控件的右键菜单来访菜单中的编辑菜单。   动作编辑概述以下控件具有动作属性,热点标签、按钮、图形按钮、炫目标签、炫目文本、形状、文字动画以及图像。使用动作属性,您可以从菜单中运行程序、打开文档、播放影片、浏览网页、发送邮件、浏览文件夹以及执行多种其它操作。   动作类型动作类型属性指明当用户单击控件时执行何种操作。AutoPlay Menu Builder 支持多种动作类型,它们可以满足大部分的需求。   以下是各种动作类型的详细解释。   无不执行任何操作。   运行程序运行一个程序。   打开文档使用系统关联的程序打开一个文档。   浏览文件夹启动资源管理器并浏览指定文件夹。   浏览网页使用默认浏览器打开一个网站或网页。   发送邮件使用默认的邮件客户端撰写并发送一封电子邮件。   弹出信息框使用漂亮的信息库显示一段信息。   显示图像在弹出窗口中显示一幅图像,支持多种显示风格。   启动幻灯放映内建的幻灯放映功能,支持大量图形显示特效。   页面跳转跳转到多页菜单中的其它页面。   最小化最小化菜单窗口。   退出退出自动运行菜单。   退出并弹出光盘退出自动运行菜单并弹出光盘。   动作参数指定动作类型之后,还必须指定执行动作的相关参数。不同的动作类型具有不同的参数。   以下是各种动作类型的参数说明。   无无参数。   运行程序第一个参数是需要运行的程序的文件名,第二个是需要传递给程序的参数,通常为空。   打开文档需要打开的文档的文件名。   浏览文件夹需要浏览的文件夹路径。   浏览网页网站或网页地址。   发送邮件第一个参数是电子邮件地址,第二个是邮件的主题。   弹出信息框需要显示的信息文本。   显示图像图像:需要显示的图像。   窗口风格:弹出窗口的外观风格。   标题:弹出窗口的标题。   淡入淡出:是否在弹出窗口时使用淡入淡出的显示特效。   延迟:淡入淡出特效的延迟时间。   如果图像是动态 GIF 图像,窗口风格为不规则外观,且没有激活淡入淡出特效,则图像将以极酷的动画窗口的方式显示。   启动幻灯放映路径:包含需要进行幻灯放映的图像文件的文件夹。   包含子目录:是否递归搜索所有子目录下的图像文件。   随机顺序:以随机顺序显示图像。   显示:幻灯显示窗口的风格与背景颜色。   背景音乐:放映幻灯时控制背景音乐的播放与停止。   页面跳转需要跳转到的页面名称。   最小化无参数。   退出无参数。   退出并弹出光盘无参数。   在这几种动作运行程序、打开文档以及浏览文件夹的参数中,必须输入文件的全路径名,并可以使用以下三个预定义的宏。   光盘根目录,无论实际的光驱盘符是什么,程序都会进行自动探测。   目录。   目录。   实际上,%CDROM% 宏指向的是 autorun.exe 文件所在的目录,在设计时,它指向菜单目所在的文件夹。刻录光盘时,一般都是把 autorun.exe 文件放置在光盘的根目录中,因而 %CDROM% 宏也即指向光盘的根目录。   举个例子,如果想打开位于光盘子目录 subdir 下的名为 letter.doc 的文档,就可以输入 %CDROM%\subdirectory\letter.doc 作为参数。您可以从参数编辑框的右键菜单中选择这三个宏。在设计时,您可以在硬盘上创建与待刻录光盘相同的目录结构,并推荐您使用虚拟驱动器专家创建一个虚拟磁盘,这将帮助您更好地编辑、测试您的菜单。当使用程序提供的文件或目录选择对话框选择位于项目所在目录中的文件或目录时,程序会自动将项目路径转换为 %CDROM% 宏定义。   背景音乐控制鼠标单击时执行的额外动作,用来控制背景音乐的播放与停止。   音效对于每一个动作控件,都可以为其指定两个音效,其一是鼠标移入控件范围内时的音效,其二是鼠标单击时的音效。鼠标移入音效与鼠标单击音效是每个控件独立的,除此之外,还有两个相关属性,公共鼠标移入音效与公共鼠标单击音效,这两个属性为所有的动作控件所公有。如果没有为控件设置独立音效,程序会尝试使用公共音效,除非选定了忽略公共音效选项。使用公共音效可以减少菜单数据的大小。   工具提示当鼠标移入控件范围内时,控件可以弹出一个工具提示。除了使用系统默认风格的工具提示,您还可以选择一种可高度自定义的漂亮工具提示,请参阅项目属性中的工具提示页面。   说明当鼠标移入控件范围内时,如果菜单的同一页面中有说明显示器控件,则控件的说明文字会显示于说明显示器中。请参阅说明显示器进一步了解。   图形说明图形说明类似于说明属性,只是使用图像替换了文字。当鼠标移入控件范围内时,如果菜单的同一页面中有图形说明显示器控件,则控件的图形说明会显示于图形说明显示器中。请参阅图形说明显示器进一步了解。   执行动作前最小化指定是否在执行动作前最小化菜单窗口。   执行动作后退出指定是否在执行动作后退出菜单。   多页菜单概述可以创建、编辑多页菜单。如果菜单包含了太多的内容,可以考虑设计为多页菜单。多页菜单中,每一页都使用字符串命名。点击工具栏上的页面切换工具就可以将当前页面设置为指定的页面。   多页菜单具有两个重要的属性。其一是起始页面,指定菜单启动时显示的页面。其二是第一页一直可见,指定是否一直显示第一页上的内容,无论当前页面是哪一页。例如,导航按钮等控件就可以放置在第一页,并选定第一页一直可见属性。   动作类型页面跳转可以在菜单运行时切换到指定的页面。   添加页面点击菜单页面->添加或工具栏按钮添加页面,输入新页面的名称,就可以新建一个空白页面。新页面将被自动选定为当前页面。   删除页面切换到需要删除的页面,点击菜单页面->删除或工具栏按钮删除页面,可以删除当前页面及其上的所有控件。删除之后,被删除页面旁边的页面将被选定为当前页面。   重命名页面切换到需要重命名的页面,点击菜单页面->重命名,输入新名称,则当前页面被重新命名。   克隆页面切换到需要克隆的页面,点击菜单页面->克隆,输入新页面的名称,可以克隆当前页面,新页面上包含原页面上的所有控件。克隆完成之后,新页面将被自动选定为当前页面。   左移页面点击菜单页面->左移,可以向左移动当前页面。   右移页面点击菜单页面->右移,可以向右移动当前页面。   技巧可以通过页面切换工具的右键菜单来访菜单中的页面菜单。   素材库概述素材库窗口显示了程序安装目录下 Gallery 子目录的内容。通过这个窗口,您可以轻松访到这些资源,并把它们添加到菜单中。   素材类型素材库窗口显示了六种类型的素材,包括图形按钮、图像、背景、音乐、音效及光标。点击窗口左上角的按钮可以切换当前显示的素材。   查看方式类似于资源管理器,您可以切换素材库的窗口方式。共有五种不同的查看方式,大图标、小图标、列表、详细信息以及缩略图。需要修改查看方式,请访素材列表视图中的右键菜单。   应用素材有两种方法可以将素材应用到菜单(控件或主窗口)。   、选定控件或主窗口,双击需要应用的素材,则素材被应用到选定的控件或主窗口。   、在素材上按下鼠标并拖动到目标控件或主窗口上,松开鼠标时,素材被应用到目标控件或主窗口。   如果选定的控件或主窗口不能接受特定的素材,程序会自动创建一个新控件并加载选定的素材。例如,应用图形按钮到主窗口时,程序会自动创建一个图形按钮,并载入选定的图形按钮外观图像。
动运行概述操作系统具有一项称为自动运行的特性。当插入一张带有自动运行菜单程序的光盘到光盘驱动器中,系统会自动加载并启动自动运行菜单。使用这项特性,可以为光盘创建一个良好的用户操作界面。例如,通过自动运行菜单,可以运行安装程序(或其它程序)、打开使用文档、运行演示程序、浏览文件夹以及执行多种其它操作。   创建自动运行的光盘如果光盘的根目录下有一个命名为 autorun.inf 的文件,操作系统就会自动加载该文件中指定的程序,并作为自动运行菜单将其启动。通常,autorun.inf 文件包括以下几行内容。   字段就是光盘自动运行菜单的程序文件名,icon 字段是光盘显示于资源管理器中的图标,可以是一个图标文件,也可以是可执行文件中的一个图标资源。如果要创建一张可自动运行的光盘,就必须编写一个作为自动运行菜单的程序,并编辑 autorun.inf 文件。   软件功能使用 AutoPlay Menu Builder,可以方便快捷地创建自动运行菜单。无需任何编程知识,只要通过点击和拖放鼠标,使用内置的控件“画”出菜单界面,并设置好控件属性,程序会帮您完成其它工作。程序会自动创建 autorun.exe、autorun.ico、autorun.inf 以及 autorun.apm 文件,其中 autorun.apm 文件是自动运行菜单的数据文件。如果选定了创建可独立运行的执行文件选项,菜单数据会附加在 autorun.exe 文件中,意外着您不需要刻录 autorun.apm 文件到光盘中。如果需要在菜单运行前安装一些字体,程序还将创建一个名为 FontData 的目录来存放字体文件。请自行尝试一下,您会发现本软件的功能还有许多。   工作选项点击菜单查看->选项,可以设置程序的工作选项。   显示网格在设计窗口上绘制点阵以形成网格对齐控件到网格自动对齐控件到临近的网格同时编辑所有选定控件的属性当选定多个控件时,使用属性编辑器修改所有控件的属性,或者仅修改第一个控件的属性网格大小设置网格点阵中两点之间的距离测试时最小化其它窗口测试菜单时,最小化主窗口、控件栏、属性编辑器、对齐面板、布局预览以及素材库窗口。   创建压缩的数据文件以压缩方式存储数据文件,可以减小文件大小,但需要花费更多的时间加载和保存项目。   创建可独立运行的执行文件保存项目时附加菜单数据即 autorun.apm 文件的内容到 autorun.exe 文件中。激活此选项,则不需要刻录 autorun.apm 文件到光盘上,但仍需要使用 autorun.apm 文件编辑和修改菜单。   项目管理新建项目点击菜单文件->新建或工具栏按钮新建,将会弹出下面的对话框。   键入用于存储新项目的路径,选择新项目需要继承的模板,点击确定按钮即可在指定路径中创建一个新项目。关于模板的更多信息,请查阅使用模板。   打开项目点击菜单文件->打开或工具栏按钮打开,选择已经存在的项目文件,则可以加载选定的菜单目到编辑器中。点击菜单文件->重新打开或工具栏按钮打开的下拉列表,可以显示最近打开过的项目列表,并打开其中的一个项目。   保存项目点击菜单文件->保存或工具栏按钮保存,可以保存对当前项目所做的修改。   测试项目点击菜单文件->测试或工具栏按钮测试,可以切换设计和测试状态,方便快捷地测试您的工作成果,不需编译。点击菜单文件->外部测试,可以启动项目输出的可执行文件 autorun.exe 进行测试。   保护项目点击菜单文件->口令保护,输入保护口令,则可以要求在打开项目进行编辑时输入编辑口令。这个功能可以防止您的菜单目被别人修改。如果需要禁用口令,在设置口令对话框中输入空口令即可。   虚拟驱动器专家虚拟驱动器专家是一个小巧实用的工具。它可以创建映射到目录的虚拟磁盘,就像 DOS 命令 SUBST 一样。比 SUBST 更加强大的是,虚拟驱动器专家拥有一个友好而易于使用的图形用户界面,并且,它能够在系统重新启动时自动恢复所有虚拟驱动器。使用它,您可以创建一个虚拟磁盘,用来组织需要刻录到光盘上的数据,并基于此虚拟磁盘创建自动运行菜单目。可以通过菜单工具->虚拟驱动器专家启动该工具。   独立执行文件转换如果在选项对话框中激活了创建可独立运行的执行文件选项,就可以把菜单数据嵌入到 autorun.exe 文件中,从而使它脱离菜单数据文件 autorun.apm 运行。   如果您已经丢失了项目的原始数据文件 autorun.apm,但尚留存独立执行文件 autorun.exe,此时您可以通过本转换工具将独立执行文件转换为原始项目数据文件。转换后,您就可以打开该数据文件进行编辑。   可以通过菜单工具->独立执行文件转换启动该转换工具。   刻录光盘完成自动运行菜单的制作后,就可以将它刻录到光盘上。将以下文件和目录放到光盘的根目录下。   :菜单程序文件:光盘图标:自动运行配置文件:菜单数据文件,如果在选项对话框中激活了创建可独立运行的执行文件选项,则不需要:特殊字体目录使用模板从模板新建项目点击菜单文件->新建或工具栏按钮新建,将会弹出下面的对话框。   键入用于存储新项目的路径,选择新项目需要继承的模板,点击确定按钮即可在指定路径中创建一个新项目。   安装模板点击模板->安装菜单,选择模板包文件,即可从 .zip 压缩文件中安装模板。   分发模板点击模板->打包菜单,可以将选定的模板打包为 .zip 文件,用于存档或分发给其它用户。   删除模板选定需要删除的模板,按下 DELETE 键,或点击菜单模板->删除,可以删除选定的模板。例外:由于空白菜单是一个虚拟的菜单,所以不能被删除。   创建模板点击主窗口中的菜单文件->另存为模板,将会弹出下面的对话框,帮助您将当前正在编辑的项目保存为新的模板。您需要键入新模板的名称、作者及说明,程序会根据当前视图自动创建预览图像。模板创建完成之后,就能在新建对话框的模板列表中找到新的模板。   项目属性点击菜单编辑->项目属性或工具栏按钮项目属性,可以编辑项目的相关属性。   常规图标自定义菜单程序的图标,也即光盘显示于资源浏览器中的图标。   光标、热点光标与文本光标自定义菜单程序的光标样式,其中,热点光标是动作控件的光标样式,而文本光标为文本框控件中的光标样式。   起始页面菜单启动时显示的页面。   第一页一直可见一直显示第一页上的内容,无论当前页面是哪一页。   背景音乐选择菜单的背景音乐,支持 MP3/MP2/MP1/OGG/WAV/MID/RMI/XM/IT/MOD/S3M/MTM 等十数种音乐格式。背景音乐将嵌入到数据文件 autorun.apm 中。   循环控制:循环播放背景音乐或只播放一次。   自动播放:菜单启动时自动播放背景音乐。   自动控制:当菜单窗口激活时自动播放背景音乐,而当菜单窗口移到后台时自动停止背景音乐。   按下[ESC]键时退出当用户按下[ESC]键时退出菜单程序。   不在任务栏显示在任务栏中隐藏菜单程序。   使用系统信息框弹出信息时,使用系统默认的信息框,而不使用程序提供的 Office 风格的信息框。   窗口菜单中隐藏“关于”项隐藏菜单窗口系统菜单中的关于菜单。   工具提示当移动鼠标到动作控件上方时,可以弹出一条工具提示,并且可以使用漂亮的自定义风格替换系统默认的工具提示风格。   使用自定义工具提示使用自定义风格的工具提示,不选定则使用系统默认的工具提示风格。   方位工具提示相对于鼠标位置的访。如果指定方位没有足够的屏幕空间用来显示工具提示,会自动调整到其它方位。   背景工具提示的背景风格。   颜色工具提示使用的各种颜色。   外观字体及阴影设置。   测试用来测试自定义风格工具提示的按钮。   延迟指定工具提示的延迟时间,包括从鼠标移入控件到显示工具提示的延迟时间,以及在鼠标不移出控件的情况下,从显示工具提示到工具提示消失的延迟时间。   启动窗口和结束窗口启动窗口是启动自动运行菜单时显示的窗口,而结束窗口则是退出菜单时显示的窗口。可以在启动窗口和结束窗口中使用不规则外观以及淡入淡出特效。测试按钮可以测试启动窗口和结束窗口的实际效果。如果选定了不规则外观,并且载入一幅动态 GIF 图像,启动窗口和结束窗口将表现为极酷的动画窗口。   注意:JPEG 图像不能用来创建不规则外观的窗口,因为 JPEG 是有损压缩格式,没有绝对单一的背景颜色。   另外,未注册版本制作的菜单会显示一个固定的启动窗口,不能修改。   启动需要管理员权限在用户没有管理员权限时,弹出一段信息并退出自动运行菜单。   启动时运行程序或打开文档在启动菜单前,可以运行一个程序、打开一个文档甚至访一个网页。如果选定了运行程序或打开文档后退出选项,菜单会在启动其它程序或文档后立即退出,仅仅作为一个启动器的功能。如果选定了等待程序结束选项,菜单会一直等待直到启动的程序或文档退出后蔡会继续运行,但此功能在某些特定情况下可能失效,请自行仔细测试。如果要在启动菜单前访一个网页,可以在文件名编辑框中输入完整的网页地址,而输入 mailto:xxx@yyy.com 则可以启动邮件客户端撰写并发送一封电子邮件。   过期设置给自动运行菜单设置一个过期时间,并在过期后显示一段信息。同时,可以允许用户输入一个解锁码解除过期限制。注意,本程序不是一个加密工具,这种过期保护是非常弱的,如果需要较强的保护效果,请使用其它的专业工具。   字体如果在自动运行菜单中使用了特殊字体,可以让菜单在运行前自动安装它们。如上图所示,左侧列表是菜单使用的所有字体,右侧列表则是需要在菜单运行前自动安装的特殊字体。请将需要安装的字体从左侧列表添加到右侧列表中。   注意:仅添加菜单中使用的特殊字体,不要添加系统字体。   控件编辑添加控件位于屏幕左侧的控件栏使用图标代表了可以使用在菜单中的所有控件。选定一种控件,然后点击设计窗口中的目标位置,或者在设计窗口中按下鼠标画出一个目标矩形,就可以在设计窗口中添加一个新控件。   如果需要添加多个相同类型的控件,可以在选定控件类型时按住 SHIFT 键。这样,当添加新的控件之后,控件图标会保持在选定状态。点击控件栏上的箭头图标,可以取消控件图标的选定状态。   双击控件栏上的图标,也可以新建一个相应控件。   选择控件在设计窗口中点击一个控件,在它的周围会出现八个小方块,代表它处于选定状态,此时,可以对它进行编辑。如果需要同时选定多个控件,可以按住 SHIFT 键并点击需要选定的控件,也可以在窗口空白处按下鼠标画出矩形来选定一个范围内的控件。   删除控件选定需要删除的控件,然后点击菜单编辑->删除,或者工具栏上的删除按钮,或者直接按下 DELETE 键。删除选定的控件之后,程序会自动选择当前视图中的另一个控件。   克隆控件如果需要创建几个相同的控件,不必依次创建每个控件并修改它们的属性。先创建一个控件并修改属性,选定它,然后点击菜单编辑->克隆,或者工具栏上的克隆按钮,就可以创建一个完全相同的控件,程序会自动选定新创建的克隆控件。您也可以一次选定多个控件并克隆它们。   剪贴板操作您可以剪切或复制选定控件到剪贴板,也可以将剪贴板中的控件插入到菜单中。AutoPlay Menu Builder 使用与大部分 Windows 程序一样的菜单、工具栏按钮以及快捷键来进行剪贴板操作。   移动控件到其它页面点击菜单编辑->移动到页面,可以将选定的控件移动到其它页面。   控件位置与大小在控件上按下鼠标就可以将它拖动到新的位置。选定控件,然后拖动它周围的八个黑色小方块可以改变它的大小。改变控件的位置和大小时,控件会自动对齐到网格。点击菜单查看->选项可以打开选项对话框,设置网格大小以及是否对齐到网格。点击菜单编辑->对齐到网格,可以将选定的控件手工对齐到网格。菜单编辑->移动到底层和编辑->移动到顶层用来调整控件的前后层次。由于某些特殊原因,滚动文本、文本框、Flash 影片、网页浏览器、媒体播放器这几个控件不能位于其它控件的后面。   您还可以使用快捷键来微调(以一个象素为单位)控件的位置和大小。方向键用来调整控件位置,而 SHIFT+方向键则可调整控件的大小。   菜单编辑->锁定控件可以将选定的控件锁定为当前的位置和大小。菜单编辑->组合控件可以将选定的多个控件进行组合,组合之后,这些控件只能被同时选定和移动。   对齐面板菜单查看->对齐面板可以显示或隐藏对齐面板。   使用对齐面板可以将对齐控件到窗口,或者使控件之间相互对齐。控件面板中的每个按钮都有工具提示。如果您不了解某个特定按钮的功能,可以在该按钮上按下鼠标并保持按下状态,按钮上图像的变化反映了该按钮按下后的效果。松开按钮将会执行对齐操作。如果您不想应用当前操作,可以拖动鼠标到对齐面板外部再松开按键。   控件属性选定控件后,属性编辑器中就会显示当前控件的属性。以下控件,热点标签、按钮、图形按钮、炫目标签、炫目文本、形状、文字动画以及图像还具有动作属性。您可以用属性编辑器来修改控件的常规属性和动作属性。同时选定多个同类控件,就可以同时编辑它们的属性。例如,您可以选定所有的按钮,将它们的字体设置为相同的值,或者选定所有的动作控件,修改它们的鼠标音效。 对齐面板菜单查看->对齐面板可以显示或隐藏对齐面板。   使用对齐面板可以将对齐控件到窗口,或者使控件之间相互对齐。控件面板中的每个按钮都有工具提示。如果您不了解某个特定按钮的功能,可以在该按钮上按下鼠标并保持按下状态,按钮上图像的变化反映了该按钮按下后的效果。松开按钮将会执行对齐操作。如果您不想应用当前操作,可以拖动鼠标到对齐面板外部再松开按键。   控件属性选定控件后,属性编辑器中就会显示当前控件的属性。以下控件,热点标签、按钮、图形按钮、炫目标签、炫目文本、形状、文字动画以及图像还具有动作属性。您可以用属性编辑器来修改控件的常规属性和动作属性。同时选定多个同类控件,就可以同时编辑它们的属性。例如,您可以选定所有的按钮,将它们的字体设置为相同的值,或者选定所有的动作控件,修改它们的鼠标音效。   技巧可以通过控件的右键菜单来访菜单中的编辑菜单。   动作编辑概述以下控件具有动作属性,热点标签、按钮、图形按钮、炫目标签、炫目文本、形状、文字动画以及图像。使用动作属性,您可以从菜单中运行程序、打开文档、播放影片、浏览网页、发送邮件、浏览文件夹以及执行多种其它操作。   动作类型动作类型属性指明当用户单击控件时执行何种操作。AutoPlay Menu Builder 支持多种动作类型,它们可以满足大部分的需求。   以下是各种动作类型的详细解释。   无不执行任何操作。   运行程序运行一个程序。   打开文档使用系统关联的程序打开一个文档。   浏览文件夹启动资源管理器并浏览指定文件夹。   浏览网页使用默认浏览器打开一个网站或网页。   发送邮件使用默认的邮件客户端撰写并发送一封电子邮件。   弹出信息框使用漂亮的信息库显示一段信息。   显示图像在弹出窗口中显示一幅图像,支持多种显示风格。   启动幻灯放映内建的幻灯放映功能,支持大量图形显示特效。   页面跳转跳转到多页菜单中的其它页面。   最小化最小化菜单窗口。   退出退出自动运行菜单。   退出并弹出光盘退出自动运行菜单并弹出光盘。   动作参数指定动作类型之后,还必须指定执行动作的相关参数。不同的动作类型具有不同的参数。   以下是各种动作类型的参数说明。   无无参数。   运行程序第一个参数是需要运行的程序的文件名,第二个是需要传递给程序的参数,通常为空。   打开文档需要打开的文档的文件名。   浏览文件夹需要浏览的文件夹路径。   浏览网页网站或网页地址。   发送邮件第一个参数是电子邮件地址,第二个是邮件的主题。   弹出信息框需要显示的信息文本。   显示图像图像:需要显示的图像。   窗口风格:弹出窗口的外观风格。   标题:弹出窗口的标题。   淡入淡出:是否在弹出窗口时使用淡入淡出的显示特效。   延迟:淡入淡出特效的延迟时间。   如果图像是动态 GIF 图像,窗口风格为不规则外观,且没有激活淡入淡出特效,则图像将以极酷的动画窗口的方式显示。   启动幻灯放映路径:包含需要进行幻灯放映的图像文件的文件夹。   包含子目录:是否递归搜索所有子目录下的图像文件。   随机顺序:以随机顺序显示图像。   显示:幻灯显示窗口的风格与背景颜色。   背景音乐:放映幻灯时控制背景音乐的播放与停止。   页面跳转需要跳转到的页面名称。   最小化无参数。   退出无参数。   退出并弹出光盘无参数。   在这几种动作运行程序、打开文档以及浏览文件夹的参数中,必须输入文件的全路径名,并可以使用以下三个预定义的宏。   光盘根目录,无论实际的光驱盘符是什么,程序都会进行自动探测。   目录。   目录。   实际上,%CDROM% 宏指向的是 autorun.exe 文件所在的目录,在设计时,它指向菜单目所在的文件夹。刻录光盘时,一般都是把 autorun.exe 文件放置在光盘的根目录中,因而 %CDROM% 宏也即指向光盘的根目录。   举个例子,如果想打开位于光盘子目录 subdir 下的名为 letter.doc 的文档,就可以输入 %CDROM%\subdirectory\letter.doc 作为参数。您可以从参数编辑框的右键菜单中选择这三个宏。在设计时,您可以在硬盘上创建与待刻录光盘相同的目录结构,并推荐您使用虚拟驱动器专家创建一个虚拟磁盘,这将帮助您更好地编辑、测试您的菜单。当使用程序提供的文件或目录选择对话框选择位于项目所在目录中的文件或目录时,程序会自动将项目路径转换为 %CDROM% 宏定义。   背景音乐控制鼠标单击时执行的额外动作,用来控制背景音乐的播放与停止。   音效对于每一个动作控件,都可以为其指定两个音效,其一是鼠标移入控件范围内时的音效,其二是鼠标单击时的音效。鼠标移入音效与鼠标单击音效是每个控件独立的,除此之外,还有两个相关属性,公共鼠标移入音效与公共鼠标单击音效,这两个属性为所有的动作控件所公有。如果没有为控件设置独立音效,程序会尝试使用公共音效,除非选定了忽略公共音效选项。使用公共音效可以减少菜单数据的大小。   工具提示当鼠标移入控件范围内时,控件可以弹出一个工具提示。除了使用系统默认风格的工具提示,您还可以选择一种可高度自定义的漂亮工具提示,请参阅项目属性中的工具提示页面。   说明当鼠标移入控件范围内时,如果菜单的同一页面中有说明显示器控件,则控件的说明文字会显示于说明显示器中。请参阅说明显示器进一步了解。   图形说明图形说明类似于说明属性,只是使用图像替换了文字。当鼠标移入控件范围内时,如果菜单的同一页面中有图形说明显示器控件,则控件的图形说明会显示于图形说明显示器中。请参阅图形说明显示器进一步了解。   执行动作前最小化指定是否在执行动作前最小化菜单窗口。   执行动作后退出指定是否在执行动作后退出菜单。   多页菜单概述可以创建、编辑多页菜单。如果菜单包含了太多的内容,可以考虑设计为多页菜单。多页菜单中,每一页都使用字符串命名。点击工具栏上的页面切换工具就可以将当前页面设置为指定的页面。   多页菜单具有两个重要的属性。其一是起始页面,指定菜单启动时显示的页面。其二是第一页一直可见,指定是否一直显示第一页上的内容,无论当前页面是哪一页。例如,导航按钮等控件就可以放置在第一页,并选定第一页一直可见属性。   动作类型页面跳转可以在菜单运行时切换到指定的页面。   添加页面点击菜单页面->添加或工具栏按钮添加页面,输入新页面的名称,就可以新建一个空白页面。新页面将被自动选定为当前页面。   删除页面切换到需要删除的页面,点击菜单页面->删除或工具栏按钮删除页面,可以删除当前页面及其上的所有控件。删除之后,被删除页面旁边的页面将被选定为当前页面。   重命名页面切换到需要重命名的页面,点击菜单页面->重命名,输入新名称,则当前页面被重新命名。   克隆页面切换到需要克隆的页面,点击菜单页面->克隆,输入新页面的名称,可以克隆当前页面,新页面上包含原页面上的所有控件。克隆完成之后,新页面将被自动选定为当前页面。   左移页面点击菜单页面->左移,可以向左移动当前页面。   右移页面点击菜单页面->右移,可以向右移动当前页面。   技巧可以通过页面切换工具的右键菜单来访菜单中的页面菜单。   素材库概述素材库窗口显示了程序安装目录下 Gallery 子目录的内容。通过这个窗口,您可以轻松访到这些资源,并把它们添加到菜单中。   素材类型素材库窗口显示了六种类型的素材,包括图形按钮、图像、背景、音乐、音效及光标。点击窗口左上角的按钮可以切换当前显示的素材。   查看方式类似于资源管理器,您可以切换素材库的窗口方式。共有五种不同的查看方式,大图标、小图标、列表、详细信息以及缩略图。需要修改查看方式,请访素材列表视图中的右键菜单。   应用素材有两种方法可以将素材应用到菜单(控件或主窗口)。   、选定控件或主窗口,双击需要应用的素材,则素材被应用到选定的控件或主窗口。   、在素材上按下鼠标并拖动到目标控件或主窗口上,松开鼠标时,素材被应用到目标控件或主窗口。   如果选定的控件或主窗口不能接受特定的素材,程序会自动创建一个新控件并加载选定的素材。例如,应用图形按钮到主窗口时,程序会自动创建一个图形按钮,并载入选定的图形按钮外观图像。
由于很多功能在内核中完成,所以如果发生由本工具直接或者间接导致的题,本人概不负责。 非常感谢 看雪论坛的我是土匪, 卡饭的dl123100,leisong,zxjzwy,曲中求,紫瞳魔圣,tawny2008,天月来了,wo1234,FreeEquFraT 嬴政天下的橡树, 非凡论坛的gda1139等热心朋友, 提供出现蓝屏时的dump文件,帮助我找到很多题, 希望大家如果不幸遇到蓝屏时,把dump文件发到我的邮箱(ithurricane@126.com)以便分析修改, 谢谢大家~~~ 还要特别感谢一下hi百度的uruan,特意为PowerTool做了一个非常漂亮的Logo,很喜欢这个Design,多谢了~~~ 应用平台:for WindowsXp/Windows2003/Vista/Windows7(32 bit)(我只在这四个上面测试过,其他的系统上可能会出现题) 联系作者: Email: ithurricane@126.com QQ: 20158686 Blog: http://hi.baidu.com/ithurricane 目前版本主要功能: 1. 所有进程的枚举(包括内核中隐藏的进程) 2. 所有文件的枚举(包括内核中隐藏的文件) 3. 进程中所有模块的枚举(包括内核中隐藏的模块) 4. 进程的强制结束 5. 进程中模块的强制卸载 6. 模块被哪些进程加载的检索 7. 查看文件/文件夹被占用的情况 8. 可以Unlock占用文件的进程 9. 文件/文件夹的粉碎(可强删Unlocker1.8.9/金山/超级巡警文件粉碎机无法删除的顽固文件) 10. 阻止文件粉碎后用还原软件还原(采用美国国防部DOD 5220.22-m标准阻止文件还原) 11. 用磁盘解析技术检索硬盘数据 12. 内核模块和驱动的查看和管理 13. 启动项的查看和管理 14. 系统服务的查看和管理 15. 集成文件粉碎功能到系统右键菜单 16. 消息钩子的查看和卸载 17. SSDT/Shadow SSDT钩子的查看和卸载 18. 各种内核回调的查看和卸载 19. 多国语言版本的对应(中文和英文) 20. 暂停进程运行和恢复进程运行 21. 进程模块的内存的dump 22. 进程的线程的查看和结束 23. 进程的窗口的查看和控制 24. 进程的定时器的查看和摘除(该功能还没对应Windows2003) 25. 内核定时器的查看和摘除 26. 上传文件在线扫描病毒 27. 查看和摘除用户层的钩子 28. 查看和结束内核线程 29. 关机回调的清除 30. 查看和摘除mini文件驱动 31. 系统恢复功能(检测项目包括注册表关键部位,已安装的杀毒软件,AutoRun文件,Windows漏洞检测,共享文件夹) 32. 流氓快捷方式的检测和删除 33. 镜像劫持的检测和删除 34. 文件关联的检测和删除 35. IE相关的检测和删除 36. FSD Hook的检测和删除 37. Object Hook的检测和删除 38. 部分CPU/硬盘/显卡/主板的温度检测 39. 部分硬件信息的确认 40. 修复漏洞功能,可以下载和安装Windows补丁 41. IDT钩子的检测和恢复 42. 禁止进城创建,新建文件,注册表修改等配置 43. 注册表功能,几乎可以无视一切隐藏注册表的钩子 44. SPI的检测 45. 通过磁盘解析进行文件浏览 46. 文件强制拷贝功能,可拷贝网络视频的缓存文件 47. 通过磁盘解析取得和拷贝ADS流文件 48. 添加和查看文件重启删除信息 49. Disk/Atapi驱动钩子的检测和恢复 50. 进程权限的枚举和摘除 51. 检测键盘侦听软件 52. 检测被监视的文件 2010-12-05 PowerTool V3.2 增加: 1. 新增过滤驱动的检测,不仅可以显示驱动名还能显示设备名 2. 新增检测键盘侦听软件 3. 新增检测被监视的文件 4. 新增组策略中开关机脚本的解析(感谢天月来了和wo1234指点思路) 改善: 1. 修改了启动时大量占用内存的BUG(感谢曲中求的提醒) 2. 加强了文件厂商的取得,修正文件不存在的BUG(感谢tawny2008的提醒) 3. 改进了列表的现实,当显示不下,鼠标移动到上面去就可以完整显示(感谢FreeEquFraT的意见) 2010-11-17 PowerTool V3.1.2 改善: 1. 修改了加载驱动失败后无法启动的BUG 2. 修改了无法显示某些进程的BUG 2010-11-16 PowerTool V3.1 增加: 1. 新增Disk/Atapi驱动钩子的检测和恢复 2. 新增进程权限的枚举和摘除 改善: 1. 修改了与COMODO等HIPS不兼容,导致无法启动等题 2. 加强了防止注入的逻辑 3. 加强了进程粉碎的逻辑 4. 修改了进程路经过长无法显示的bug 2010-11-03 PowerTool V3.0 增加: 1. 新增通过磁盘解析取得和拷贝ADS流文件 2. 新增动态切换多国语言界面(考虑到文件大小,没有把EnglishDll.dll绑定到PowerTool里面去,不需要英文界面的朋友,把EnglishDll.dll删掉也没关系) 3. 新增添加和查看文件重启删除信息 改善: 1. 重要的系统文件可以在PT直接编辑保存(保存之前会先备份文件) 2. 修改了文件和注册表的跳转 3. 区别文件夹颜色,隐藏属性的是蓝色,非正常文件夹是红色 2010-10-24 PowerTool V2.9 增加: 1. 新增通过磁盘解析进行文件浏览 2. 新增文件强制拷贝功能,可拷贝网络视频的缓存文件 改善: 1. 模块列表里默认不显示微软模块 2. 加强了文件粉碎的功能,可强删SysReveal删不掉的文件 3. 加强了目录删除的功能,可删除畸形目录 2010-10-10 PowerTool V2.8 增加: 1. 新增SPI的检测 2. 新增窗口置顶,快速重启,释放内存,监视带有Auturun.inf的U盘等小功能 3. 新增进程的EAT钩子检测 改善: 1. 将启动时检测新版本改为了点击[在线升级]是下载新版本 2. 修正了文件和注册表跳转的BUG 3. 修正了安全模式下无法加载驱动的BUG 4. 修正了XP下畸形目录无法浏览的BUG 5. 修正了一键修复时报错的BUG 2010-09-26 PowerTool V2.7 增加: 1. 新增注册表功能,几乎可以无视一切隐藏注册表的钩子 2. 新增重要文件夹的快速跳转功能 3. 可备份windows服务和启动项 4. 新增自动检测新版本并且下载 改善: 1. 修正了禁止进程创建,注册表修改等配置的BUG 2. 修正了文件粉粹里无法浏览System Volume Information目录的BUG 3. 修正了Windows服务里菜单状态的BUG 4. 修正了无法上传到filterbit的BUG 2010-08-22 PowerTool V2.6 增加: 1. 新增修复漏洞功能,可以下载和安装Windows补丁 2. 新增IDT钩子的检测和恢复 3. 新增禁止进城创建,新建文件,注册表修改等配置 改善: 1. 修正了内存,文件大小排序的BUG 2. 修正了删除不存在的文件导致explorer.exe崩溃的题 3. 修正了文件检索默认乱码的题 4. 增加服务能跳转到对应的注册表 5. 修改下拉箭头不能正常显示的题 6. 把所有的文件绑定到PowerTool.exe上 2010-08-11 PowerTool V2.5 改善: 1. 修正由于硬件检测导致无法启动的BUG 2010-08-10 PowerTool V2.5 增加: 1. 部分CPU/硬盘/显卡/主板的温度检测 CPU:(Intel "Core Duo", "Core Solo", "Core 2 Duo", "Core 2 Solo", "Core 2 Quad", " Pentium", "Core i3/i5/i7/i9", "Celeron" series (Conroe/Merom architecture and newer)) AMD的CPU的温度检测方法和Intel的不一样,而且我手头也没有AMD的CPU,所以这次只写了Intel的CPU的温度检测 显卡: Nvidia 和 ATI的温度,主板集成的显卡无法检测 硬盘:支持S.M.A.R.T. 特性的硬盘 主板:目前该检测功能较弱,以后会继续加强,包括主板芯片组,风扇的转速等等 2. 部分硬件信息的确认 改善: 1. 进程的父ID和用户名 2. 修正XP里面无法显示进程运行时间 3. 修正删除文件夹时多次弹框 4. 修正Autorun.inf文件夹误报题 5. 进程和模块的窗口可以拉伸 6. 共享文件夹可以取消共享 7. 修正定位文件只能定位到文件夹的BUG 8. 暂时删除了皮肤库 2010-08-01 PowerTool V2.4 增加: 1. FSD Hook的检测和删除 2. Object Hook的检测和删除 改善: 1. 进程右键单击的话不再会自动刷新 2. 修正模块排序题 3. 修正进程排序题 2010-07-27 PowerTool V2.3加强版 增加: 1. 系统重要文件的确认 2. 题反馈功能 改善: 1. 加强了广告图标/流氓快捷方式的检测 2. 增加了7种启动项目的检测 3. 增加了IE的BHO插件和ActiveX插件 4. 微软进程被插入其他模块希望能用红色显示,区别于未插入其他模块的微软进程和其他应用程序进程 2010-07-18 PowerTool V2.3 增加: 1. 系统恢复功能(检测项目包括注册表关键部位,已安装的杀毒软件,AutoRun文件,Windows漏洞检测,共享文件夹) 2. 流氓快捷方式的检测和删除 3. 镜像劫持的检测和删除 4. 文件关联的检测和删除 5. IE相关的检测和删除 改善: 1. 修改了mini文件驱动的蓝屏BUG 2. 修改了自我保护导致蓝屏的题(感谢dl123100) 2010-07-11 PowerTool V2.2 增加: 1. 查看和摘除mini文件驱动 2. 查看和摘除文件/鼠标/键盘/网络等过滤驱动 改善: 1. 和微点无法共存的BUG 2. 改进了进程API钩子检测的逻辑 3. 可调整窗体的大小 4. 增加导出功能 2010-06-27 PowerTool V2.1 增加: 1. 查看和摘除用户层的钩子 2. 查看和结束内核线程 3. 关机回调的清除 改善: 1. 文件刷新显示错误的BUG 2010-06-10 PowerTool V2.0 改善: 1. 浏览文件时程序崩溃的BUG 2. Win2003下看内核定时器时蓝屏的BUG 2010-06-09 PowerTool V2.0 增加: 1. 上传文件在线扫描病毒 改善: 1. 超长路径名导致无法显示和删除的BUG 2. 注册表遗留项目忘记删除BUG 3. 修改驱动增强稳定性 2010-06-06 PowerTool V2.0 增加: 1. 暂停进程运行和恢复进程运行 2. 进程模块的内存的dump 3. 进程的线程的查看和结束 4. 进程的窗口的查看和控制 5. 进程的定时器的查看和摘除(该功能还没对应Windows2003) 6. 内核定时器的查看和摘除 改善: 1. 加入皮肤库,美化了界面 2010-05-23 PowerTool V1.9 增加: 1. SSDT/Shadow SSDT钩子的查看和卸载 2. 各种内核回调的查看和卸载 2010-05-13 PowerTool V1.8 增加: 1. 集成文件粉碎功能到系统右键菜单 2. 新增消息钩子的查看和卸载 2010-05-03 PowerTool V1.7 修改: 1. 加强了文件粉碎的强度 2. 改进了通配符检索文件的逻辑 3. 所有的功能内,所有不属于Microsoft的文件均以蓝色显示,以示区别 增加: 1. 新增文件夹为单位的删除功能 2. 新增内核模块和驱动的查看和管理 3. 新增启动项的查看和管理 4. 新增系统服务的查看和管理 2010-04-18 PowerTool V1.6 修改: 1. 支持批量删除文件 增加: 1. 可以在所有NTFS格式硬盘的数据中检索文件,并可将检索结果删除 2010-04-03 PowerTool V1.5 修改: 1. 强化进程粉碎功能 增加: 1. 采用美国国防部DOD 5220.22-m标准阻止文件还原 2. 可以从其它进程里强制卸载模块 3. 可以检索模块被哪些进程使用了 2010-03-27 PowerTool V1.3 修改: 1. 改进了Unlock功能,可解锁/强删Unlocker/超级巡警文件粉碎机/金山文件粉碎机等 无法解锁的文件 增加: 1. 增加了简易的自我保护功能 2010-03-21 PowerTool V1.2 修改: 1. 改进了文件粉碎的逻辑,基本上可以删除顽固文件 2. 改进了进程粉碎的逻辑,基本上可以关闭顽固进程 增加: 1. 增加了文件的管理,可以彻底检测所有隐藏文件,安全可靠 2. 可以查看文件锁定/被占用的情况,并可以解锁/unlock 2010-03-16 PowerTool V1.1 改进: 1. 增加了进程管理,枚举隐藏进程/模块的功能,基本上所有的进程都能看到了 2010-03-01 PowerTool V1.0 功能: 1. 简易的文件/进程粉碎机
第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的运行机制和JVM 6 1.4 开发Java的准备 7 1.4.1 安装JDK 8 学生提:不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 8 学生提:为什么不安装公共JRE系统呢? 9 1.4.2 设置PATH环境变量 10 学生提:为什么选择设置用户变量,用户变量和系统变量有什么区别呢? 11 1.5 第一个Java程序 12 1.5.1 编辑Java源代码 12 1.5.2 编译Java程序 13 学生提:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据CLASSPATH环境变量定位类 15 1.6 Java程序的基本规则 16 1.6.1 Java程序的组织形式 16 1.6.2 Java源文件的命名规则 17 1.6.3 初学者容易犯的错误 18 1.7 垃圾回收机制 20 1.8 何时开始使用IDE工具 21 学生提:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML(统一建模语言)介绍 29 2.2.1 用例图 30 2.2.2 类图 31 2.2.3 组件图 33 2.2.4 部署图 33 2.2.5 顺序图 34 2.2.6 活动图 34 2.2.7 状态机图 36 2.3 Java的面向对象特征 36 2.3.1 一切都是对象 37 2.3.2 类和对象 37 2.4 本章小结 37 第3章 数据类型和运算符 38 3.1 注释 39 3.1.1 单行注释和多行注释 39 3.1.2 文档注释 40 学生提:API文档是什么? 40 学生提:为什么要掌握查看API文档的方法? 42 3.2 标识符和关键字 45 3.2.1 分隔符 45 3.2.2 标识符规则 47 3.2.3 Java关键字 47 3.3 数据类型分类 48 3.4 基本数据类型 48 3.4.1 整型 49 3.4.2 字符型 49 3.4.3 浮点型 51 3.4.4 布尔型 52 3.5 基本类型的类型转换 53 3.5.1 自动类型转换 53 3.5.2 强制类型转化 54 3.5.3 表达式类型的自动提升 56 3.6 直接量 57 3.6.1 直接量的类型 57 3.6.2 直接量的赋值 58 3.7 运算符 58 3.7.1 算术运算符 58 3.7.2 赋值运算符 61 3.7.3 位运算符 62 3.7.4 扩展后的赋值运算符 64 3.7.5 比较运算符 65 学生提:Java为什么要对这些数据进行缓存呢? 67 3.7.6 逻辑运算符 67 3.7.7 三目运算符 68 3.7.8 运算符的结合性和优先级 69 3.8 本章小结 70 本章练习 70 第4章 流程控制和数组 71 4.1 顺序结构 72 4.2 分支结构 72 4.2.1 if条件语句 72 4.2.2 switch分支语句 76 4.3 循环结构 78 4.3.1 while循环语句 78 4.3.2 do while循环语句 79 4.3.3 for循环 80 4.3.4 嵌套循环 83 4.4 控制循环结构 84 4.4.1 使用break结束循环 84 4.4.2 使用continue结束本次循环 86 4.4.3 使用return结束方法 87 4.5 数组类型 87 4.5.1 理解数组:数组也是一种类型 88 学生提:int[]是一种类型吗?怎么使用这种类型呢? 88 4.5.2 定义数组 88 4.5.3 数组的初始化 89 学生提:能不能只分配内存空间,不赋初始值呢?89 4.5.4 使用数组 90 学生提:为什么要我记住这些异常信息? 91 4.5.5 JDK1.5提供了foreach循环 91 4.6 深入数组 93 4.6.1 内存中的数组 93 学生提:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样不可以扩展成三维数组吗?甚至扩展到更多维的数组? 101 4.6.5 操作数组的工具类 102 4.6.6 数组的应用举例 103 4.7 本章小结 106 本章练习 106 第5章 面向对象(上) 107 5.1 类和对象 108 5.1.1 定义类 108 学生提:构造器不是没有返回值吗?为什么不能用void修饰呢? 110 5.1.2 对象的产生和使用 110 5.1.3 对象、引用和指针 111 5.1.4 对象的this引用 112 5.2 方法详解 116 5.2.1 方法的所属性 116 5.2.2 方法的参数传递机制 116 5.2.3 形参长度可变的方法 120 5.2.4 递归方法 121 5.2.5 方法重载 123 学生提:为什么方法的返回值类型不能用于区分重载的方法? 124 5.3 成员变量和局部变量 124 5.3.1 成员变量和局部变量 125 5.3.2 成员变量的初始化和内存中的运行机制 128 5.3.3 局部变量的初始化和内存中的运行机制 130 5.3.4 变量的使用规则 130 5.4 隐藏和封装 132 5.4.1 理解封装 132 5.4.2 使用访控制符 132 5.4.3 package和import 135 5.4.4 Java的常用包 140 5.5 深入构造器 140 5.5.1 使用构造器执行初始化 141 学生提:构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 141 5.5.2 构造器的重载 142 学生提:为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗? 143 5.6 类的继承 144 5.6.1 继承的特点 144 5.6.2 重写父类的方法 145 5.6.3 父类实例的super引用 146 学生提:我们只是创建了一个Ostrich对象时,哪来的Bird对象? 147 5.6.4 调用父类构造器 148 学生提:为什么我创建Java对象时从未感觉到java.lang.Object的构造器被调用过? 150 5.7 多态 151 5.7.1 多态性 151 5.7.2 引用变量的强制类型转换 152 5.7.3 instanceof运算符 154 5.8 继承与组合 154 5.8.1 使用继承的注意点 155 5.8.2 利用组合实现复用 156 学生提:使用组合关系来实现复用时,需要创建两个Animal对象,是不是意味着使用组合关系时系统开销更大? 159 5.9 初始化块 159 5.9.1 使用初始化块 160 5.9.2 初始化块和构造器 161 5.9.3 静态初始化块 162 5.10 本章小结 165 本章练习 165 第6章 面向对象(下) 166 6.1 基本数据类型的包装类 167 6.2 处理对象 170 6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 6.4.3 final类 182 6.4.4 不可变类 182 6.4.5 缓存实例的不可变类 186 6.5 抽象类 188 6.5.1 抽象方法和抽象类 188 6.5.2 抽象类的作用 191 6.6 更彻底的抽象:接口 192 6.6.1 接口的概念 192 6.6.2 接口的定义 193 6.6.3 接口的继承 195 6.6.4 使用接口 195 6.6.5 接口和抽象类 197 6.6.6 面向接口编程 198 6.7 内部类 202 6.7.1 非静态内部类 202 学生提:非静态内部类对象和外部类对象的关系是怎样的? 206 6.7.2 静态内部类 207 学生提:为什么静态内部类实例方法也不能访外部类的实例属性呢? 207 学生提:接口里是否能定义内部接口? 208 6.7.3 使用内部类 208 学生提:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 枚举类 217 6.8.1 手动实现枚举类 217 6.8.2 枚举类入门 219 6.8.3 枚举类的属性、方法和构造器 220 6.8.4 实现接口的枚举类 223 6.8.5 包含抽象方法的枚举类 224 6.9 对象与垃圾回收 225 6.9.1 对象在内存中的状态 226 6.9.2 强制垃圾回收 227 6.9.3 finalize方法 228 6.9.4 对象的软、弱和虚引用 230 6.10 修饰符的适用范围 233 6.11 使用JAR文件 234 6.11.1 jar命令详解 235 6.11.2 创建可执行的JAR包 237 6.11.3 关于JAR包的技巧 238 6.12 本章小结 239 本章练习 239 第7章 Java集合 240 7.1 Java集合概述 241 7.2 Collection和Iterator接口 243 7.2.1 使用Iterator接口遍历集合元素 244 7.2.2 使用foreach循环遍历集合元素 246 7.3 Set接口 247 7.3.1 HashSet类 247 学生提:hashCode方法对于HashSet的作用是什么? 249 7.3.2 TreeSet类 252 7.3.3 EnumSet类 259 7.4 List接口 261 7.4.1 List接口和ListIterator接口 261 7.4.2 ArrayList和Vector实现类 264 7.4.3 固定长度的List 266 7.5 Queue接口 266 7.5.1 LinkedList实现类 266 7.5.2 PriorityQueue实现类 269 7.6 Map 270 7.6.1 HashMap和Hashtable实现类 271 7.6.2 SortedMap接口和TreeMap实现类 276 7.6.3 WeakHashMap实现类 279 7.6.4 IdentityHashMap实现类 280 7.6.5 EnumMap实现类 281 7.7 HashSet和HashMap的性能选项 282 7.8 操作集合的工具类:Collections 283 7.8.1 排序操作 283 7.8.2 查找,替换操作 287 7.8.3 同步控制 288 7.8.4 设置不可变集合 288 7.9 烦琐的接口:Enumeration 289 7.10 本章小结 290 本章练习 290 第8章 泛型 291 8.1 泛型入门 292 8.1.1 编译时不检查类型的异常 292 8.1.2 手动实现编译时检查类型 293 8.1.3 使用泛型 294 8.2 深入泛型 294 8.2.1 定义泛型接口、类 295 8.2.2 从泛型类派生子类 296 8.2.3 并不存在泛型类 298 8.3 类型通配符 298 8.3.1 使用类型通配符 300 8.3.2 设定类型通配符的上限 300 8.3.3 设定类型形参的上限 302 8.4 泛型方法 303 8.4.1 定义泛型方法 303 8.4.2 泛型方法和类型通配符的区别 306 8.4.3 设定通配符的下限 307 8.4.4 泛型方法与方法重载 309 8.5 擦除和转换 310 8.6 泛型与数组 311 8.7 本章小结 313 第9章 与运行环境交互 314 9.1 与用户互动 315 9.1.1 运行Java程序的参数 315 9.1.2 使用Scanner获取键盘输入 316 9.1.3 使用BufferedReader获取键盘输入 318 9.2 系统相关 319 9.2.1 System类 319 9.2.2 Runtime类 321 9.3 常用类 322 9.3.1 Object类 322 9.3.2 String、StringBuffer和StringBuilder类 322 9.3.3 Math类 327 9.3.4 Random类 328 9.3.5 BigDecimal类 330 9.4 处理日期的类 333 9.4.1 Date类 333 9.4.2 Calendar类 334 9.4.3 TimeZone类 337 9.5 正则表达式 338 9.5.1 创建正则表达式 338 9.5.2 使用正则表达式 341 9.6 程序国际化 345 9.6.1 Java国际化的思路 346 9.6.2 Java支持的语言和国家 346 9.6.3 完成程序国际化 347 9.6.4 使用MessageFormat处理包含占位符的字符串 349 9.6.5 使用类文件代替资源文件 350 9.6.6 使用NumberFormat格式化数字 350 9.6.7 使用DateFormat格式化日期 352 9.7 本章小结 355 本章练习 355 第10章 异常处理 356 10.1 异常概述 357 10.2 异常处理机制 358 10.2.1 使用try...catch捕获异常 359 10.2.2 异常类的继承体系 360 10.2.3 访异常信息 363 10.2.4 使用finally回收资源 364 10.2.5 异常处理的嵌套 367 10.3 Checked异常和Runtime异常体系 367 10.3.1 使用throws声明抛出异常 367 10.4 使用throw抛出异常 369 10.4.1 抛出异常 369 10.4.2 自定义异常类 371 10.4.3 catch和throw同时使用 371 10.4.4 异常链 373 10.5 Java的异常跟踪栈 374 10.6 异常处理规则 376 10.6.1 不要过度使用异常 377 10.6.2 不要使用过于庞大的try块 378 10.6.3 避免使用Catch All语句 378 10.6.4 不要忽略捕获到的异常 379 10.7 本章小结 379 本章练习 379 第11章 AWT编程 380 11.1 GUI(图形用户界面)和AWT 381 11.2 AWT容器 382 11.3 布局管理器 385 11.3.1 FlowLayout布局管理器 386 11.3.2 BorderLayout布局管理器 387 学生提:BorderLayout最多只能放置5个组件吗?那它还有什么作用? 388 11.3.3 GridLayout布局管理器 389 11.3.4 GridBagLayout布局管理器 390 11.3.5 CardLayout布局管理器 393 11.3.6 绝对定位 395 11.3.7 BoxLayout布局管理器 396 学生提:图11.15和图11.16显示的所有按钮都紧挨在一起,如果希望像FlowLayout、GridLayout等布局管理器指定组件的间距该怎么办? 397 11.4 AWT 常用组件 398 11.4.1 基本组件 398 11.4.2 对话框 400 11.5 事件处理 403 11.5.1 Java事件模型的流程 403 11.5.2 事件事件监听器 405 11.5.3 事件适配器 409 11.5.4 事件监听器的实现形式 411 11.6 AWT的菜单 413 11.6.1 菜单条、菜单菜单 414 11.6.2 右键菜单 416 学生提:为什么即使我没有给多行文本域编写右键菜单,但当我在多行文本域上单击右键时一样会弹出右键菜单? 418 11.7 在AWT中绘图 418 11.7.1 画图的实现原理 418 11.7.2 使用Graphics类 419 11.8 处理位图 425 11.8.1 Image抽象类和BufferedImage实现类 425 11.8.2 使用ImageIO输入/输出位图 427 11.9 剪贴板 432 11.9.1 数据传递的类和接口 432 11.9.2 传递文本 433 11.9.3 使用系统剪贴板传递图像 435 11.9.4 使用本地剪贴板来传递对象引用 439 11.9.5 通过系统剪贴板传递Java对象 442 11.10 本章小结 445 本章练习 445 第12章 Swing编程 446 12.1 Swing概述 447 12.2 Swing基本组件的用法 448 12.2.1 Swing组件层次 448 12.2.2 AWT组件的Swing实现 449 学生提:为什么单击Swing多行文本域时不是弹出像AWT多行文本域中的右键菜单? 455 12.2.3 使用JToolBar创建工具条 458 12.2.4 使用JColorChooser和JFileChooser 461 12.2.5 使用JOptionPane 469 12.3 Swing中的特殊容器 475 12.3.1 使用JSplitPane 475 12.3.2 使用JTabbedPane 477 12.3.3 使用JLayeredPane、JDesktopPane和JInternalFrame 481 12.4 Swing拖放功能 490 12.4.1 拖放目标 491 12.4.2 拖放源 494 12.4.3 简化的拖放操作 495 12.5 Applet和JApplet 497 12.5.1 Applet简介及其安全性 498 12.5.2 开发Applet类 498 12.5.3 使用HTML页面装载Applet 500 12.5.4 appletviewer简介 502 12.5.5 Applet的生命周期和动画机制 503 学生提:程序中重写paint方法时绘制了一个字符串,但图12.28上则绘制出了如此之多的字符串,这是为什么呢? 505 12.5.6 使用Applet创建音乐播放器 505 12.6 使用JProgressBar、ProgressMonitor和BoundedRangeModel创建进度条 508 12.6.1 创建进度条 508 12.6.2 创建进度对话框 512 12.7 使用JSlider和BoundedRangeModel创建滑动条 513 12.8 使用JSpinner和SpinnerModel创建微调控制器 517 12.9 使用JList、JComboBox创建列表框 520 12.9.1 简单列表框 520 12.9.2 不强制存储列表项的ListModel和ComboBoxModel 524 12.9.3 强制存储列表项的DefaultListModel和DefaultComboBoxModel 528 学生提:为什么JComboBox提供了添加、删除列表项目的方法?而JList没有提供添加、删除列表项的方法呢? 530 12.9.4 使用ListCellRenderer改变列表项外观 530 12.10 使用JTree和TreeModel创建树 532 12.10.1 创建树 533 12.10.2 拖动、编辑树节点 536 12.10.3 监听节点事件 540 12.10.4 使用TreeCellRendering改变节点外观 542 12.11 使用JTable和TableModel创建表格 549 12.11.1 创建JTable 549 学生提:我们指定的表格数据、表格列标题都是Object类型的数组,JTable如何显示这些Object对象?550 12.11.2 TableModel和监听器 555 12.11.3 TableColumnModel和监听器 561 12.11.4 实现排序 564 12.11.5 绘制单元格内容 567 12.11.6 编辑单元格内容 570 12.12 使用JFormattedTextField和JTextPane创建格式文本 576 12.12.1 监听Document的改变 576 12.12.2 使用JPasswordField 578 12.12.3 使用JFormattedTextField 579 12.12.4 使用JEditorPane 588 12.12.5 使用JTextPane 588 12.13 本章小结 595 本章练习 595 第13章 JDBC编程 596 13.1 JDBC基础 597 13.1.1 JDBC简介 597 13.1.2 JDBC驱动程序类型 598 13.2 SQL语法介绍 599 13.2.1 安装数据库 599 13.2.2 关系数据库基本概念和MySQL基本命令 601 13.2.3 SQL语句基础 603 13.2.4 DDL语句 604 13.2.5 DML语句语法 618 13.2.6 select语句和SQL函数 620 13.2.7 分组和组函数 627 13.2.8 多表连接查询和子查询 629 13.3 JDBC的典型用法 635 13.3.1 JDBC常用接口和类简介 635 13.3.2 JDBC编程步骤 637 学生提:前面给出的仅是MySQL和Oracle两种数据库的驱动,我看不出驱动类字符串有什么规律啊。如果我希望使用其他数据库,我怎么用其他数据库的驱动类呢?637 13.4 执行SQL语句的方式 639 13.4.1 使用executeUpdate执行DDL和DML语句 640 13.4.2 使用execute方法执行SQL语句 642 13.4.3 使用PreparedStatement执行SQL语句 644 13.4.4 使用CallableStatement调用存储过程 650 13.5 管理结果集 652 13.5.1 可滚动、可更新的结果集 652 13.5.2 处理Blob类型数据 654 13.5.3 使用ResultSetMetaData分析结果集 660 13.6 事务处理 663 13.6.1 事务的概念和MySQL事务支持 663 13.6.2 JDBC的事务支持 665 13.6.3 批量更新 667 13.7 分析数据库信息 668 13.7.1 使用DatabaseMetaData分析数据库信息 668 13.7.2 使用系统表分析数据库信息 670 13.7.3 选择合适的分析方式 671 13.8 使用连接池管理连接 671 13.9 本章小结 673 本章练习 673 第14章 Annotation(注释) 674 14.1 基本Annotation 675 14.1.1 限定重写父类方法:@Override 675 14.1.2 标示已过时:@Deprecated 676 14.1.3 抑制编译器警告:@SuppressWarnings 677 14.2 自定义Annotation 677 14.2.1 定义Annotation 677 14.2.2 提取Annotation的信息 679 14.2.3 使用Annotation的例子 680 14.3 JDK的元Annotation 685 14.3.1 使用@Retention 685 14.3.2 使用@Target 686 14.3.3 使用@Documented 686 14.3.4 使用@Inherited 687 14.4 使用APT处理Annotation 688 14.5 本章小结 693 第15章 输入/输出 694 15.1 File类 695 15.1.1 访文件和目录 695 15.1.2 文件过滤器 697 15.2 理解Java的IO流 698 15.2.1 流的分类 698 15.2.2 流的概念模型 699 15.3 字节流和字符流 700 15.3.1 InputStream和Reader 701 15.3.2 OutputStream和Writer 703 15.4 输入/输出流体系 705 15.4.1 处理流的用法 705 15.4.2 输入/输出流体系 706 15.4.3 转换流 708 学生提:怎么没有把字符流转换成字节流的转换流呢? 708 15.4.4 推回输入流 710 15.5 重定向标准输入/输出 711 15.6 Java虚拟机读写其他进程的数据 713 15.7 RandomAccessFile 716 15.8 对象序列化 720 15.8.1 序列化的含义和意义 720 15.8.2 使用对象流实现序列化 720 15.8.3 对象引用的序列化 723 15.8.4 自定义序列化 728 15.8.5 另一种自定义序列化机制 733 15.8.6 版本 735 15.9 Java新IO 736 15.9.1 Java新IO概述 736 15.9.2 使用Buffer 737 15.9.3 使用Channel 740 15.9.4 编码集和Charset 743 15.9.5 文件锁 745 15.10 本章小结 747 本章练习 747 第16章 多线程 748 16.1 线程概述 749 16.1.1 线程和进程 749 16.1.2 多线程的优势 750 16.2 线程的创建和启动 750 16.2.1 继承Thread类创建线程类 751 16.2.2 实现Runnable接口创建线程类 752 16.2.3 两种方式所创建线程的对比 754 16.3 线程的生命周期 754 16.3.1 新建和就绪状态 754 16.3.2 运行和阻塞状态 756 16.3.3 线程死亡 757 16.4 控制线程 758 16.4.1 join线程 758 16.4.2 后台线程 759 16.4.3 线程睡眠:sleep 760 16.4.4 线程让步:yield 761 16.4.5 改变线程优先级 762 16.5 线程的同步 764 16.5.1 线程安全题 764 16.5.2 同步代码块 766 16.5.3 同步方法 767 16.5.4 释放同步监视器的锁定 770 16.5.5 同步锁(Lock) 770 16.5.6 死锁 772 16.6 线程通信 774 16.6.1 线程的协调运行 774 16.6.2 使用条件变量控制协调 778 16.6.3 使用管道流 780 16.7 线程组和未处理的异常 782 16.8 Callable和Future 785 16.9 线程池 787 16.10 线程相关类 789 16.10.1 ThreadLocal类 789 16.10.2 包装线程不安全的集合 791 16.10.3 线程安全的集合类 792 16.11 本章小结 792 第17章 网络编程 793 17.1 网络编程的基础知识 794 17.1.1 网络基础知识 794 17.1.2 IP地址和端口号 795 17.2 Java的基本网络支持 796 17.2.1 使用InetAddress 796 17.2.2 使用URLDecoder和URLEncoder 797 17.2.3 使用URL和URLConnection 798 17.3 基于TCP协议的网络编程 806 17.3.1 TCP协议基础 806 17.3.2 使用ServletSocket创建TCP服务器端 807 17.3.3 使用Socket进行通信 807 17.3.4 加入多线程 810 17.3.5 记录用户信息 813 17.3.6 使用NIO实现非阻塞Socket通信 823 17.4 基于UDP协议的网络编程 829 17.4.1 UDP协议基础 829 17.4.2 使用DatagramSocket发送、接收数据 829 17.4.3 使用MulticastSocket实现多点广播 834 17.5 使用代理服务器 845 17.5.1 直接使用Proxy创建连接 845 17.5.2 使用ProxySelector选择代理服务器 847 17.6 本章小结 849 本章练习 849 第18章 类加载和反射 850 18.1 类的加载、连接和初始化 851 18.1.1 JVM和类 851 18.1.2 类的加载 852 18.1.3 类的连接 853 18.1.4 类的初始化 853 18.1.5 类初始化的时机 854 18.2 类加载器 855 18.2.1 类加载器简介 856 18.2.2 类加载机制 857 18.2.3 创建并使用自定义的类加载器 858 18.2.4 URLClassLoader类 862 18.3 通过反射查看类信息 863 18.3.1 获得Class对象 863 18.3.2 从Class中获取信息 864 18.4 使用反射生成并操作对象 868 18.4.1 创建对象 868 18.4.2 调用方法 870 18.4.3 访属性值 873 18.4.4 操作数组 874 18.5 使用反射生成JDK动态代理 875 18.5.1 使用Proxy和InvocationHandler创建动态代理 876 18.5.2 动态代理和AOP 878 18.6 反射和泛型 882 18.6.1 泛型和Class类 882 18.6.2 使用反射来获取泛型信息 884 18.7 本章小结 885 本章练习 886

16,557

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧