Delphi编程读写注册表
Delphi编程读写注册表
旧版本的Windows中,应用程序通过INI文件来存储和检索与系统相关的配置信息,在Windows95及其后续版本中,虽然INI文件仍可使用,但注册表逐渐取代了它的功能。
注册表其实就是一个数据库,包含了六个根键,根键下又可包含一个或多个子键和值。
注册表内有三类数据:字符串、二进制数和DWORD值,缺省类型是字符串(最常用的类型)。
对注册表进行操作,也就是打开一个需要的根键,然后对其子键和值进行读写。
Delphi为程序员提供了专门用于操作注册表的类型TRegistry,用它声明一个变量,然后使用这个变量来访问注册表。
对于TRegistry类型的变量,有一些重要且常用的属性和方法,如下:
属性RootKey:表明当前是对哪一个根键进行操作。
方法OpenKey:打开指定的子键。
其格式为function OpenKey(const Key:String; CanCreate:Boolean):Boolean; 参数Key指定要操作的子键,若此子键不存在,返回值False;参数CanCreate用来决定当子键不存在时,是否创建此子键。
方法ReadString:读取子键的值(字符串型)。
其格式为function ReadString(const Name:string):String; 参数Name指定要读的值,读缺省值时采用空串。
方法WriteString:写子键的值(字符串型)。
其格式为procedure WriteString(const Name, Value: String); 参数Name和Value表示值的名称及其数据。
方法CloseKey:关闭对应的子键。
通过上面的学习,我们来看两个具体的例子,以帮助理解。
一、在Windows中,多数应用程序都有其相关联的数据文件(如Word与DOC文件,Excel 与XLS文件),注册表的HKEY_CLASSES_ROOT根键的所有子键指明了这种关联关系,我们可以读取子键的值以找出某种文件类型与哪个程序相关联。
窗体中放置一个文本框Edit1用于输入文件类型(即扩展名),再放置一按钮Button1,代码如下:
uses Registry; //声明注册表单元
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
RegF:TRegistry; //定义变量
begin
s:='.'+Edit1.text; //得到扩展名
RegF:=TRegistry.Create; //创建变量
RegF.RootKey:=HKEY_CLASSES_ROOT; //指定要操作的根键
if RegF.OpenKey(s,False) then //如果该子键存在
begin
s:=RegF.ReadString('');
RegF.CloseKey;
s:=s+'\Shell\Open\Command';
RegF.OpenKey(s,False);
s:=RegF.ReadString(''); //读取关联信息
ShowMessage(s); //显示
end
else
ShowMessage('没有相关信息');
RegF.CloseKey; //关闭子键
RegF.Free; //释放变量
end;
二、如果希望自己的程序在系统启动时自动运行,需要将程序信息加入到注册表中。
启动后自动运行程序的信息存放于注册表HKEY_LOCAL_MACHINE根键的Software\Microsoft\Windows\CurrentVersion\Run子键中。
我们可以利用WriteString方法写入子键内容来实现此功能,单击Button1后将程序信息加入注册表,代码如下:
uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var RegF:Tregistry;
begin
RegF:=Tregistry.Create;
RegF.RootKey:=HKEY_LOCAL_MACHINE;
if RegF.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true) then RegF.WriteString('MyProgram',Paramstr(0));
//如子键存在则写入信息,Paramstr(0)函数返回本程序的路径、文件名
RegF.Free;
end;。
delphi7如何读取excel文件
delphi7如何读取excel文件我有一个excel文件,第一行是某项目预算表,第二行有分公司、项目名,第三行是材料、数量、单价、金额等列标题,往下就是具体的数据,请问我怎么读取哪些具体数据呀?我以前见过一个软件,可以在表格中打开excel文件,然后可以删除excel的前后几行,只留下规则的中间部分(实际的excel文件中这几行并没删除),不知道怎么可以实现这样的功能用ole可以解决用ole读excel:会读了后,你自己处理一下要读的数据就行了varI, J: Integer;MaxRow, MaxCol: Integer;List, Strs: TStringList;ExcelApp, Sheet: Variant;OldTime: TDateTime;beginList := TStringList.Create;Strs := TStringList.Create;// 创建一个excel的ole对象ExcelApp := CreateOleObject( "Excel.Application ");try// 打开一个excel文件ExcelApp.WorkBooks.Open(Edit1.Text);List.BeginUpdate;try// 设置工作区ExcelApp.WorkSheets[1].Activate;Sheet := ExcelApp.WorkSheets[1];// 有数据的区域的行数和列数MaxRow := edRange.Rows.count - 1;MaxCol := edRange.Columns.count;for I := 2 to MaxRow dobeginStrs.Clear;for J := 1 to MaxCol dobegin// 获得excel的数据第i行,第j列单元格内的数据Strs.Add(Sheet.Cells[i, j].Value);end;List.Add(maText);end;finally// 关闭工作区ExcelApp.WorkBooks.Close;List.EndUpdate;end;finally// 释放ole对象ExcelApp.Quit;List.Free;Strs.Free;end;end;用delphi提供的excelapplication读,在servers选项卡里varI, J: Integer;MaxRow, MaxCol: Integer;List, Strs: TStringList;sheet: ExcelWorksheet;OldTime: TDateTime;XlsCell: string;beginList := TStringList.Create;Strs := TStringList.Create;// 连接ExcelApplication1.Connect;tryExcelApplication1.Visible[1] := False;// 打开一个excel文件,文件名是edit.text ExcelApplication1.Workbooks.Open(Edit1.Text, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, 0);List.BeginUpdate;try//ExcelApplication1.WorkSheets[1].Activate;Sheet := ExcelApplication1.WorkSheets[1] as ExcelWorksheet; MaxRow := edRange[1].Rows.count - 1;MaxCol := edRange[1].Columns.count;for I := 2 to MaxRow dobeginStrs.Clear;for J := 1 to MaxCol dobeginXlsCell := ColRowNumToStr(J, I);Strs.Add(Sheet.Range[XlsCell, XlsCell].Text);end;List.Add(maText);end;finallyExcelApplication1.WorkBooks.Close(1);List.EndUpdate;end;finallyExcelApplication1.Disconnect;List.Free;Strs.Free;end;end;还有一些第三方的表格控件可以直接读取excel的数据的网上搜下,这方面东西太多了Delphi中使用ADO连接Excel有感By panther666今天在Delphi中使用ADO连接Excel(以前在一本书看过,复习一下-_-!!),有所收获,不敢独享。
怎么在delphi中读取Excel数据(各种详细操作)
怎么在delphi中读取Excel数据(各种详细操作)转( 一) 使用动态创建的方法首先创建Excel 对象,使用ComObj :VarExcelApp : Variant ;ExcelApp := CreateOleObject ( '' Excel.Application '' ) ;1 ) 显示当前窗口:ExcelApp.Visible := True ;2 ) 更改Excel 标题栏:ExcelApp.Caption := '' 应用程序调用Microsoft Excel '' ;3 ) 添加新工作簿:ExcelApp.WorkBooks.Add ;4 ) 打开已存在的工作簿:ExcelApp.WorkBooks.Open ( '' C : \Excel\Demo.xls '' ) ;5 ) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets [ 2 ] .Activate ;或ExcelApp.WorksSheets [ '' Sheet2 '' ] .Activate ;6 ) 给单元格赋值:ExcelApp.Cells [ 1 , 4 ] .Value := '' 第一行第四列'' ;7 ) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns [ 1 ] .ColumnsWidth := 5 ;8 ) 设置指定行的高度(单位:磅)(1磅=0.035 厘米),以第二行为例:ExcelApp.ActiveSheet.Rows [ 2 ] .RowHeight := 1 / 0.035 ; // 1厘米9 ) 在第8行之前插入分页符:ExcelApp.WorkSheets [ 1 ] .Rows [ 8 ] .PageBreak := 1 ;10 ) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns [ 4 ] .PageBreak := 0 ;11 ) 指定边框线宽度:ExcelApp.ActiveSheet.Range [ '' B3 : D4 '' ] .Borders [ 2 ] .Weight := 3 ;1 - 左2 - 右3 - 顶4 - 底5 - 斜( \ )6 - 斜( / )12 ) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells [ 1 , 4 ] .ClearContents ;13 ) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows [ 1 ] := '' 隶书'' ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Color := clBlue ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Bold := True ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.UnderLine := True ;14 ) 进行页面设置:a.页眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '' 报表演示'' ;b.页脚:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '' 第&P页'' ;c.页眉到顶端边距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2 / 0.035 ;d.页脚到底端边距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3 / 0.035 ;e.顶边距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2 / 0.035 ;f.底边距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2 / 0.035 ;g.左边距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2 / 0.035 ;h.右边距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2 / 0.035 ;i.页面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035 ;j.页面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2 / 0.035 ;k.打印单元格网线:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True ;15 ) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy ;b.拷贝指定区域:ExcelApp.ActiveSheet.Range [ '' A1 : E2 '' ] .Copy ;c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range. [ '' A1 '' ] .PasteSpecial ;d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Range.PasteSpecial ;16 ) 插入一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Insert ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Insert ;17 ) 删除一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Delete ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Delete ;18 ) 打印预览工作表:ExcelApp.ActiveSheet.PrintPreview ;19 ) 打印输出工作表:ExcelApp.ActiveSheet.PrintOut ;20 ) 工作表保存:If Not ExcelApp.ActiveWorkBook.Saved ThenExcelApp.ActiveSheet.PrintPreview ;21 ) 工作表另存为:ExcelApp.SaveAs ( '' C : \Excel\Demo1.xls '' ) ;22 ) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True ;23 ) 关闭工作簿:ExcelApp.WorkBooks.Close ;24 ) 退出Excel:ExcelApp.Quit ;( 二) 使用Delphi 控件方法在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheet。
应用Delphi实现对INI文件和注册表的动态读写
应用Delphi实现对INI文件和注册表的动态读写
张翔
【期刊名称】《吉林化工学院学报》
【年(卷),期】2001(018)001
【摘要】利用Delphi中的Tinifile类和Tregistry类封装的各种函数和过程实现对INI文件和注册表的动态读写.
【总页数】3页(P46-48)
【作者】张翔
【作者单位】吉林化工学院机电工程系,
【正文语种】中文
【中图分类】TP311.11
【相关文献】
1.动态修改INI文件应用分析 [J], 李国贞;于会智
2.Delphi中对ini文件的读写操作 [J], 韦伟;陈华
3.Delphi中用多线程实现日志文件的读写与管理 [J], 肖挺莉;杨军
4.Delphi中初始化(.ini)文件的读写 [J], 金林樵;郭彩虹
5.PB对注册表和INI文件的读写实现数据库连接 [J], 胡君红;陈绪君
因版权原因,仅展示原文概要,查看原文内容请购买。
访问注册表之DELPHI篇
T s Rg W ie t ig(T s’’ y o d): et e .r t Sr n ’ e t .m wr ' T s Rg W ie n ee (T s2 ,8 8 : et e .r t I tg r ’e t ’8 8 )
T s R gC oe e : e t e . l s K y fnly ia l T s R gF e e t e . r e: e d n; e d n;
说 明:从注 册表 中读 取 日期 时 间型数据 。
1 ,R a B o 1 edo l
语法 :fuci edol os Nm): ola : onto R B ( t ae Boen n a c n
说 明 : 从 注 册 表 中读 取 逻 辑 型数 据 。
1 ,D l t K y 2 ee ee
p oe u eW iee v le 0 : r d r tk ya u c r
VR r
语 法:fnto e eeau (os e uc inD ltVlecntKy:srn):Boen tig o la :
说明 :在注 册表 中删 除键值 。
1 4,K o K y  ̄ te
T s R g :T e i t y; ete R g sr e i b gn
语法 :fnt nDlt e ( ntKy: t i ): ol n uc i eee yc s e s n o K o r g Boe ; a
一
…
…
’’ 一
…
…
…
…
…
— — …
…
…
…
…
…
…
…
一
…
一
…
…
…
Delphi的TRegistry注册表类方法详解
Delphi的TRegistry注册表类方法详解Delphi的TRegistry注册表类方法详解●GetDataInfo方法Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean; TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinterger,rdbinary); TregDataInfo=recordRegdata:TRegDataType;数据类型dataSize:integer;数据大小endvaluename:和当前键关联的数据值名称value:返回数据的信息,如为rdstring和rdexpandstring类型,则数据大小包括字符串未尾的空结束字符。
如果成功返回True,失败返回False,并且V alue的值为zerosrdexpandstring:是一个包含环境变量的字符串;如“%PA TH%”。
●CreateKey方法Function CreateKey(const Key:string):Boolena;新建一个名为Key的键,Key可以为绝对的或相对的名字,绝对名用反斜杠“\”开头,相对名是新建一个当前键的子键。
新建没有值。
成功返回True,否则返回False,如果该键已存在将不产生效果。
●DeleteKey方法Function DeleteKey(const Key:string):Boolean;删除一个键及相关联的数据,在win95中子键也将被删除,NT中子键必须一个个删除。
●DeleteValue方法Function DeleteValue (const Name:string):Boolean;删除当前键中指定的一个数据值name。
●GetDataSize方法Function GetDataSize(const ValueName:string):integer;返回当前键中一个指定数值ValueName数据的大小。
delphi6注册机制_概述及解释说明
delphi6注册机制概述及解释说明1. 引言1.1 概述本文将深入探讨Delphi 6的注册机制,该注册机制是一种用于软件激活和授权的重要工具。
通过对注册机制的研究与分析,我们可以了解其作用、实现方式以及相关的问题与挑战。
从而提高软件安全性和防止破解行为。
1.2 文章结构本文主要分为五个部分:引言、Delphi 6注册机制、解释说明、问题与挑战以及结论。
首先,我们将简要介绍本文的目的和文章结构,然后详细阐述Delphi 6注册机制的相关内容,并解释存储位置和关键信息在注册表中的说明。
接下来,我们将讨论可能存在的问题和挑战,包括法律违规性、破解原因分析以及提高软件安全性的方法。
最后,通过总结重要观点和发现,展望Delphi 6注册机制的未来发展并提出建议。
1.3 目的本文旨在全面了解Delphi 6的注册机制,并剖析其优劣势以及应对可能问题与挑战的方法。
通过深入研究这一主题,我们可以认识到软件激活和授权在保障软件版权和用户权益方面的重要性,并探索如何加强软件安全,防止破解行为的发生。
同时,本文也希望为开发者和相关利益方提供对Delphi 6注册机制的深入理解和有针对性的建议。
通过读者对此篇文章内容的了解,他们将获得更多关于Delphi 6注册机制、其潜在问题以及解决方案等方面的知识,并能够应用于实际开发中,提高软件的安全性和可靠性。
2. delphi6注册机制:2.1 注册机制简介:Delphi6是一款广泛使用的集成开发环境(IDE),它允许开发人员创建使用Delphi编程语言的应用程序。
为了确保软件的合法使用,Delphi6引入了注册机制。
注册机制是一种软件保护措施,通过验证用户的合法性来限制非授权用户对软件的使用。
2.2 注册机制的作用:注册机制主要用于确保Delphi6只被授权用户使用,并限制未经授权的用户从安装到运行时期内的功能和特性。
它可以防止盗版软件在没有得到授权的情况下被非法复制和分发。
怎么在delphi中读取Excel数据(各种详细操作)
怎么在delphi中读取Excel数据(各种详细操作)转( 一) 使用动态创建的方法首先创建Excel 对象,使用ComObj :VarExcelApp : Variant ;ExcelApp := CreateOleObject ( '' Excel.Application '' ) ;1 ) 显示当前窗口:ExcelApp.Visible := True ;2 ) 更改Excel 标题栏:ExcelApp.Caption := '' 应用程序调用Microsoft Excel '' ;3 ) 添加新工作簿:ExcelApp.WorkBooks.Add ;4 ) 打开已存在的工作簿:ExcelApp.WorkBooks.Open ( '' C : \Excel\Demo.xls '' ) ;5 ) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets [ 2 ] .Activate ;或ExcelApp.WorksSheets [ '' Sheet2 '' ] .Activate ;6 ) 给单元格赋值:ExcelApp.Cells [ 1 , 4 ] .Value := '' 第一行第四列'' ;7 ) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns [ 1 ] .ColumnsWidth := 5 ;8 ) 设置指定行的高度(单位:磅)(1磅=0.035 厘米),以第二行为例:ExcelApp.ActiveSheet.Rows [ 2 ] .RowHeight := 1 / 0.035 ; // 1厘米9 ) 在第8行之前插入分页符:ExcelApp.WorkSheets [ 1 ] .Rows [ 8 ] .PageBreak := 1 ;10 ) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns [ 4 ] .PageBreak := 0 ;- 11 ) 指定边框线宽度:ExcelApp.ActiveSheet.Range [ '' B3 : D4 '' ] .Borders [ 2 ] .Weight := 3 ;1 - 左2 - 右3 - 顶4 - 底5 - 斜( \ )6 - 斜( / )12 ) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells [ 1 , 4 ] .ClearContents ;13 ) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows [ 1 ] := '' 隶书'' ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Color := clBlue ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Bold := True ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.UnderLine := True ;14 ) 进行页面设置:a.页眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '' 报表演示'' ;b.页脚:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '' 第&P页'' ;c.页眉到顶端边距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2 / 0.035 ;d.页脚到底端边距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3 / 0.035 ;e.顶边距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2 / 0.035 ;f.底边距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2 / 0.035 ;g.左边距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2 / 0.035 ;h.右边距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2 / 0.035 ;i.页面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035 ;j.页面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2 / 0.035 ;k.打印单元格网线:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True ;15 ) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy ;b.拷贝指定区域:ExcelApp.ActiveSheet.Range [ '' A1 : E2 '' ] .Copy ;- c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range. [ '' A1 '' ] .PasteSpecial ;d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Range.PasteSpecial ;16 ) 插入一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Insert ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Insert ;17 ) 删除一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Delete ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Delete ;18 ) 打印预览工作表:ExcelApp.ActiveSheet.PrintPreview ;19 ) 打印输出工作表:ExcelApp.ActiveSheet.PrintOut ;20 ) 工作表保存:If Not ExcelApp.ActiveWorkBook.Saved ThenExcelApp.ActiveSheet.PrintPreview ;21 ) 工作表另存为:ExcelApp.SaveAs ( '' C : \Excel\Demo1.xls '' ) ;22 ) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True ;23 ) 关闭工作簿:ExcelApp.WorkBooks.Close ;24 ) 退出Excel:ExcelApp.Quit ;( 二) 使用Delphi 控件方法在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheet。
delphi excel 例程
delphi excel 例程Delphi Excel 例程:一步一步回答在Delphi中,我们可以使用Excel 例程来实现与Excel文件的交互。
Excel 例程是一组可以通过Delphi编程语言来操作Excel文件的方法和函数。
本文将介绍如何使用Delphi和Excel 例程来创建、读取、写入和操作Excel 文件。
第一步:安装Excel 例程要开始使用Delphi和Excel 例程,我们首先需要安装Excel 例程库。
这可以通过三种方法之一来实现:1. 使用ActiveX组件:在Delphi IDE的“Component”菜单下,选择“Import ActiveX Control”。
在弹出的窗口中,选择“Microsoft Excel xx.x Object Library”(其中"xx.x"表示Excel版本号),然后点击“Install”按钮进行安装。
2. 使用第三方库:你还可以使用第三方库,如TExcelComponent或Flexcel,它们提供了更多的功能和灵活性。
3. 编写自己的Excel 例程:如果你对编程充满信心,你可以自己编写一组Excel 例程,以与Excel文件交互。
不过,这需要一些时间和努力。
第二步:创建一个新的Excel文件在使用Delphi和Excel 例程之前,我们首先需要创建一个Excel文件。
下面是示例代码,展示了如何使用Excel 例程来创建和保存一个新的Excel文件:delphivarExcelApp: Variant;ExcelWorkbook: Variant;ExcelWorksheet: Variant;begin创建Excel应用程序对象ExcelApp := CreateOleObject('Excel.Application');创建一个新的工作簿ExcelWorkbook := ExcelApp.Workbooks.Add;获取第一个工作表ExcelWorksheet := ExcelWorkbook.Worksheets.Item[1];设置单元格的值ExcelWorksheet.Cells[1, 1].Value := 'Hello'; ExcelWorksheet.Cells[1, 2].Value := 'World!';保存工作簿ExcelWorkbook.SaveAs('C:\NewExcelFile.xlsx');关闭Excel应用程序ExcelApp.Quit;end;通过这段代码,我们可以创建一个新的Excel应用程序对象,并在其中创建一个新的工作簿。
Delphi编程读写注册表
Delphi编程读写注册表Delphi编程读写注册表旧版本的Windows中,应用程序通过INI文件来存储和检索与系统相关的配置信息,在Windows95及其后续版本中,虽然INI文件仍可使用,但注册表逐渐取代了它的功能。
注册表其实就是一个数据库,包含了六个根键,根键下又可包含一个或多个子键和值。
注册表内有三类数据:字符串、二进制数和DWORD值,缺省类型是字符串(最常用的类型)。
对注册表进行操作,也就是打开一个需要的根键,然后对其子键和值进行读写。
Delphi为程序员提供了专门用于操作注册表的类型TRegistry,用它声明一个变量,然后使用这个变量来访问注册表。
对于TRegistry 类型的变量,有一些重要且常用的属性和方法,如下:属性RootKey:表明当前是对哪一个根键进行操作。
方法OpenKey:打开指定的子键。
其格式为function OpenKey(const Key:String; CanCreate:Boolean):Boolean; 参数Key 指定要操作的子键,若此子键不存在,返回值False;参数CanCreate 用来决定当子键不存在时,是否创建此子键。
方法ReadString:读取子键的值(字符串型)。
其格式为function ReadString(const Name:string):String; 参数Name指定要读的值,读缺省值时采用空串。
方法WriteString:写子键的值(字符串型)。
其格式为procedure WriteString(const Name, Value: String); 参数Name和Value表示值的名称及其数据。
方法CloseKey:关闭对应的子键。
通过上面的学习,我们来看两个具体的例子,以帮助理解。
一、在Windows中,多数应用程序都有其相关联的数据文件(如Word与DOC文件,Excel 与XLS文件),注册表的HKEY_CLASSES_ROOT根键的所有子键指明了这种关联关系,我们可以读取子键的值以找出某种文件类型与哪个程序相关联。
DELPHI 注册表操作
DELPHI 注册表操作首先要引用系统注册表操作类usesRegistry ;接下来定义变量varReg: TRegistry;第三步,创建实例化Reg:=TRegistry.Create;第四步,可以使用了,使用时注意两个方面,一是先定义要操作的注册表的根,如:、Reg.RootKey:=HKEY_LOCAL_MACHINE;最后就可以读写了if reg.OpenKey('\SOFTWARE\Microsoft\lihui',True) then//注意对win7来说,这个节点在software\Wow6432Node\microsoft\lihui beginreg.WriteString('ddd','abcdef');//写入注册表-字符串型RStr1:=Reg.ReadString('ddd');//读取写入的值-字符串型end;reg.CloseKey;showmessage(RStr1);更多类型写入对应的读取函数完整操作实例效果如图:源程序如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry,StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Edit1: TEdit;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;Reg:TRegistry;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);varRStr1:string;Dtstr:string;dt:tdatetime;beginReg:=TRegistry.Create;Reg.RootKey:=HKEY_LOCAL_MACHINE;if reg.OpenKey('\SOFTWARE\Microsoft\lihui',True) then//注意对win7来说,这个节点在software\Wow6432Node\microsoft\lihuibeginreg.WriteString('ddd','abcdef'); //写入注册表-字符串型RStr1:=Reg.ReadString('ddd'); //读取写入的值-字符串型reg.WriteTime('t',now); //写入注册表-时间类型dt:=reg.ReadTime('t'); //读取写入的值-时间类型dtstr:=datetimetostr(dt);reg.WriteInteger('i',100); //写入注册表-整数类型end;reg.CloseKey;showmessage(dtstr);end;end.。
