⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windows api函数使用技巧i.htm

📁 对于学习很有帮助
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html><head><style type="text/css"><!--.p9 {  font-family: "宋体"; font-size: 9pt}a        {text-transform: none; text-decoration: none;}a:hover {text-decoration: underline; color: #FF0000;}--></style><title></title></head><body background="di2001.jpg"><h3 align="center"><font COLOR="#AOAO99">Windows API函数使用技巧</font></h3><table width="100%">  <tr>    <td><font color="0000FF"><a name="1">得到WINDOWS的SYSTEM路径:</a></font></td>  </tr>  <tr>    <td>&nbsp;&nbsp;&nbsp;&nbsp;方法:<br>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var<br>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MySysPath     : PCHAR ;<br>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetMem(MySysPath,255);<br>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetSystemDirectory(MySysPath,255);<br>    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>    &nbsp;&nbsp;&nbsp;&nbsp;注:MySysPath为SYSTEM路径<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="2">得到程序的路径</a></font></td>  </tr>  <tr>    <td>&nbsp;&nbsp;ExtractFileDir(Application.Exename);<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="3">察看文件是否存在</a></font></td>  </tr>  <tr>    <td>&nbsp;&nbsp;FileExists(FileName:String):Boolean;<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="4">改变文件扩展名</a></font></td>  </tr>  <tr>    <td>&nbsp;&nbsp;ChangeFileExt(FileName:String)<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="5">得到文件的扩展名</a></font></td>  </tr>  <tr>    <td>&nbsp;&nbsp;ExtractFileExt(FileName:String):String;<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="6">如何取得Windows的临时文件目录?</a></font></td>  </tr>  <tr>    <td>适合版本:Delphi 3,2.0,1.0<br>    Windows 95 &amp; NT都指定了放置临时文件的目录,然而,用户能改变临时目录的位置而不使用缺省的目录。这篇文章的目的是告诉你如何得到Windows     95 &amp; NT当前的临时目录位置。这个Windows API函数 GetTempPath就是解决这个问题的。其函数原形为:<br>    DWORD GetTempPath(DWORD nBufferLength, LPTSTR lpBuffer);<br>    下面的例子示范如何使用:<br>    function GetTempDirectory: String;<br>    var<br>    TempDir: array[0..255] of Char;<br>    begin<br>    GetTempPath(255, @TempDir);<br>    Result := StrPas(TempDir);<br>    end;<br>    备注:临时目录的确定原则:<br>    1,如果有TMP环境变量则临时目录为TMP指定的目录<br>    2,如果没有TMP环境变量而有TEMP环境变量,则为TEMP变量指定的目录<br>    3,如果TMP和TEMP都没有定义,则取当前目录为临时目录<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="7">程序不出现在任务栏</a></font></td>  </tr>  <tr>    <td>  一般Windows 95运行程序时都会在任务栏上出现按钮,如果你的程序是一个监视程序,那么出现按钮就不是明智之举了。要实现该功能就要在OnCreate事件里利用到API函数SetWindowLong<br>    procedure TForm1.FormCreate(sender:TObject);<br>    begin<br>    SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);<br>    end;<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="8">改计算机名</a></font></td>  </tr>  <tr>    <td>改变计算机在网络中的名字,重新启动后才生效<br>    SetComputerName('Hello World');<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="9">控制热启动</a></font></td>  </tr>  <tr>    <td>要使系统的热启动键(Ctrl+Alt+Del)失效,使用以下语句<br>    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);<br>    要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句<br>    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="10">临时路径</a></font></td>  </tr>  <tr>    <td>有时需要Windows的临时路径来做备份等工作,那么就要知道路径在哪,下面的程序帮你忙:<br>    var aa:pchar;<br>    begin<br>    GetTempPath(20,aa); //返回路径名<br>    edit1.text:=aa;<br>    end;<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="11">返回程序执行参数</a></font></td>  </tr>  <tr>    <td>  有关 Delphi 传入应用程式的命令列参数, 请参考以下的说明:<br>    用ParamCount函数取得命令参数的个数:<br>    呼叫 ParamStr(0), 传回执行档的档名(含路径)<br>    呼叫 ParamStr(n), 传回第n个参数的内容<br>    procedure TForm1.FormCreate(Sender: TObject);<br>    var<br>    sFileName: string;<br>    begin<br>    if ParamCount &gt; 0 then begin (* 有执行参数传入 *)<br>    sFileName := ParamStr(1); (* 取得参数内容 *)<br>    if FileExists(sFileName) then<br>    Memo1.Lines.LoadFromFile(sFileName)<br>    else<br>    Application.MessageBox('找不到指定的档案', '讯息', 48);<br>    end;<br>    end;<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="12">关闭Windows</a></font></td>  </tr>  <tr>    <td>控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT     uFlags,DWORD dwReserved);是实现这一功能的API函数<br>    首先定义常数<br>    const<br>    EWX_FORCE=4; //关闭所有程序并以其他用户身份登录<br>    EWX_LOGOFF=0; //重新启动计算机并切换到MS-DOS方式<br>    EWX_REBOOT=2; //重新启动计算机<br>    EWX_SHUTDOWN=1;//关闭计算机<br>    运行时给How赋值,让他等于EWX_SHUTDOWN或其他,调用以下语句<br>    ExitWindowsEx(How,0);<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="13">关闭外部应用程序</a></font></td>  </tr>  <tr>    <td>如何在 Delphi 应用程序中, 去关闭外部已开启的应用程序?<br>    下面给出一段在 Delphi 中关闭“计算器”程序为例:<br>    var<br>    HWndCalculator : HWnd;<br>    begin<br>    // find the exist calculator window<br>    HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculator<br>    if HWndCalculator <> 0 then<br>    SendMessage(HWndCalculator, WM_CLOSE, 0, 0);<br>    end;<br>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="14">得到执行程序的目录</a></font></td>  </tr>  <tr>    <td>  SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数,     用哪一个?没有太大的关系。<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>    </td>  </tr>  <tr>    <td><font color="0000FF"><a name="15">使用GetFileVersionInfo 得到版本信息的例子     </a></font></td>  </tr>  <tr>    <td>Samples Using GetFileVersionInfo?<br>    回答1:<br>    &nbsp;&nbsp;procedure GetBuildInfo(var V1, V2, V3, V4: Word);<br>    &nbsp;&nbsp;var<br>    &nbsp;&nbsp;&nbsp;&nbsp;VerInfoSize: DWORD;<br>    &nbsp;&nbsp;&nbsp;&nbsp;VerInfo: Pointer;<br>    &nbsp;&nbsp;&nbsp;&nbsp;VerValueSize: DWORD;<br>    &nbsp;&nbsp;&nbsp;&nbsp;VerValue: PVSFixedFileInfo;<br>    &nbsp;&nbsp;&nbsp;&nbsp;Dummy: DWORD;<br>    &nbsp;&nbsp;begin<br>    &nbsp;&nbsp;VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);<br>    &nbsp;&nbsp;GetMem(VerInfo, VerInfoSize);<br>    &nbsp;&nbsp;GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);<br>    &nbsp;&nbsp;VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);<br>    &nbsp;&nbsp;with VerValue^ do<br>    &nbsp;&nbsp;&nbsp;&nbsp;begin<br>    &nbsp;&nbsp;&nbsp;&nbsp;V1 := dwFileVersionMS shr 16;<br>    &nbsp;&nbsp;&nbsp;&nbsp;V2 := dwFileVersionMS and $FFFF;<br>    &nbsp;&nbsp;&nbsp;&nbsp;V3 := dwFileVersionLS shr 16;<br>    &nbsp;&nbsp;&nbsp;&nbsp;V4 := dwFileVersionLS and $FFFF;<br>    &nbsp;&nbsp;&nbsp;&nbsp;end;<br>    &nbsp;&nbsp;FreeMem(VerInfo, VerInfoSize);<br>    &nbsp;&nbsp;end;<br>    ------------------------------------------<br>    回答2<br>    If you want a component, check out TVersionInfoResource at<br>    http://www.pobox.com/~bstowers/delphi/ in the My Stuff section. D1/D2/D3/C++B<br>    compatible, freeware with full source code and a small demo.<br>    And you can see the http://www.aye.net/~bstowers/delphi/<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -