電腦藍(lán)牙系統(tǒng)下載安裝
現(xiàn)在支持藍(lán)牙功能的設(shè)備越來越多,比如耳機(jī)、音箱、游戲手柄、甚至牙刷等等,可見藍(lán)牙已經(jīng)逐漸融入到我們的生活當(dāng)中了。不過由于歷史遺留問題,有些陳舊的電器并沒有藍(lán)牙模塊,依然無法擺脫各種數(shù)據(jù)線的束縛。還好市...
2025.07.03COPYRIGHT ? 2023
粵ICP備2021108052號
郵箱:611661226@qq.com
留言給我urlmon.dll內(nèi)置于Windows中,可用于從網(wǎng)站下載文件。它支持SSL/TLS連接。但僅限Windows;
在 uses 語句中添加 URLMon 單元。
URLDownloadToFile 函數(shù)原型:
function URLDownloadToFile(pCaller: pointer; URL: PChar; FileName: PChar; Reserved: DWORD; lpfnCB : pointer): HResult; stdcall; external 'urlmon.dll' name 'URLDownloadToFileA';
使用示例:
procedure TForm1.Button1Click(Sender: TObject);var Source, Dest: string;begin Source:='http://lazarus.freepascal.org'; Dest:='C:\Windows\temp\data.txt'; if URLDownloadToFile(nil, PChar(Source), PChar(Dest), 0, nil)=0 thenshowmessage('Download ok!') elseshowMessage('Error downloading '+Source);end;
fphttpclient作為fcl web包的一部分隨FPC提供,也可以單獨(dú)使用。
在 uses 語句中添加 fphttpclient 單元。
我們可以使用 TFPHttpClient 類實(shí)例的 Get 方法來下載文件,示例代碼:
program dl_fphttp_d;{$mode delphi}{$ifdef windows}{$apptype console}{$endif}usessysutils, classes, fphttpclient, openssl,opensslsockets;constFilename = 'testdownload.txt';varClient: TFPHttpClient;FS: TStream;SL: TStringList;begin{ SSL initialization has to be done by hand here }InitSSLInterface;Client := TFPHttpClient.Create(nil);FS := TFileStream.Create(Filename,fmCreate or fmOpenWrite);trytry{ Allow redirections }Client.AllowRedirect := true;Client.Get('https://google.com/',FS); excepton E: EHttpClient dowriteln(E.Message)elseraise;end;finallyFS.Free;Client.Free;end;{ Test our file }if FileExists(Filename) thentrySL := TStringList.Create;SL.LoadFromFile(Filename);writeln(SL.Text);finallySL.Free;end;end.
Synapse 提供串行端口和 TCP/IP 連接。它與其他庫不同,您只需要向代碼中添加一些 Synapse Pascal 源代碼文件;無需安裝軟件包等。唯一的例外是,如果您想使用SSL/TLS/SSH等加密,則需要外部加密庫。
Synapse 通過阻塞(同步)套接字或有限的非阻塞模式處理網(wǎng)絡(luò)通信。Synapse 未使用異步套接字。Synapse 包含簡單的低級非可視對象,便于無問題地進(jìn)行編程。(無需多線程同步,無需windows消息處理,…)非常適合命令行實(shí)用程序、可視化項(xiàng)目、NT服務(wù)等。
在 Synapse 官方網(wǎng)站(http://www.ararat.cz/synapse/doku.php),還可以找到 Synapse 項(xiàng)目的一個(gè)補(bǔ)充,名為SynaSer。這是用于阻止串行端口上的通信的庫。它是Synapse中的非可視化類,程序員界面與Synapsee非常相似。
使用 Synapse 時(shí),Lazarus、Delphi 需要安裝,CodeTyphon 默認(rèn)已經(jīng)安裝 Synapse。
編寫下載文件程序時(shí),在 uses 語句中添加 httpsend 單元。示例代碼:
...uses httpsend,...function DownloadHTTP(URL, TargetFile: string): Boolean;varHTTPGetResult: Boolean;HTTPSender: THTTPSend;beginResult := False;HTTPSender := THTTPSend.Create;tryHTTPGetResult := HTTPSender.HTTPMethod('GET', URL);if (HTTPSender.ResultCode >= 100) and (HTTPSender.ResultCode<=299) then beginHTTPSender.Document.SaveToFile(TargetFile);Result := True;end; finallyHTTPSender.Free;end;end;
使用以上三種方式下載文件。界面如下:
具體操作不再贅述,代碼如下:
unit unitmain;{$mode objfpc}{$H+}interfaceusesClasses, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, fphttpclient, httpsend, UrlMon;type{ TFormMain }TFormMain = class(TForm)SynapseDownButton: TButton;FPHttpClientDownButton: TButton;UrlDownButton: TButton;procedure SynapseDownButtonClick(Sender: TObject);procedure FPHttpClientDownButtonClick(Sender: TObject);procedure UrlDownButtonClick(Sender: TObject);privatepublicend;varFormMain: TFormMain;implementation{$R *.frm}{ TFormMain }procedure TFormMain.UrlDownButtonClick(Sender: TObject);varSource, Dest: String;beginSource := 'https://download.redis.io/releases/redis-6.2.1.tar.gz';Dest := 'e:\temp\redis-6.2.1.tar.gz';tryif UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil) = 0 thenShowMessage('文件下載成功')elseShowMessage('文件下載失敗');exceptShowMessage('文件下載失敗');end;end;procedure TFormMain.FPHttpClientDownButtonClick(Sender: TObject);varHttpClient: TFPHttpClient;DownLoadFile:TFileStream;beginDownLoadFile:=TFileStream.Create('e:\temp\redis-4.0.10.tar.gz',fmCreate);HttpClient := TFPHttpClient.Create(nil);tryHttpClient.AllowRedirect := True;HttpClient.Get('http://download.redis.io/releases/redis-4.0.10.tar.gz', DownLoadFile);ShowMessage('文件下載成功');exceptShowMessage('文件下載失敗');end;DownLoadFile.Free;HttpClient.Free;end;procedure TFormMain.SynapseDownButtonClick(Sender: TObject);varHTTPSender: THTTPSend;beginHTTPSender := THTTPSend.Create;tryHTTPSender.HTTPMethod('GET', 'http://download.redis.io/releases/redis-7.0.5.tar.gz');if (HTTPSender.ResultCode >= 100) and (HTTPSender.ResultCode<=299) thenbeginHTTPSender.Document.SaveToFile('e:\temp\redis-7.0.5.tar.gz');ShowMessage('文件下載成功');endelseShowMessage('文件下載失敗');exceptShowMessage('文件下載失敗');end;HTTPSender.Free;end;end.
現(xiàn)在支持藍(lán)牙功能的設(shè)備越來越多,比如耳機(jī)、音箱、游戲手柄、甚至牙刷等等,可見藍(lán)牙已經(jīng)逐漸融入到我們的生活當(dāng)中了。不過由于歷史遺留問題,有些陳舊的電器并沒有藍(lán)牙模塊,依然無法擺脫各種數(shù)據(jù)線的束縛。還好市...
2025.07.03準(zhǔn)備工作:1、提前準(zhǔn)備好PhpStorm 2021.3軟件安裝包(*沒有的看文末*)2、系統(tǒng)要求Windows 10 64bit3、保證電腦中有任意一款解壓軟件安裝步驟1.找到下載好的安裝包,并將其解...
2025.07.03我們現(xiàn)在可以在各大視頻平臺上,刷到各種配音解說的視頻。小伙伴們看完這些視頻,會不會也想要制作這種解說視頻呢?作為解說視頻,最重要的就是為視頻解說配音的聲音。小伙伴們會不會很煩惱如何為視頻配音呢?其實(shí)很...
2025.07.03大家都知道,在PC端有著微軟稱霸,而移動端的就是安卓比較牛逼,但是PC端和移動端卻是各管各的,互不干擾互不相通。其實(shí)很多人都想將PC端和移動端實(shí)現(xiàn)互通,提升生產(chǎn)效率。奈何Android系統(tǒng)和windo...
2025.07.03電視家應(yīng)該很多人都知道,比較老牌的一個(gè)電視直播軟件了,可以看央視、衛(wèi)視、地方電視臺,頻道數(shù)量比較多。而小米電視呢作為一個(gè)主打高性價(jià)比的品牌,用戶量也很多。那小米電視怎么下載電視家3.0呢?這里主要介紹...
2025.07.04