📄 127.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> Delphi编程 (BM: strayli FlyingBoy) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="100.htm">上一层</a>][<a href="128.htm">下一篇</a>]
<hr><p align="left"><small>关闭外部应用程序 <br>
<br>
如何在 Delphi 应用程序中, 去关闭外部已开启的应用程序? <br>
下面给出一段在 Delphi 中关闭“计算器”程序为例: <br>
var <br>
HWndCalculator : HWnd; <br>
begin <br>
// find the exist calculator window <br>
HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist <br>
Calculator <br>
if HWndCalculator <> 0 then <br>
SendMessage(HWndCalculator, WM_CLOSE, 0, 0); <br>
end; <br>
<br>
程序中使用自定义的鼠标 <br>
<br>
一.建立工程与一个资源档 <br>
用Image Editor编辑一个鼠游标 <br>
(Fild | New | Resource File) <br>
新建一个 CURSOR_1 的 CURSOR, 设定好它的 Hot Spot <br>
(Cursor | Set Hot Spot) <br>
存档时注意要和建立的Project存在同一个目录 <br>
在本例我们先假定为 MyCursor.res <br>
二. 程序部分 <br>
定义一个常数crMyCursor, 这个常数您必须设成大於零 <br>
的任何整数, 以 LoadCursor() 函数将自订的鼠标资源 <br>
load 进来, 以下为源代码: <br>
// unit.pas <br>
unit Unit1; <br>
interface <br>
uses <br>
SysUtils, WinTypes, WinProcs, Messages, Classes, <br>
Graphics, Controls, Forms, Dialogs; <br>
const <br>
crMyCursor = 1; (* 宣告一个常数 *) <br>
type <br>
TForm1 = class(TForm) <br>
procedure FormCreate(Sender: TObject); <br>
private <br>
{ Private declarations } <br>
public <br>
{ Public declarations } <br>
end; <br>
var <br>
Form1: TForm1; <br>
Form1: TForm1; <br>
{$R mycursor.res}//这行$R不可少, 否则自订的鼠游标就出不来了 <br>
implementation <br>
{$R *.DFM} <br>
procedure TForm1.FormCreate(Sender: TObject); <br>
begin <br>
//将鼠标资源 load 进来 <br>
Screen.Cursors[crMyCursor] := LoadCursor (hInstance,'CURSOR_1'); <br>
Cursor := crMyCursor;//指定 form1 的 cursor 为自订鼠标 <br>
Button1.Cursor := crMyCursor;//指定Button1的cursor为自订鼠标 <br>
end; <br>
end. <br>
<br>
得到Windows用户名和序列号 <br>
<br>
如何得到Windows的用户名称和产品序列号呢? <br>
1. 可以用 WNetGetUser() 这个函数来得到 user name; <br>
2. Windows 95 的产品序号可以用 TRegistry 到 Registry Database 中找出来; <br>
// 取得用户名称 <br>
function GetUserName: AnsiString; <br>
var <br>
lpName: PAnsiChar; <br>
lpUserName: PAnsiChar; <br>
lpnLength: DWORD; <br>
begin <br>
Result := ''; <br>
lpnLength := 0; <br>
WNetGetUser(nil, nil, lpnLength); // 取得字串长度 <br>
if lpnLength > 0 then <br>
begin <br>
GetMem(lpUserName, lpnLength); <br>
if WNetGetUser(lpName, lpUserName, lpnLength) = NO_ERROR then <br>
Result := lpUserName; <br>
FreeMem(lpUserName, lpnLength); <br>
end; <br>
end; { GetUserName } <br>
<br>
// 取得 Windows 产品序号 <br>
function GetWindowsProductID: string; <br>
var <br>
reg: TRegistry; <br>
begin <br>
Result := ''; <br>
reg := TRegistry.Create; <br>
with reg do <br>
with reg do <br>
begin <br>
RootKey := HKEY_LOCAL_MACHINE; <br>
OpenKey('Software\Microsoft\Windows\CurrentVersion', False); <br>
Result := ReadString('ProductID'); <br>
end; <br>
reg.Free; <br>
end; <br>
<br>
实现打开文件 <br>
<br>
打开Windows已经注册的文件其实很简单,根据以下代码定义一个过程: <br>
procedure URLink(URL:PChar); <br>
begin <br>
ShellExecute(0, nil, URL, nil, nil, SW_NORMAL); <br>
end; <br>
在要调用的地方使用 <br>
URLink('Readme.txt'); <br>
如果是链接主页的话,那么改用 <br>
URLink('http://gui.yeah.net'); <br>
<br>
得到执行程序的目录 <br>
<br>
<br>
SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数, 用哪 <br>
一个?没有太大的关系。 <br>
不过有以下的差别: ExtractFilePath 传回值的最後一个字元是反斜杠“/”。 <br>
procedure TForm1.Button1Click(Sender: TObject); <br>
begin <br>
ShowMessage(ExtractFileDir(Application.Exename)); <br>
// ie: c:\temp <br>
ShowMessage(ExtractFilePath(Application.Exename)); <br>
// ie: c:\temp\ <br>
end; <br>
相同点: 如果执行文件在根目录下(如:C:\SAMPLE.EXE)的话, 两者的传回值相同, <br>
且最后一个字符都是“/”。 <br>
<br>
将鼠标锁定在一定范围 <br>
<br>
如何将鼠标锁定在一定的范围内呢? <br>
请在Form中放置二个 Button, 然後分别为这两个按钮定义OnClick响应事件如下: <br>
// 限制 <br>
procedure TForm1.Button1Click(Sender: TObject); <br>
var <br>
rtButton2: TRect; <br>
begin <br>
rtButton2 := Button2.BoundsRect; <br>
MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算 <br>
ClipCursor(@rtButton2); // 限制鼠标移动区域 <br>
end; <br>
<br>
// 还原 <br>
procedure TForm1.Button2Click(Sender: TObject); <br>
var <br>
rtScreen: TRect; <br>
begin <br>
rtScreen := Rect(0, 0, Screen.Width, Screen.Height); <br>
ClipCursor(@rtScreen); <br>
end; <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="100.htm">上一层</a>][<a href="128.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -