为什么关闭主窗口后程序还在运行

pooyui 2008-01-29 08:18:30
登录进入主窗口后,我按主窗口右上角的关闭按钮,只能关闭主窗口,不能关闭程序
登录窗口代码如下
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from users where id=:strid and pwd=:strpwd');
adoquery1.Parameters.ParamByName('strid').value:=edit1.Text;
adoquery1.Parameters.ParamByName('strpwd').value:=edit2.text;
open;
end;
if ADOQuery1.recordcount=0 then
begin
showmessage('密码错误');
end
else
begin
form2.show;
self.hide;
end;
end;

end.
工程文件我没有修改代码为
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
请问我想在进入主窗口后点关闭按钮就关闭程序应该怎么改,我这个只能关闭登录窗口才能关闭程序,谢谢!
...全文
472 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fewind2100 2008-02-13
  • 打赏
  • 举报
回复
在form2的close时间中加入
application.terminate;
就可以了
pooyui 2008-01-30
  • 打赏
  • 举报
回复
是呀,是设成登录窗口了,但是设作主窗口为main form话,按照我那样写代码的话一运行就会先打开主窗口了,这怎么办呀
Ascn 2008-01-30
  • 打赏
  • 举报
回复
》》大侠,我是刚学delphi的,以前是学pb的,老师要我们转学delphi,实在是看不懂这么复杂的代码呀

不好意思。我为了发贴方便,没有修改和加注释。我可以说一下思路:
1、首先,我不用某个窗口来作为Main Form,即让Application不自动创建某个Form(Application自动创建的第一个Form就是Main Form,它一旦关闭就意味着应用程序结束),而是只自动创建一个DataModule,并把它作为Main Form。DataModule也具有Form的一些属性。

2、在DataModule(以下简称DM)中增加函数(DM中除了可以放置数据库相关组件外,也可以定义DM的公开成员函数),名称为Login。该函数直接调用frmLogin登录窗口中的函数。在DM的源代码的implementation语句后面增加:
uses
Forms, GVars, Login; //注意:Forms是因为要用到某些Form属性,GVars是我定义的公共Unit,用于全局的变量和函数定义,Login是登录窗口的文件名,此处需要添加。
DM中的Login函数只需要调用登录窗口中的用于创建窗口的函数就可以了。不需要取得返回值或其他处理。

3、在登录窗口中,定义两个全局函数。其中一个用于窗口的创建,另一个用于检测密码和用户名的合法性。将检测密码独立定义的目的是因为在窗口的登录按钮中要调用。而用于创建窗口的函数可以不用象我那么复杂,只需要创建就行了,参数也不必要那么多。我是因为曾经由其他应用程序来直接以命令行参数方式来调用本应用程序,所以才需要。登录函数中也不必象我那么复杂。只需要判断合法和非法后分别返回不同的值就行了,判断返回值的事情交给登录按钮去处理。

4、在应用程序的源代码中(Project-View Source菜单),改为如上我的应用代码一样就可以了。这样的话,系统不会把frmMain或者frmLogin作为主窗口,当关闭frmLogin时不会影响到应用程序。

5、我一般都是这样处理,只自动创建DM,对于其他窗口,每个窗口都定义一个全局函数,该函数用于创建本窗口,并作一些初始化等操作。

6、如果有其他问题,可以再讨论,呵呵
leeweijkd 2008-01-30
  • 打赏
  • 举报
回复
学习
pooyui 2008-01-30
  • 打赏
  • 举报
回复
大侠,我是刚学delphi的,以前是学pb的,老师要我们转学delphi,实在是看不懂这么复杂的代码呀
Ascn 2008-01-30
  • 打赏
  • 举报
回复
我的办法是:

创建DataModule,把它作为Main Form,而且仅有它为自动创建,其他的所有窗口,在工程的options中全部弄到右边列表中去。
1、有DataModule和窗口:Dm(DataModule), frmLogin(Form), frmMain(Form)
2、修改Application的Source Code:

Application.Initialize;
Application.Title := '管理系统';
Application.CreateForm(TDM, DM);
if DM.Login = 1 then
Application.CreateForm(TfrmMain, frmMain)
else
Application.Terminate;
Application.Run;

3、其中,在Dm有个Login函数:

function TDM.Login: Integer;
var
sUser, sPwd: string;
begin
sUser := '';
sPwd := '';
Result := UserLogin(sUser, sPwd, True, True); //因User为'', 后面两个参数忽略
end;

4、在frmLogin中有UserLogin函数,该函数可以显示登录错误的信息,也可以不显示。因为我的应用要求特殊,所以有这些参数。可以修改来适合您自己用。
注意:在
var
frmLogin: TfrmLogin;
之前定义全局的函数:
function UserLogin(var aUser, aPwd: string; aCheck, aShowMsg: Boolean): Integer;
function CheckUser(var aUser, aPwd: string; aCheck, aShowMsg: Boolean): Integer;


function UserLogin(var aUser, aPwd: string; aCheck, aShowMsg: Boolean): Integer;
begin
Result := 0;
if aUser = '' then
begin
with TfrmLogin.Create(Application) do
begin
lcbUser.Text := DM.RegIniFile.ReadString('Config', 'UserCode', '');
if ShowModal <> mrOK then
Application.Terminate
else
Result := 1;
end;
end
else
Result := CheckUser(aUser, aPwd, aCheck, aShowMsg);
end;

function CheckUser(var aUser, aPwd: string; aCheck, aShowMsg: Boolean): Integer;
var
s1, s2: string;
begin
Result := 0;

aPwd := Trim(aPwd);
if Length(Trim(aUser)) > 0 then
s2 := Trim(aUser)
else
begin
aUser := Trim(aUser);
if aShowMsg then
begin
Result := -1;
MessageBox(Application.Handle, '请输入正确的登录名', '提示信息', MB_OK or MB_ICONWARNING);
end;
Exit;
end;

with TADOQuery.Create(frmLogin) do
try
Connection := DM.conn;
SQL.Text := 'Select * from userinfo where usercode = ''' + s2 + '''';
Open;
First;
if not Eof then
begin
s1 := FieldByName('userpwd').AsString;

if aCheck then
begin
if UpperCase(s1) = UpperCase(aPwd) then
begin
aUser := FieldByName('username').AsString;
aPwd := FieldByName('sec_word').AsString;
Result := 1;
Exit;
end
else
begin
if aShowMsg then
begin
Result := -2;
MessageBox(Application.Handle,
'密码无法通过验证,请重新输入', '提示信息', MB_OK or MB_ICONWARNING);
end;
Exit;
end; //if UpperCase(s1) = UpperCase(aPwd) then
end
else
begin
aUser := FieldByName('username').AsString;
aPwd := FieldByName('sec_word').AsString;
Result := 1;
Exit;
end; //if aCheck then
end; //if not Eof then
finally
Close;
Free;
end; //try

{ Now, found nothing. Because no the User }
if aShowMsg then
begin
Result := -3;
MessageBox(Application.Handle, '非法用户,请检查输入是否正确', '提示信息', MB_OK or MB_ICONWARNING);
end;
end;

5、在“登录”按钮中代码如下:

procedure TfrmLogin.RzBitBtn1Click(Sender: TObject);
var
u, p, t: string;
n: integer;
begin
u := Trim(lcbUser.Text);
p := Trim(edPwd.Text);

t := u; //检测密码函数不返回登录名,必须预先取得
n := CheckUser(u, p, True, True); //检测密码时,用户名称和权限分别从u和p中返回
Case n of
1: begin
GVar.GUserCode := t;
GVar.GUserName := u;
GVar.GSecWord := p;
DM.RegIniFile.WriteString('Config', 'UserCode', t);
Dm.Log('登录进入系统');
RzBitBtn4.Click;
Exit;
end;
-1, -3: lcbUser.SetFocus;
-2: edPwd.SetFocus;
Else //0
//Nothing
end;
FTry := FTry + 1;
if FTry >= 3 then
begin
if not FLog then Dm.Log('试图进入本系统,错误已经达到三次以上', t, u);
FLog := True;
MessageBox(Handle, '试图登录进入本系统的次数已经达到三次,'
+ '这一情况已经被记录到系统日志中!', '提示信息', MB_OK or MB_ICONSTOP);
end;
end;

6、以上代码仅供参考。因我的应用中用了Raise和devExpress组件,直接复制过去可能无法使用。而且我的登录代码由于我的应用的特殊需求写得过于复杂了些,你可以按自己需求而简化。
pooyui 2008-01-30
  • 打赏
  • 举报
回复
回6楼,这样也不行呀,因为我那样写代码是把form1当成了main form,如果我一关闭form1的话就会关闭整个程序了,根本就打不开主窗口页面
sanguomi 2008-01-30
  • 打赏
  • 举报
回复
form1.hide;
form2.show;
form1.close;
pooyui 2008-01-30
  • 打赏
  • 举报
回复
回三楼,我知道这样可以,但是这样的话那不是要一直开着登录窗口吗,如果不是把登录窗口隐藏而是关闭的话就会整个程序关闭了,我是想让登录窗口先出来,而把主窗口当成main form,请问各位要怎么样改才行呀
阿三 2008-01-30
  • 打赏
  • 举报
回复
问题出在
form2.show;
self.hide;
因为你将form1仅仅是隐藏了.
pooyui 2008-01-30
  • 打赏
  • 举报
回复
谢谢你的指点,我自己慢慢研究一下,真的很感谢你这么耐心
woaiwd 2008-01-30
  • 打赏
  • 举报
回复
1.你打开你的程序,点击菜单上的Project->Options;
2.在打开的菜单上可以看见Auto-Create forms;
3你把你的登录窗口调整到你的主窗口的前面;
4.登录代码还用你自己的,再有你代码中有些多余的东西

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from users where id=:strid and pwd=:strpwd');
ADOQuery1.Parameters.ParamByName('strid').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('strpwd').Value:=Edit2.Text;
open;
end;

可以改为

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from users where id=:strid and pwd=:strpwd');
Parameters.ParamByName('strid').Value:=Edit1.Text;
Parameters.ParamByName('strpwd').Value:=Edit2.Text;
Open;
end;

5.然后用三楼说的方法,在主窗口的onClose事件中写入

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;;
end;

就不会出现你说的问题了。
taxpayer 2008-01-30
  • 打赏
  • 举报
回复
form2的close事件写 application.terminate
董董 2008-01-29
  • 打赏
  • 举报
回复
在Delphi的IDE中,打开Project/Options,在项目选项窗口中,看看"Main form"的设置窗口,是不是你的主程序窗口。我怀疑可能是因为你把登录窗口设置成Main form了。
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.3版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的问题,而且还能解决c++组件异常产生的问题。增强版适合无法自行解决c++相关问题的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了4项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“DirectX版本”选项卡可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。 本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388 所有的更新以及技术支持都可以到该博客上找到。
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows Blue(Windows 8.1),同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.0版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件,增强版中还额外包含了c++ Redistributable Package,因此增强版适合无法自行解决c++相关问题的用户使用;在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。V3.0版本使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。此功能仅限于增强版。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了3项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7用户,可以直接运行程序。 同时鉴于Windows 8(Windows Blue、Windows 8.1)系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows Blue、Windows 8.1)系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。 本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388所有的更新以及技术支持都可以到该博客上找到。
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.3版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的问题,而且还能解决c++组件异常产生的问题。增强版适合无法自行解决c++相关问题的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了4项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“DirectX版本”选项卡可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。 本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388 所有的更新以及技术支持都可以到该博客上找到。
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.5版分为标准版、增强版以及在线修复版。标准版支持修复DirectX的功能,而增强版则支持同时修复DirectX和c++的功能。在线修复版与标准版相同,默认只支持修复DirectX,但其所需的数据包需要在修复时自动下载。各个版本之间,程序完全相同,只是其配套使用的数据包不同。因此,标准版和在线修复版可以通过补全扩展包的形式成为增强版。本程序自V3.5版起,自带扩展功能。只要在界面的“工具”菜单下打开“选项”对话框,找到“扩展”标签,点击其中的“开始扩展”按钮即可。扩展过程需要Internet连接,扩展成功后重新运行程序即可使新的数据包生效。扩展用时根据网络速度不同而不同,最快仅需数秒,最慢需要数分钟,烦请耐心等待。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现问题时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了5项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的问题,还可以修复系统中很多其他由于dll未注册而产生的问题,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“扩展”选项卡可以将任意版本的程序扩展成增强版。点击“DirectX版本”选项卡,可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现问题时通过反馈程序和软件作者进行交流,共同查找问题。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8_win10的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧