实现应用程序的文件拖放功能

实现应用程序的文件拖放功能,第1张

在Delphi中有许多控件支持拖放 *** 作 但仅限于 应用程序内部 而不能实现从Windows环境里向应用程序拖放文件 本文将要介绍的就是如 何用Delphi编写支持文件拖放的应用程序 由于主要使用WindowsAPI函数 因此也可供其 它语言使用者参考

首先要说明的是下面的三个API函数 为通用起见 函数说明使用C语言格式

VOIDDragAcceptFiles(

HWNDhWnd

BOOLfAccept);

DragAcceptFiles函数是用来为拖放文件作初始化 它的第一个参数hWnd指明目标窗体的句柄 第二个参数fAccept是一个布尔型变量 为True时 则hWnd所指向的窗体可以接受拖放的文件

UINTDragQueryFile(

HDROPhDrop

UINTiFile

LPTSTRlpszFile

UINTcch)

DragQueryFile函数用来查询拖放文件的文件名 其 本身的返回值是一个无符号整数 参数hDrop是一个存放所拖放文件名称的数据结构的句柄 也就是文件名缓冲区的句柄 需要从Windows消息WM_DROPFILES中获得 iFile指明所要查询 文件的序号 它有两种取值方式 值为十六进制数FFFFFFFF时 DragQueryFile的返回值为 所拖放文件的数目; 值在 到拖放文件总数之间时 DragQueryFile函数将相应序号的文件 名放入参数lpszFile所指向的缓冲区内 若此时lpszFile的值为NULL 则DragQueryFile会返 回相应文件名的长度 参数cch决定缓冲区的长度 由于Windows 支持长文件名 它的值不能 设得太小

VOIDDragFinish(HDROPhDrop);

使用DragFinish函数告诉Windows拖放 *** 作结束 使 其释放文件名缓冲区 它的参数hDrop与DragQueryFiles函数中的一样 也由Windows消息WM_DROPFILES 的hDrop参数获得

下面将结合一个我编写的例子来说明具体的编程 步骤 本例中窗体上放置了一个Memo控件memo 在Windows中选取数个文件拖至程序窗体 放下 则memo 中便会显示所选文件的总数及每个文件的各自名称 程序代码如下:

unitUnit ;

interface

uses

Windows Messages SysUtils Classes

Graphics Controls Forms Dialogs

StdCtrls;

type

TForm =class(TForm)

Memo :TMemo;

procedureFormCreate(Sender:TObject);

procedureLabel Click(Sender:TObject);

procedureLabel Click(Sender:TObject);

private

PROCEDUREFinishDropped(Varmsg:TMessage);

MessageWM_DropFiles;

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Form :TForm ;

implementation

usesshellapi;

{$R DFM}

pro   ureTForm FormCreate(Sender:TObject);

begin

//initializethedragprocess;

DragAcceptFiles(Handle True);

end;

ProcedureTForm FinishDropped(Varmsg:TMessage);

Var

hDrop:THandle;

iFile:Uint;

lpszFile:pchar;

CountOfFiles:integer;

FileIndex:integer;

ReSults:string;

begin

hDrop:=Msg WParam;

getmem(pchar );

iFile:=$FFFFFFFF;

CountOfFiles:=DragQueryFile(hDrop iFile lpszFile );

ReSults:=;

forFileIndex:= CountOfFiles do

begin

iFile:=FileIndex;

DragQueryFile(hDrop iFile lpszFile );

//GettheFilename yorder;

ReSults:=ReSults+# # +lpszFile;

end;

Dispose(lpszFile);

memo Clear;

memo lines add(拖放了+IntToStr

(CountOfFiles)+个文件:+ReSults);

DragFinish(hDrop);

end;

end

从以上代码可以看出 首先应该在窗体的OnCreate事 件中用DragAccepteFiles来说明程序窗体支持文件的拖放

另外 除了调用以上 个API函数 在Delphi中还应 编写针对WM_DROPFILES的消息处理过程FinishDropped 截取了WM_DROPFILES 由其wParam 才能够得到文件名缓冲区的句柄

在FinishDropped过程里 有两处DragQueryFile 函数 第一处其iFile参数为$FFFFFFFF 得到拖放文件的总数;第二处iFile参数为每个文 件的序号 则可在lpszFile中可得到相应的文件名 当然 为了明显的对比iFile的值对DragQueryFile 函数的影响 这里的代码不够简练 有一点需要注意的是 lpszFile是Pchar型的变量 为了 程序运行安全 它使用前需用getmem过程为其分配内存 使用后再用dispose过程将其释放 在FinishDropped过程的最后 用DragFinish函数释放文件名缓冲区

lishixinzhi/Article/program/Delphi/201311/24695

对编程者来说,VB很容易上手,但要深入、灵活地驾驭它还要下一番功夫。笔者在这里介绍几个较为典型的编程技巧,希望能对广大VB爱好者有所帮助。

一怎样创建自定义的光标

1当在设计一个应用程序时,Visual Basic允许程序员将许多控件的MousePointer属性设计成12个预先定义好的鼠标光标之一。然而,有些程序员或许会希望显示一个预定义形状之外的光标。本文说明如何创建一个不同的鼠标指针(光标),包括为一个没有MousePointer属性的控件创建光标。

要在Visual Basic应用程序中将光标(鼠标指针)改变成个不同的形状,可以添加代码来改变希望监视的控件的MouseMove和DragOver事件。

MouseMove事件所包含的代码用于触发该控件的Drag方法。当鼠标在被选中的控件上移动的时候,轮流显示新的鼠标指针。当鼠标指针离开该控件时,则DragOver事件被触发。在Visual Basic程序中,可以重新复位此Drag属性,以便以前的鼠标指针能够被再次显示出来。

2下面的样例程序实现当鼠标指针移动到一个文件列表框控件上时,将其改变成不同的形状。

首先采用缺省的方法建立Form1。在Form1上添加一个文件列表框控件,采用缺省的方法建立File1。将File1控件的DragIcon属性设置为所选择的ICO文件。

将如下代码添加到File1的MouseMove事件中:

Private Sub File1-MouseMove(ButtonAs

Integer, Shift As Integer, X As Single, Y As Single)

File1Drag 1 ''icon on

End Sub

---- 将如下代码添加到Form1的DragOver事件中:

Private Sub Form-DragOver(Source As Control,

X As Single, Y As Single, State As Integer)

File1Drag 0 ′icon off

End Sub

按下F5功能键执行此程序。得到的运行结果是:将鼠标指针移动到该文件列表框控件上时,程序将把所选中的ICO文件作为缺省的鼠标光标;将鼠标指针离开该控件时,光标则会自动恢复为缺省的形状。

二怎样在窗体上点鼠标右键产生一个d出式选单(PopUp Menu)?

大家都知道,在Windows95/98/2000的桌面和许多流行软件的视窗中,当我们点鼠标右键时,会在鼠标的当前位置d出一个快捷选单。许多爱好编程的朋友是不是也希望能在自己的程序里有类似的功能呢?其实,这并不困难。笔者经过一番努力,在VB下找出一个通用的方法,供大家分享。

要实现上述功能,需分两个步骤:

1 利用VB的选单我器(Menu Editor)我你希望d出的选单及子选单,注意,要将选单的Visible属性设置为:False。

2 在窗体(Form1)的MouseDown事件中编写程序,来激发我好的选单,假设选单名为PopMenu,程序源码如下:

Private Sub Form-MouseDown

(Button As Integer, Shift As Integer,

X As Single, Y As Single)

If Button = vbRightButton Then

PopMenuVisible = True

PopupMenu PopMenu

End If

End Sub

上述方法是针对窗体的,我们也可以针对任意控件,用鼠标右键点击控件时,也d出一个快捷选单。方法也很简单,只要把上述代码放到相应控件的MouseDown事件中,就可以了。

三怎样动态地在窗体上判断某区域内是否有控件存在?

在笔者的一个小程序中,想在窗体的某个区域输出数据,这就要求在这个区域内不能有其他控件存在,那么,怎么才能知道在窗体的某个区域内,是否有控件存在呢?

为了判断在窗体的某个区域中,是否含有控件,我们可以利用以下VB程序来实现:

Function GetControl(x1 As Single, y1 As Single,

x2 as Single, y2 as Single) As Control

Dim Control as Control

For Each Control In Form1

With Control

If (x1 〈= Left) And (x2 〉= Left) And _

(y1 〈= Top) And (y2 〉= Top) Or _

(x1 〈=Left + Width) And (x2 〉= Left + Width) And _

(y1 〈= Top) And (y2 〉= Top) Or _

(x1 〈= Left) And (x2 〉= Left) And _

(y1 〈= Top + Height) And (y2 〉= Top + Height) Or _

(x1 〈= Left + Width) And (x2 〉= Left + Width) And _

(y1 〈= Top + Height) And (y2 〉= Top + Height) Then

Set GetControl = Control

Exit Function

End If End With

Next

Set GetControl = Nothing

End Function

注:(x1, y1)和(x2, y2)分别为选定矩形区域的左上角和右下角点的坐标值。

该程序通过计算窗体上所有控件的四个角的位置来判断控件是否与选定区域相交,并返回相交的控件。

1IE Tab,这个肯定得要,中国网站不合规范的还是很多,有时这个没有不行

2Tab Mix Plus或者Tab Mix Lite,二选一(Tab Mix Plus似乎更强大,从名字可以看出来),个人认为必装。有了这其中之一,就可以自己定制有关标签页打开,关闭,跳转,恢复……各种强大功能,真正让你感受标签的强大。还可以让浏览器严格地执行单窗口模式,不像IE7,就算设了新页面由新标签打开,有时还是会出新窗口。此外,加了插件后,还多出了恢复已关闭标签页的功能(就像傲游和TT那样的功能,不过傲游和TT是学这个的),不过要在自定义工具栏中把这个按钮拖出来。

Tab Mix Plus还有加强版的会话恢复功能(Tab Mix Lite没用过,不知道有没有),如果Firefox遇错误崩溃,下次打开方便找回。我经常用的是每次开Firefox都询问是否恢复上次标签,无论是否出错。这样方便继续前一天的事务。

3Xmarks,在线保存和同步书签(IE里的收藏夹),这样到哪只要连上网都可以找到书签,很方便。而且办公室和家里电脑可以同步,包括手动或自动,还可以选择哪部分只有家里,哪部分只有办公室有。

4Download Status Bar,Firefox自带的下载工具默认要显示个下载状态窗口,比较烦,这个可以让下载状态显示在浏览器底部的一条工具栏上,还可以选择mini模式,显示在浏览器本身状态栏中的一条块上。

5Download Helper,可以下载各种隐藏的文件,最主要的功能就是下载各种视频网站的FLV视频啦。有了它,其他同类软件或者网站都不需要了。它支持网站简直BT地多。还有很多其他功能,比如搜索视频(包括XXOO类哦,嘿嘿),从它支持的网站列表中也可以发现很多东西。

以下的我都没有装,但是用的人非常多。

6Adblock Plus,用于阻止d出网页,以及各种广告之类,比如浮动广告。Firefox插件下载量排名第一。不过我是没装这个,因为Firefox本身就可以阻截几乎所有d出网页了。而对于其他的浮动广告什么的,我无所谓。

因为迅雷有Firefox的插件,所以我就没有安装下面这两个。迅雷好像不能实现IE中那种鼠标左键点击自动关联下载,不过可以右键点击“用迅雷下载”。对于迅雷专用连接,默认安全级别下,左键点击,Firefox可能会跳出一两个个提示警告,得点“允许”。

7FlashGot,很多下载软件不支持在Firefox中直接点击下载,或者一些下载链接被网页隐藏了。这个插件就是用来让外部软件能够下载这些东东。它也可以完成Download Helper那样的抓取视频、音乐的功能。

8DownThemAll!,下载工具,只不过是内嵌在Firefox中的。

9NoScript,现在很多网页都有脚本文件,可以用来运行些小程序,或者安装浏览器插件。但是有的网页上的脚本没什么用,又影响速度,甚至有恶意脚本代码。NoScirpt就是针对各种脚本的。具体怎么用我不太清楚,你可以自己试下。

101-clickweather,在状态栏显示天气,并可以通过它方便地打开网页查看世界各地的天气情况。

11Firegestures,一个比较流行的鼠标手势扩展。

12All-in-One Sidebar,把下载,查看源代码等功能也整合到收藏、历史的那个侧边栏中。

Private Enum MENUINFO_STYLES

MNS_NOCHECK = &H80000000

MNS_MODELESS = &H40000000

MNS_DRAGDROP = &H20000000

MNS_AUTODISMISS = &H10000000

MNS_NOTIFYBYPOS = &H8000000

MNS_CHECKORBMP = &H4000000

End Enum

Private Enum MENUINFO_MASKS

MIM_MAXHEIGHT = &H1

MIM_BACKGROUND = &H2

MIM_HELPID = &H4

MIM_MENUDATA = &H8

MIM_STYLE = &H10

MIM_APPLYTOSUBMENUS = &H80000000

End Enum

Private Type MENUINFO

cbSize As Long

fMask As MENUINFO_MASKS

dwStyle As MENUINFO_STYLES

cyMax As Long

hbrBack As Long

dwContextHelpID As Long

dwMenuData As Long

End Type

Private Declare Function GetMenuInfo Lib "user32" (ByVal hMenu As Long, mi As MENUINFO) As Long

Private Declare Function SetMenuInfo Lib "user32" (ByVal hMenu As Long, mi As MENUINFO) As Long

Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Private Sub Form_Load()

Dim MyMenu As MENUINFO

MyMenucbSize = Len(MyMenu)

MyMenufMask = MIM_BACKGROUND Or MIM_APPLYTOSUBMENUS

MyMenuhbrBack = CreateSolidBrush(vbRed)

SetMenuInfo GetMenu(Mehwnd), MyMenu

End Sub

<body

oncopy="return false" --禁止拷贝

onselect="return false" --禁止选择

oncut="return false" --禁止剪贴

ondragstart="return false" --禁止拖动

onselectstart="return false" --禁止选择开始

>

方法:用鼠标点击“工具”中的“Internet选项”菜单,选择“安全”选项卡,接下来点击“自定义级别”按钮,在d出的窗口中往下拉,找到“脚本”一项,将“java小程序脚本”和“活动脚本”设为禁用,确定。刷新

这样就可以保存或复制!

这篇文章使我回想起我的窗口管理器/桌面环境的切换历程, 我用 linux 至今至少 7 年, 而长期使用 (每日绝大部分使用电脑时间) 也有三年半 用过了好些著名的桌面环境: FVWM, KDE, GNOME, XFCE, 还有其他短期使用的不知名的咚咚一开始我使用的是 FVWM, 因为当时有资料说有个 FVWM95 能作出 windows 一样的界面, 我竟然真的成功地配置好除中文外的所有东西, 使用起 FVWM 但是我当时完全是按 windows 的思维使用这东西的, 当然处处碰壁, 痛苦无比接着使用的 ``真正能用'' 的是 KDE 那时 KDE 已经相当完善, 整个架子跟现在相去不远 提供的功能以及可定制性已经比当时的 windows 还好, 而且还有一大堆小游戏可玩 记忆中我是在一个叫 winlinux 的发行版上使用它的, 记忆中它的唯一问题是中文 --- 只要设成中文界面, 全部乱码, 我猜那时候只要我弄个中文字体进去, 一切就完美了, 可惜那时我还不会 当时 (2000 年前后) 的 GNOME 在我眼里还是只丑小鸭, 一点都不起眼后来准备上大学的时候在新机器上用的是经典中的经典: Redhat 9 redhat 的推荐/默认桌面环境是 gnome, 但我还是选择我我熟悉的 KDE 安装过程中对 GNOME 和 KDE 的介绍刻意地保持一模一样, 我也去尝试过 GNOME, 在 Redhat 的刻意包装下, 初始使用感觉, GNOME 跟 KDE 其实没啥差别 那我更不会作 switch, 一直使用这 KDE很多人说 KDE 是 windows style 的, GNOME 是 mac style 的, 确实有一定的道理 KDE 并非刻意模仿 windows 的用户界面和使用风格, 而是走着一条和 windows 一样的路: 不断地追求功能强大, 设置丰富, 让系统显得更加强大, 以吸引用户 我很喜欢它的文件管理器 konqueror, 它确实比 windows 的 explore 还强大, 功能让我眼花缭乱, 一个让我非常着迷的特性是当你将一个文件拖动到一个文件夹时, 它会非常 ``人性化'' 地询问, 你是想移动到这里, 复制到这里, 还是做个符号链接 我觉得这做得很细致贴心, 在数年之后, 在我成为系统维护, 不断强迫自己以大部分用户而不是仅以自己的角度思考用户界面的时候, 我才发现它的问题所在我就这样用 KDE 用了很久, 到后来王垠向我们介绍了FVWM --- 我对这东西有阴影, 总觉得它是上个世纪刚用 linux 的那个黑暗时代的痛苦根源 但王垠的介绍确实很诱人: 速度(KDE确实越来越慢了), 完全可定制的键盘快捷键等 (后来版本的 KDE 也有了这个功能) 都是我需要的, 那时候我也不那么惧怕写配置文件了, 下载了王垠自己的配置文件, 改一改, 附上个 KDE 的 panel, 上手后确实比 KDE 用的要方便 之后的一段时间我热衷于FVWM配置 FVWM 仅仅是一个窗口管理器, 除了基本的窗口管理外, 几乎什么都不提供(除非使用那些不怎么好用的模块), 你可以用各种各样的外部小程序去武装它, 将它弄得非常强大 (其实 GNOME 也是这么武装起来的, GNOME 核心的窗口管理器, 现在是 metacity) UNIX 系统的开放性使这种砌积木的工作简单而有趣 到最后, 我的桌面无比强大和花哨, 窗口最小化之后会有缩略图, 像 MacOSX 一样, 而且是以我喜欢的方式而不是 mac 的方式排列的, 也是我用过的最顺手的桌面 (当然了, 完全是我一点一点写出来的), 我也在这个时候养成了一切事情用键盘快捷键而不用鼠标的习惯, 一般人根本不敢碰我的键盘, 不知道一不小心又会触发什么FVWM 有 FVWM 的问题, 它过于灵活, 过于强大, 你似乎是在自己买来一堆零件, 然后以天才的工程思维拼凑自己专用的机器, 这样 1) 这种事其实没几个人能做 2) 即使对工程天才, 这也是件费神的事 3) 总有一天你会厌倦的 你换个桌面要先做个格式转换, 然后爬去改配置文件, 你不小心升级了某个部件, 发现使用不正常了, 你要自己去检查所有的 log 和配置, 找出问题所在 这令我非常头痛, 但我实在无法舍弃这精心配置出来的顺手无比的环境, 但是用得越久, 这个问题就越严重, 直到某一天无法承受 我想起 Ken Thompson 评论 UNIX 牌汽车 (UNIX Haters Handbook 里面的笑话): 有经验的用户知道这是怎么回事 是的, 我知道怎么回事, 但是即使是天才汽车工程师也不愿骑着一个发动机加自己设计的传动部件满街跑, 他也希望开一台舒服的自动档汽车我的机器在使用 FVWM 的同时, 我家里的机器用的是 XFCE 因为家里的机器台烂, 跑 KDE 已经有点吃力, 而将 FVWM 的配置和它要使用的那一堆小部件一起移到家里的机器上, 是几乎不可能的 XFCE 是一个轻便的桌面环境, 也有相当的可配置性, 我也在不久之后找到了如何配置快捷键启动程序, 但 XFCE 也有一些我无法理解的地方 --- 为什么快捷键最多只能设置十个 以我自己的经验, 这其中不应存在太多技术问题 (用一个 16bit 的咚咚去标识一个功能可以用哪些快捷键启动), 既然允许设置快捷键, 为什么不允许设置更多 是的, 普通用户可能根本用不上这 10 个快捷键, 但是允许设置更多快捷键的能力并不会影响普通用户的正常使用, 那为什么要做这个限制呢 类似的问题还有很多 另外 XFCE 对普通用户的一些习惯做了颠覆, 比如不可以放置桌面图标 (42 之前的版本), 是的, XWINDOW 传统习惯中, 最小化一个程序叫 iconfy, 将程序缩成桌面上的图标, 桌面上当然也不能放其他东西 (这也是 win 3x 时代的习惯, 是否也是 mac 的习惯 未调查过), 但是, XFCE 的程序最小化是放到任务栏的, 桌面会空无一物, 却依然不允许放桌面图标 对于这种半吊子事情, 我们知道它的渊源, 也可以马马虎虎对付过去, 但对其他普通用户来说, 它会失去一个很有效率的功能 --- 这不是一个能用 ``不同的系统, 不同的 *** 作习惯'' 就能解释的问题, XFCE 因为这个缺乏了一个能快速访问频繁使用的文档的能力, 你找不到替代品但 XFCE 还不失为一个好的桌面环境, 因为它快, 使用简单, 能满足普通用户的基本要求, 然后 就没有了 这样的话, 它可能是一个很好的替代品 (替代 GNOME), 却很难让人喜欢它, 将它作为第一选择说回我的机器, FVWM 实在用不下去了, 为了让 FVWM 保持正常, 我强制了好些组件不去更新, 凑合着过 到最后我终于换回了 KDE, 此时我也发现了 KDE 也有设置程序启动快捷键的功能, 经过一天的配置, 我换回了 KDE 顺便说以下这个设置启动快捷键功能的 bug, 你要在菜单栏里设置某个菜单项的启动键, 之后, 如果你把这个菜单项删掉, 你就永远也不能用这个启动键了, 你得到配置目录的某个深处, 手动删掉文件中的某几行才能恢复正常 是的, 我知道问题所在, 也知道怎么弄好它, 但这种``小''问题让我非常恼火长期使用配置文件来配置环境, 用 KDE 图形化的控制中心, 我反而有点不知所措了 我也第一次了解到 KDE ``强大'' 的代价, KDE 的配置中心使用了一个树型的配置列表, 可以调整几乎一切配置 但是, 我想调整一个鼠标是单击打开文件还是双击打开, 我不知道是在 ``窗口行为'' 里, ``桌面'' 里, ``附加设备'' 的 ``鼠标'' 里做这个设置 如果我想设置 KDE 像 mac 一样把菜单栏显示在桌面顶端, 我不知道这是属于 ``外观'', ``桌面'' 还是 ``窗口行为'' 就这样, 我要设置任何东西, 找个半天, 看得头昏眼花这时候我也对 KDE 的一些 ``贴心'' 设计产生怀疑 如文章开始时说的文件移动问题 我重新思考这个问题是因为 BBS 的一位站务希望 BBS 有某个新功能, 我拒绝了, 因为加入了这个功能会使用户产生迷惑, 在解释时我就想到了 KDE 的这个例子: drag-and-drop 来源于实际生活中的移动物体, 把一个文件移到别处, 可以用 drag-and-drop, 就像实际生活中那样简便地完成 在实际生活中, 移动东西就是移动东西, 这个语义是非常明确的, 而 KDE 在用 drag-and-drop 移动文件时, 反而会问你: 你要复制它, 移动它还是建立链接 用户会迷惑, 而且会不耐烦: 我都已经这么移了, 你说我除了移动文件还想干嘛 再说, 在实际生活中, 如果你把电脑挪个窝, 你就有两台电脑, 看你会不会疯掉! 这就是这些所谓 ``贴心'' 设计的问题, 它的这些功能纯属画蛇添足, 跟 windows 那些毫无营养的对话确认有一拼 这可以参考关于用 winxp 武装的厕所等笑话, 可是令人惊讶的是, vista 把这些毫无营养的对话, 自作聪明的 ``贴心功能'' 发挥到极致, 据说 KDE 的这种特性也出现在 vista 上了 在这里衷心祝愿 KDE 不要再跟 vista 学坏了KDE 在技术上一直高歌猛进, KDE 40 有许多让人激动不已的新特性 在很久以前, 在某个对 KDE 开发者的访谈中谈到 KDE 40 是否会加入桌面搜索特性, 并举出其他竞争者的努力, 我记下了开发者的这样的话(抱歉我很懒, 没有去找原文, 迟些补上): 现在的问题并不是我们要怎么去搜索文件, 而是改变我们的文件存储和表达方式, 让信息更容易组织和查找 从此足可见 KDE 开发者在技术上的独到眼光 KDE 40 的一些特性, 比如 native 的矢量图形支持等, 都是革命性的, KDE 40 实在值得期待 但也希望 KDE 能够下力气去做好技术上没啥难度的提升用户体验的工作, 技术上再激动人心, 也就是我们这些 geeks 知道而已可是, 我们得知道, 通常来说, GNOME 这样的软件, 其目标用户不是我, 更不是 Linus 它的目标用户讨厌使用键盘 *** 作, 不可能记忆那么多快捷键; 它的用户都用普通的三键鼠标, 也觉得右键菜单很有用, 并且不知道中键有什么用 --- 我也想知道 Linus 同学对 mac 只有一个键的鼠标的评价, 哈哈 所以 Gnome 根本用不着为我们设计这些东西Gnome 对普通用户来说, 已经做得很好了 它在很多地方学习了 MacOS, 甚至有的界面是完全一样的 它并不提供很多的选项, 但对已经受够了 KDE 的控制中心的我来说, 觉得它倒是恰到好处 比之复杂而且强大的 KDE 来说, Gnome 走的是另一条路: 越来越简单, 功能满足普通人需要即可, 但幸好它比 XFCE 要强大和丰富, 不至于走向极端功能和配置的简单也有它的问题, 用户有时候无法做更细致的调整了 比如想要模拟 Mac 机, 换上主题后, 在 gnome 的配置界面里你是无法调整窗口按钮的位置的 --- 而这个功能在 XFCE 和 KDE 中都能直接完成 你得使用一个类似 windows 中注册表编辑器的 gconf-edit, 找到那个选项, 手动调整 这是一种很常用的同时满足普通人群和高级人群的做法: 把简单常用的东西摆在前台, 让 geeks 到后台去造它们奇怪的机器去吧 这其实也跟 windows 常见的 ``Advanced >>'' 按钮一个道理 但我总还觉得这个办法并不完全合适, 即使别人用不着, 我也想有个工具能舒舒服服地摆弄我的设置, 而不用去对付那个选项编辑器 即使别人用不着, 我也希望它有某些更强大的功能我觉得一个可参考的例子是 firefox, firefox 的魅力在它的插件 firefox 提供基本的网页浏览功能, 用插件的方式支持其他许多奇怪的功能 普通用户用着基本的浏览器, 高级用户 --- 或者我们应该避开这个说法, 应该说是有特殊要求的用户, 他们不一定精通电脑 --- 也不需经历痛苦就能获得扩展的高级功能 譬如 Fasterfox 插件只是去调整一些细微的选项, 如果你愿意, 你可以自己在 about:config 中调整这些选项的 但 Fasterfox 令这个过程变得简单, 使有这样需求的用户都能轻易地完成, 这使它成为最有价值的插件之一 Gnome 在功能和配置上, 也可以提供一个最简单的基本系统和基本配置, 并留足可扩展的接口, 让各种各样的扩展插件去完成高级功能 而 Gnome 现在似乎还没有一个可与 firefox 相比的插件支持系统Gnome 的 *** 作也极尽简单, 直接, 当然不会有 KDE 那种让人迷惑的问题 但电脑毕竟很笨, 你的 *** 作太简单, 它有时候不明白 比如: 把光盘目录中的某个文件拖放到硬盘, Gnome 当然知道你这时是要复制文件而不是移动(因为移动是不可能的), 它也确实是这么做的 在 U 盘目录中做同样的事情, Gnome 也认为是复制 --- 是啊, U 盘是移动存储空间, 用来交换文件, 我这么一个拖放不能把原来的给删了啊 很好, 但已经觉得有点问题的苗头了 现在, 你把硬盘上一个分区的东西拖放到另一个分区上, 它给你做的是复制! UNIX 的分区 mount 机制本来是非常美妙的, 给它这么一弄就很倒胃口了 我们知道这时什么原因 但普通用户呢 它甚至不能像在 windows 一样看出两个目录在不同的分区, 他的观感就是: 同一个 *** 作, 移到不同的目录会有完全不同的结果, 这样的一个系统是根本无法接受的 那解决方法呢 不同分区移动的时候询问用户到底想干嘛 这会比 KDE 更糟, 因为这样的询问有时候出现有时候不出现(同分区移动时), 用户无法接受反复无常的系统尽管如此, Gnome 还是至今我最满意的一个桌面环境, 我也希望它能够越做越好 系统很难摸清 于是要不就提供一大堆选项, 问一大堆问题, 搞清楚用户到底想干嘛; 要不就按大部分用户大部分情况下的语义, 自动地给完成了 这两种方法都有它的问题 而要完全地解决这个问题, 在我看来非常困难, 现在的情况大抵是: 既然系统没法知道用户的意思, 就让用户顺着系统的脾性来, 等用户养成习惯了, 就会反过来觉得这个系统真贴心 这决不是解决问题的方法

电脑的140个技巧1 重装Windows XP不需再激活

如果你需要重装Windows XP,通常必须重新激活。事实上只要在第一次激活时,备份好Windows\System32目录中的Wpadbl文件,就不用再进行激活的工作了。在重装Windows XP后,只需要复制该文件到上面的目录即可。

2 如何知道自己的Windows XP是否已激活

打开开始→运行,在d出的对话框中输入:oobe/msoobe /a,回车后系统会d出窗口告诉你系统是否已经激活。

3 关闭zip文件夹功能

你是不是觉得Windows XP中的zip文件夹功能太慢,功能也不吸引人?如果是这样,你可以打开开始→运行,在d出的对话框中输入:regsvr32 /u zipfldrdll,回车后即可关闭ZIP文件夹功能。

4让Windows XP也能刻ISO文件

Windows XP没有提供直接刻录ISO文件的功能,不过你可以下载一个第三方插件来为系统增加这个功能。

5 登陆界面背景变变色

打开注册表编辑器,找到[HKEY-USERS\DEFAULT\Control Panel\Colors],将Background的值改为“0 0 0”(不带引号),这样登录背景就成了黑色。

6完全卸载XP

有些朋友在安装Windows XP后发现自己并不喜欢这个 *** 作系统,这时你可以用Windows 98安装光盘启动到DOS状态,然后键入:

format -ur

这样可以删除所有XP的文件,并可重新安装Windows 98/Me。

7 系统救命有稻草

当怀疑系统重新启动之前针对计算机所进行的更改可能导致故障,可以在启动系统时按F8键,选择“最后一次正确的配置”来恢复对系统所做的更改。

8 恢复硬件以前的驱动程序

在安装了新的硬件驱动程序后发现系统不稳定或硬件无法工作时,只需在“设备管理器”中选择“驱动程序恢复”按钮,即可恢复到先前正常的系统状态。但不能恢复打印机的驱动程序。

9 自动登陆

单击开始→运行,输入“rundll32netplwizdll,UsersRunDll”(不带引号),然后在User Accounts中取消“Users must enter a user name and password to use this computer”,单击“OK”,接着在d出的对话框中输入你想自己登陆的用户名和密码即可。

10快速关机或重启的快捷键(可定时)

在桌面点击鼠标右键,选择新建(快捷方式,在d出的向导中输入位置为:C:\WINDOWS\system32\shutdownexe -s -t 10(其中的-s可以改为-r,也就是重新启动,而-t 10表示延迟10秒,你可以根据自己的需要更改这个数字)。制作完这个快捷键后,按照上面的方法为它指定一个图标。这个快速关机或重启的技巧会显示一个比较漂亮的对话框提示关机(重启),而且你可以在后面加上“-c 我要关机啦!”,这样这句话会显示在对话框中,当然文字你可以随意写,但要注意不能超过127个字符。

11关机、重启只要1秒钟

如果你想让Windows XP瞬间关机,那么可以按下CTRL+ALT+DEL,接着在d出的任务管理器中点击“关机”→“关机”,与此同时按住CTRL,不到1秒钟你会发现系统已经关闭啦,简直就在眨眼之间。同样道理,如果在“关机”菜单中选择“重启”,即可快速重启。

12 寻找丢失的快速启动栏

把鼠标移到任务栏的空白区域,单击右键从d出的菜单中选择“属性”,在d出的窗口中选择“任务栏”选项卡,再从“任务栏外观”框中把“显示快速启动”的复选框选中,“确定”就行了。

13 批量文件重命名

Windows XP提供了批量重命名文件的功能,在资源管理器中选择几个文件,接着按F2键,然后重命名这些文件中的一个,这样所有被选择的文件将会被重命名为新的文件名,在末尾处加上递增的数字)。

14 快速锁定计算机

在桌面上单击鼠标右键,在随后出现的快捷菜单上选择新建“快捷方式”,接着系统便会启动创建快捷方式向导,在文本框中输“rundll32exe user32dll,LockWorkStation”,点击“下一步”,在d出的窗口中输入快捷方式的名称,点击“完成”即可。当然最简单的锁定计算机的方法是直接按WinKey + L。

15 让双键鼠标具有滚页功能

在控制面板中双击“鼠标”项,在d出的“鼠标属性”对话框中选择“单击锁定” 栏中的“启动单击锁定”项。再点击“设置”按钮,在d出的“单击锁定的设置”对话框中将鼠标设为最短,点击“确定”保存。打开一个网页,点击网页的卷轴,在离网页卷轴不远处上下移动鼠标,即可实现此功能。再次点击网页的卷轴即可关闭此功能。

16 让Windows XP读英文字母

找到“辅助工具”组里的“讲述人”程序,点击“声音”按钮,进入“声音设置”界面进行一番设置然后保存即可。当你把鼠标指向带有英文字母的对话框、菜单以及按钮时,会听见一个男声读着英文。

17恢复Windows经典界面

很多人安装了Windows XP后的第一感觉就是Windows变得漂亮极了。只是可惜美丽的代价要耗掉我们本就不富裕的内存和显存。要想恢复到和经典Windows类似的界面和使用习惯,请在桌面上单击鼠标右键,选择“属性”命令即可进入“显示属性”的设置窗口。这里共有“主题”、“桌面”、“屏幕保护程序”、“外观”和“设置”五个选项卡。在当前选项卡的标签上会有一条**的亮色突出显示,默认是“主题”选项卡,这里我们只要在“主题”的下拉选单里选择“Windows经典”,立即就可以在预览窗口看到显示效果,同时,外观选项卡的内容也会随之进行更改。

注意:Windows XP中“主题”和“外观”选项卡是息息相关的,只要更改其中的任何一个选项,在另一个选项卡中也会看到相应的改变。

18恢复“开始”菜单

Windows XP新的“开始”菜单还是挺方便的,对系统资源的影响也不大。如果你喜欢过去的经典菜单的话,用鼠标右键单击任务栏空白处,选择“属性”菜单,进入“任务栏和开始菜单属性”的设置窗口,选择“[开始]菜单”选项卡,选择“经典[开始]菜单”即可恢复到从前的模样了。

19优化视觉效果

Windows XP的 *** 用界面的确是很好看,好看的背后是以消耗大量内存作为代价的,相对于速度和美观而言,我们还是宁愿选择前者,右键单击“我的电脑”,点击“属性/高级”,在“性能”一栏中,点击“设置/视觉效果”,在这里可以看到外观的所有设置,可以手工去掉一些不需要的功能。在这里把所有特殊的外观设置诸如淡入淡出、平滑滚动、滑动打开等所有视觉效果都关闭掉,我们就可以省下“一大笔”内存。

20禁用多余的服务组件

Windows XP和Windows 2000一样可以作为诸如>

以上就是关于实现应用程序的文件拖放功能全部的内容,包括:实现应用程序的文件拖放功能、VB编程的必备技巧、火狐有哪些比较好用的扩张插件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9647646.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存