📄 main.cpp
字号:
//---------------------------------------------------------------------------
//名称:Windows系统OEM信息设置 1.0
//作者:石书义
//环境:C++ Builder 6.0 + SuiPack_v5.8(控件) + WINXP_SP2 + Microsoft Office Access 2003
//版权:免费软件(包含代码),但是未经作者同意不得将此代码用于任何商业目的!
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SUIForm"
#pragma link "SUIPageControl"
#pragma link "SUITabControl"
#pragma link "SUIStatusBar"
#pragma link "SUIButton"
#pragma link "SUIDBCtrls"
#pragma link "SUIPopupMenu"
#pragma link "trayicon"
#pragma link "SUIEdit"
#pragma link "SUIMemo"
#pragma link "SUIComboBox"
#pragma link "SUIDlg"
#pragma link "SUIURLLabel"
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
GetIncName() ; //得到公司名称列表
GetWinDir() ; //得到系统路径
GetOEMInfo(WinDir) ; //得到系统OEM信息
}
//---------------------------------------------------------------------------
//配置数据库
void TFormMain::DeployDatabase()
{
//
}
//---------------------------------------------------------------------------
//得到系统路径
void TFormMain::GetWinDir()
{
char *dir ;
dir = new char[20] ;
GetWindowsDirectory(dir,20) ;
WinDir = AnsiString(dir) + "\\system32\\" ;
delete dir ;
}
//---------------------------------------------------------------------------
//**********************************右键菜单*********************************
//---------------------------------------------------------------------------
//显示主界面
void __fastcall TFormMain::ShowFormClick(TObject *Sender)
{
GetOEMInfo(WinDir) ;
Application->Restore() ;
if(suiPageControl->ActivePage == suiTabSheetAbout)
suiStatusBar->Panels->Items[0]->Text = suiFormMain->Caption ;
}
//---------------------------------------------------------------------------
//退出程序
void __fastcall TFormMain::ExitClick(TObject *Sender)
{
Close() ;
}
//---------------------------------------------------------------------------
//******************************品牌OEM信息设置******************************
//---------------------------------------------------------------------------
//选择电脑的品牌
void __fastcall TFormMain::suiComboBoxIncChange(TObject *Sender)
{
ADOTable1->First() ;
ADOTable1->MoveBy(suiComboBoxInc->ItemIndex) ;
}
//---------------------------------------------------------------------------
//删除选定的OEM信息
void __fastcall TFormMain::suiBtnDeleteClick(TObject *Sender)
{
if(!ADOTable1->Eof)
{
suiMessageDialogMain->Text = "确认删除" + DBEditInc->Text + " OEM 信息!" ;
if(suiMessageDialogMain->ShowModal() == mrOk)
{
ADOTable1->Delete();
}
}
suiStatusBar->Panels->Items[0]->Text = DBEditInc->Text + "OEM 信息已从数据库中删除!" ;
GetIncName() ;
}
//---------------------------------------------------------------------------
//应用OEM信息设置
void __fastcall TFormMain::suiBtnApplyClick(TObject *Sender)
{
suiMemoTemp->Clear() ;
suiMemoTemp->Lines->Add("[General]");
suiMemoTemp->Lines->Add("Manufacturer=" + suiDBEditInc->Text) ;
suiMemoTemp->Lines->Add("Model=" + suiDBEditModel->Text) ;
suiMemoTemp->Lines->Add("[Support Information]") ;
for(int i = 0 ; i < suiDBMemoInfo->Lines->Count ; i ++)
suiMemoTemp->Lines->Add("Line" + IntToStr(i+1) + "="
+ suiDBMemoInfo->Lines->Strings[i]) ;
suiMemoTemp->Lines->SaveToFile(WinDir + "oeminfo.ini") ;
ADOTable1DSDesigner5->SaveToFile(WinDir + "oemlogo.bmp") ;
suiStatusBar->Panels->Items[0]->Text = suiComboBoxInc->Items->Strings[suiComboBoxInc->ItemIndex]
+ " OEM 信息设置完成!" ;
}
//---------------------------------------------------------------------------
//得到公司名称列表
void TFormMain::GetIncName()
{
suiComboBoxInc->Items->Clear() ;
ADOTable1->First() ;
for(int i = 0 ; ; i ++)
{
suiComboBoxInc->Items->Add(DBEditInc->Text) ;
ADOTable1->Next() ;
if(suiComboBoxInc->Items->operator [](i) == DBEditInc->Text)
break ;
}
ADOTable1->First() ;
suiComboBoxInc->ItemIndex = 0 ;
}
//---------------------------------------------------------------------------
//******************************自定义OEM信息设置****************************
//---------------------------------------------------------------------------
//清除计算机OEM信息设置
void __fastcall TFormMain::suiBtnCancelClick(TObject *Sender)
{
if(DeleteFile(WinDir + "oeminfo.ini") && DeleteFile(WinDir + "oemlogo.bmp"))
suiStatusBar->Panels->Items[0]->Text = " OEM 设置信息清除完毕!" ;
else
suiStatusBar->Panels->Items[0]->Text = " 计算机没有设置 OEM 信息!" ;
ImageLogo->Picture->Assign(NULL) ;
GetOEMInfo(WinDir) ;
}
//---------------------------------------------------------------------------
//选择自己的LOGO
void __fastcall TFormMain::suiBtnLogoClick(TObject *Sender)
{
if(OpenPictureDialogLogo->Execute())
{
ImageLogo->Picture->LoadFromFile(OpenPictureDialogLogo->FileName) ;
GetOEMInfo(OpenPictureDialogLogo->FileName.SubString(1,OpenPictureDialogLogo->FileName.LastDelimiter("\\"))) ;
}
}
//---------------------------------------------------------------------------
//添加自定义OEM信息到数据库
void __fastcall TFormMain::suiBtnInsertClick(TObject *Sender)
{
if(suiInputDialogMain->ShowModal() == mrOk && suiInputDialogMain->ValueText != "")
{
ADOTable1->Insert() ;
DBEditInc->Text = suiInputDialogMain->ValueText ;
suiDBEditInc->Text = suiEditInc->Text ;
suiDBEditModel->Text = suiEditModel->Text ;
suiDBMemoInfo->Lines = suiMemoInfo->Lines ;
DBImageLogo->Picture = ImageLogo->Picture ;
ADOTable1->Insert() ;
suiStatusBar->Panels->Items[0]->Text = "自定义 OEM 信息已添加到数据库!" ;
GetIncName() ;
}
}
//---------------------------------------------------------------------------
//应用自定义OEM信息设置
void __fastcall TFormMain::diyBtnApplyClick(TObject *Sender)
{
suiMemoTemp->Clear() ;
suiMemoTemp->Lines->Add("[General]");
suiMemoTemp->Lines->Add("Manufacturer=" + suiEditInc->Text) ;
suiMemoTemp->Lines->Add("Model=" + suiEditModel->Text) ;
suiMemoTemp->Lines->Add("[Support Information]") ;
for(int i = 0 ; i < suiMemoInfo->Lines->Count ; i ++)
suiMemoTemp->Lines->Add("Line" + IntToStr(i+1) + "="
+ suiMemoInfo->Lines->Strings[i]) ;
suiMemoTemp->Lines->SaveToFile(WinDir + "oeminfo.ini") ;
ImageLogo->Picture->SaveToFile(WinDir + "oemlogo.bmp") ;
suiStatusBar->Panels->Items[0]->Text = "自定义 OEM 信息设置完成!" ;
GetOEMInfo(WinDir) ;
}
//---------------------------------------------------------------------------
//得到系统OEM信息
void TFormMain::GetOEMInfo(String Dir)
{
try
{
suiMemoTemp->Clear() ;
suiMemoInfo->Clear() ;
if(FileExists(Dir + "oemlogo.bmp"))
ImageLogo->Picture->LoadFromFile(Dir + "oemlogo.bmp") ;
if(FileExists(Dir + "oeminfo.ini"))
suiMemoTemp->Lines->LoadFromFile(Dir + "oeminfo.ini") ;
suiEditInc->Text = GetINIInfo("General","Manufacturer",Dir + "oeminfo.ini") ;
suiEditModel->Text = GetINIInfo("General","Model",Dir + "oeminfo.ini") ;
for(int i = 0 ; i < suiMemoTemp->Lines->Count ; i ++)
{
if(suiMemoTemp->Lines->Strings[i] == "[Support Information]")
{
for(int j = 1 ; j < suiMemoTemp->Lines->Count - i ; j ++)
suiMemoInfo->Lines->Add(GetINIInfo("Support Information","Line" + IntToStr(j),Dir + "oeminfo.ini")) ;
}
}
}
catch(Exception &exception)
{
// ImageLogo->Picture->Assign(NULL) ;
suiEditInc->Text = "" ;
suiEditModel->Text = "" ;
suiMemoInfo->Clear() ;
}
}
//---------------------------------------------------------------------------
//得到ini文件信息
String TFormMain::GetINIInfo(String Node,String KeyName,String IniFileName)
{
char keyvalue[128];
GetPrivateProfileString(
Node.c_str(), //[]中节的名称
KeyName.c_str(), //=号前的键名
"", //如果没有找到字符串时,返回NULL
keyvalue, //存放取得字符串
128, //取得字符的允许最大长度
IniFileName.c_str() //.INI文件名
);
return AnsiString(keyvalue) ;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -