En başta MSDE (SP4) kurulumu yapan paketi indirmemiz gerekmektedir. Bu dosyayı indirip kurduğunuz vakit c:\MSDE_SQL2KSP4 klasörüne kurulum dosyaları açılıyor ve burada Setup.ini dosyasına kurulumla alakalı ayarları yazıp (veya Setup.exe'ye ayar parametreleri göndererek) kurulum yapılabiliyor. İşte bu ayarlardan en önemlilerini bir arayüz kullanarak kurmak daha şık olacağından böyle bir kurulum iş görebilir. Her şey bir yana 107 MB'lık kurulumun InternalCompressLevel=ultra ve Compression=lzma/ultra ayarları sayesinde 37,8 MB olmaktadır.
Inno Setup dosyasını MSDE.iss isminde kayıt edelim ve bu dosyanın bulunduğu klasörün içinde Kur\MSDE_SQL2KSP4 klasörü oluşturalım. İndirilen MSDE kurulum dosyalarını da bu klasörün içine taşıyalım. Hazırlanan kurulum ise Kur klasörünün altına MSDE.exe isminde oluşacaktır.
Ayrıca Inno Setup programını istool ve bazı hazır kodları paket halinde bünyesinde bulunduran kurulumu indirip kurduktan sonra bir de Türkçe dil paketini olan Turkish.isl dosyasını C:\Program Files\Inno Setup 5\Languages klasörüne kopyalamak gerekecektir.
Örnek Kurulum..:http://rapidshare.com/files/81126353/MSDE.exe.html
Not:Inno Script içinde Kod olarak StartNTService fonksiyonu bulunmaktadır ve PChar parametresi için nil atamasını yapamadığımdan SQL kurulumunun ardından her SQL Server hizmetinin başlatılamadı. mesajı getirilebilir. Bknz. DeinitializeSetup(); prosedürü. Bu servisi Inno Setup ile başlatamadığımdan AlwaysRestart=true satırı ile kurulumun ardından bilgisayarı yeniden başlatma yoluna gidildi. Eğer inno kodları ile servis başlatmanın bir yolunu bilen varsa bu kuruluma bir katkıda bulunabilir

Uyarı:Bu kurulum SQL Server yüklü olmayan sisteme sa kullanıcısına boş şifre vererek ve SQL Mode olarak otomatik olarak kurulmaktadır. Bu seçeneği kullanmadan ayarların ekranda kalmasını isteyen CurPageChanged prosedüründe bulunan wpSelectTasks bloğu içindeki SendMessage satırlarını silmeli.
MSDE.iss dosyası. Rapid'e atılan Önekten sonra çok ufak bazı değişiklikleri oldu.
Kod: Tümünü seç
[Setup]
InternalCompressLevel=ultra
Compression=lzma/ultra
OutputDir=Kur
OutputBaseFilename=MSDE
AppName=MSDE
AppVerName=SP3
DefaultDirName=C:\MSDE_SQL2KSP4\
DisableProgramGroupPage=true
UsePreviousGroup=false
UsePreviousSetupType=false
DisableReadyPage=true
ShowTasksTreeLines=true
Uninstallable=false
DirExistsWarning=no
DisableFinishedPage=true
DisableDirPage=true
SolidCompression=true
AlwaysRestart=true
[Languages]
Name: tr; MessagesFile: compiler:Languages\Turkish.isl
[Dirs]
Name: {app}
Name: {app}\Msi
Name: {app}\MSM
Name: {app}\MSM\1033
Name: {app}\Setup
[Tasks]
Name: DisableNetworkProtocols; Description: Ağ kontrolleri olmasın (DisableNetworkProtocols=0); Flags: unchecked
Name: SecurityMode; Description: SQL Modunda kur (Mixed Mode)
[Files]
Source: Kur\MSDE_SQL2KSP4\Msi\InstMsi.exe; DestDir: {app}\Msi
Source: Kur\MSDE_SQL2KSP4\Msi\InstMsi20.exe; DestDir: {app}\Msi
Source: Kur\MSDE_SQL2KSP4\Msi\InstMsiW.exe; DestDir: {app}\Msi
Source: Kur\MSDE_SQL2KSP4\Msi\InstMsiW20.exe; DestDir: {app}\Msi
Source: Kur\MSDE_SQL2KSP4\MSM\1033\DMO_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\DTS_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\MSXMLSQLR32.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\REPL_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\SEM_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\SQLAGENT_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\SQLBASE.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\SQLSVR_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\1033\TOOLS_RES.MSM; DestDir: {app}\MSM\1033
Source: Kur\MSDE_SQL2KSP4\MSM\atl.msm; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\CONNECT.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\DEV_SCM.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\DMO.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\DTC.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\DTS.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\mfc42.msm; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\msstkprp.msm; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\msvcirt.msm; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\msvcrt.msm; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\MSXMLSQL32.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\QFEPATCH.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\REPL.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\SEM.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\SHARED.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\SQLAGENT.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\SQLSVR.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\TOOLS.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\MSM\UPGRADE.MSM; DestDir: {app}\MSM
Source: Kur\MSDE_SQL2KSP4\Setup\Sql01P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql02P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql03P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql04P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql05P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql06P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql07P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql08P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql09P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql10P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql11P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql12P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql13P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql14P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql15P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql16P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\sql17P.msp; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\Sql2000.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun.cab; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun01.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun02.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun03.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun04.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun05.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun06.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun07.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun08.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun09.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun10.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun11.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun12.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun13.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun14.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun15.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\Setup\SqlRun16.msi; DestDir: {app}\Setup
Source: Kur\MSDE_SQL2KSP4\autorun.inf; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\license.txt; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\msvcr71.dll; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\readme.txt; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\ReadmeSql2k32desksp4.htm; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\setup.exe; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\setup.ini; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\setup.rll; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\sqdedev.dll; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\sqlresld.dll; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\sqlsut.dll; DestDir: {app}\
Source: Kur\MSDE_SQL2KSP4\sqlunirl.dll; DestDir: {app}\
[Run]
Filename: {app}\setup.exe; WorkingDir: {app}; StatusMsg: SQL Server sisteminizi yapılandırırken lütfen bekleyin
(.Code.) //<-BBCode'u bozdu köşeli parantez içinde olmalı
type
LPCSTR = PChar;
TStringFunction=function(const Liste:TStrings):Boolean;
LPARAM = Longint;
WPARAM = Longint;
LRESULT = Longint;
SC_HANDLE = THandle;
_SERVICE_STATUS = record
dwServiceType: DWORD;
dwCurrentState: DWORD;
dwControlsAccepted: DWORD;
dwWin32ExitCode: DWORD;
dwServiceSpecificExitCode: DWORD;
dwCheckPoint: DWORD;
dwWaitHint: DWORD;
end;
SERVICE_STATUS = _SERVICE_STATUS;
TServiceStatus = _SERVICE_STATUS;
var
cmpToplayici:TComponent;
InstanceNames:TStringList;
SQLVer,InstanceName:String;
SQLYuklu,Yuklendi:Boolean;
lblSQLAdi:TLabel;
edtSQLAdi:TEdit;
TasksList:TNewCheckListBox;
cbxBlankSAPWD:TCheckBox;
edtSAPWD,edtSAPWD_OK:TEdit;
AktifEditRengi,PasifEditRengi:TColor;
const
WM_LBUTTONDOWN = $0201;
WM_LBUTTONUP = $0202;
iniSec='Options';
Ara=3;
SERVICE_STOPPED = $00000001;
SERVICE_START_PENDING = $00000002;
SERVICE_STOP_PENDING = $00000003;
SERVICE_RUNNING = $00000004;
SERVICE_CONTINUE_PENDING = $00000005;
SERVICE_PAUSE_PENDING = $00000006;
SERVICE_PAUSED = $00000007;
ERROR_SERVICE_ALREADY_RUNNING = 1056;
STANDARD_RIGHTS_REQUIRED = $000F0000;
SC_MANAGER_CONNECT = $0001;
SC_MANAGER_CREATE_SERVICE = $0002;
SC_MANAGER_ENUMERATE_SERVICE = $0004;
SC_MANAGER_LOCK = $0008;
SC_MANAGER_QUERY_LOCK_STATUS = $0010;
SC_MANAGER_MODIFY_BOOT_CONFIG = $0020;
SC_MANAGER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or
SC_MANAGER_CONNECT or
SC_MANAGER_CREATE_SERVICE or
SC_MANAGER_ENUMERATE_SERVICE or
SC_MANAGER_LOCK or
SC_MANAGER_QUERY_LOCK_STATUS or
SC_MANAGER_MODIFY_BOOT_CONFIG);
SERVICE_QUERY_CONFIG = $0001;
SERVICE_CHANGE_CONFIG = $0002;
SERVICE_QUERY_STATUS = $0004;
SERVICE_ENUMERATE_DEPENDENTS = $0008;
SERVICE_START = $0010;
SERVICE_STOP = $0020;
SERVICE_PAUSE_CONTINUE = $0040;
SERVICE_INTERROGATE = $0080;
SERVICE_USER_DEFINED_CONTROL = $0100;
SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or
SERVICE_QUERY_CONFIG or
SERVICE_CHANGE_CONFIG or
SERVICE_QUERY_STATUS or
SERVICE_ENUMERATE_DEPENDENTS or
SERVICE_START or
SERVICE_STOP or
SERVICE_PAUSE_CONTINUE or
SERVICE_INTERROGATE or
SERVICE_USER_DEFINED_CONTROL);
function OpenSCManager(lpMachineName,lpDatabaseName:PChar;dwDesiredAccess: DWORD):SC_HANDLE;external 'OpenSCManagerA@advapi32.dll stdcall';
function OpenService(hSCManager: SC_HANDLE; lpServiceName: PChar; dwDesiredAccess: DWORD): SC_HANDLE;external 'OpenServiceA@advapi32.dll stdcall';
function StartService(hService: SC_HANDLE; dwNumServiceArgs: DWORD;var lpServiceArgVectors: PChar): BOOL;external 'StartServiceA@advapi32.dll stdcall';
function QueryServiceStatus(hService: SC_HANDLE; var lpServiceStatus: TServiceStatus): BOOL;external 'QueryServiceStatus@advapi32.dll stdcall';
function CloseServiceHandle(hSCObject: SC_HANDLE): BOOL;external 'CloseServiceHandle@advapi32.dll stdcall';
function GetLastError: DWORD;external 'GetLastError@kernel32.dll stdcall';
function WinExec(lpCmdLine: LPCSTR; uCmdShow: UINT): UINT;external 'WinExec@kernel32.dll stdcall';
function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;external 'SendMessageA@user32.dll stdcall';
function Calistir(const Komut:String;const PencereDurumu:UINT):UINT;{SW_SHOW,SW_NORMAL,SW_HIDE vs.}
begin
Result:=WinExec(PChar(Komut),PencereDurumu);
end;
function StartNTService(const ServiceName: string): Boolean;
{var
SCM: SC_HANDLE;
ServiceHandle: SC_HANDLE;
Res: Boolean;
Temp: PChar;
Status: SERVICE_STATUS;
Err: Integer;
S:String;{}
begin
Calistir('net start '+Servicename,SW_HIDE);
Result:=True;
{Result := False;
Exit;
Temp:='';//Temp:=nil; olamadı :( .
SCM := OpenSCManager(Temp, Temp, SC_MANAGER_ALL_ACCESS);
if SCM = 0 then Exit; //raise Exception.Create('Servis Kontrol Yöneticisi açılamadı. Hata: ' + SysErrorMessage(getLastError));
ServiceHandle := OpenService(SCM, PChar(ServiceName), SERVICE_ALL_ACCESS);
if ServiceHandle = 0 then
begin
CloseServiceHandle(SCM);
Exit;//raise Exception.Create(ServiceName + ' isimli servis açılamadı. Hata: ' + SysErrorMessage(getLastError));
end;
Res := StartService(ServiceHandle, 0, Temp);
if Res then
begin
Res := QueryServiceStatus(ServiceHandle, Status);
while (Res) do
begin
if Status.dwCurrentState = SERVICE_RUNNING then
begin
Result := True;
Break;
end else if Status.dwCurrentState = SERVICE_STOPPED then
begin
Result := False;
Break;
end;
QueryServiceStatus(ServiceHandle, Status);
end;
end else begin
Err := GetLastError;
if Err <> ERROR_SERVICE_ALREADY_RUNNING then
Exit;//raise Exception.Create(ServiceName + ' isimli servis başlatılamadı. Hata:' + SysErrorMessage(Err));
end;
CloseServiceHandle(SCM);
if not Result then
Exit;//raise Exception.Create(ServiceName + ' isimli servis başlatılamadı');{}
end;
procedure Mesaj(const S:String);
begin
MsgBox(S, mbConfirmation, MB_OK);
end;
procedure MesajInt(const i:Integer);
begin
Mesaj(IntToStr(i));
end;
procedure Hata(const S:String);
begin
MsgBox(S, mbError, MB_OK);
end;
function YolTamamla(const S:String):String;
begin
if (S<>'') and (S[Length(S)]<>'\') then Result:=S+'\' else Result:=S;
end;
function YolTamamlama(const S:String):String;
begin
if (S<>'') and (S[Length(S)]='\') then Result:=Copy(S,1,Length(S)-1) else Result:=S;
end;
function TirnakliStr(const S:String):String;
begin
Result:='"'+S+'"';
end;
///////////////////////////////////////////////////////////////////////////////////////////////////
function SQLListesi(const Liste:TStrings):Boolean;
//SQL Instance larının hepbirisi
var Deger,S:String; Len,i:Integer;
begin
Liste.Clear;
RegQueryMultiStringValue(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Microsoft SQL Server','InstalledInstances',Deger);
i:=1; S:=''; Len:=Length(Deger);
repeat
if Deger[i]=#0 then begin
if Liste.Count=0 then Liste.Add('') else Liste.Add(S);
S:='';
end else S:=S+Deger[i];
i:=i+1;
until i>=Len;
Liste.Add(S);
end;
function GetSQLMSDEVersion(): String;
begin
if not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion', 'CurrentVersion', Result ) then Result:='';
end;
///////////////////////////////////////////////////////////////////////////////////////////////////
function InitializeSetup(): Boolean;
//Setup.exe çalışmaya başlıyor
begin
Result:=True;
lblSQLAdi:=nil;
edtSQLAdi:=nil;
TasksList:=nil;
InstanceNames:=nil;
cbxBlankSAPWD:=nil;
edtSAPWD:=nil;
edtSAPWD_OK:=nil;
AktifEditRengi:=clWindow;
PasifEditRengi:=clBtnFace;
InstanceName:='';
SQLVer:=GetSQLMSDEVersion;
SQLYuklu:=SQLVer<>'';
Yuklendi:=False;
//if StartNTService('MSSQLSERVER') then Mesaj('başladım') else Mesaj('olmadı');
if SQLYuklu then begin
Result:=MsgBox('Sistemde yüklü SQL Server var. Farklı bir SQL yüklemek istiyor musunuz?',mbError,MB_YESNO or MB_DEFBUTTON2)=IDYES;
if Result then begin
InstanceNames:=TStringList.Create;
SQLListesi(InstanceNames);
end;
end;
if Result then cmpToplayici:=TComponent.Create(nil) else cmpToplayici:=nil;
end;
procedure DeinitializeSetup();
//Setup.exe kapatılıyor
var ServisAdi:String;
begin
if Assigned(cmpToplayici) then cmpToplayici.Free;
if Assigned(InstanceNames) then InstanceNames.Free;
if Yuklendi then begin
if InstanceName='' then ServisAdi:='MSSQLSERVER' else ServisAdi:='MSSQL$'+InstanceName;
if StartNTService(ServisAdi) then //Servis başlatıldı
else Mesaj('SQL Server hizmetinin başlatılamadı.');
end;
end;
procedure cbxBlankSAPWDButtonClick(Sender: TObject);
begin
if Assigned(edtSAPWD) then begin
edtSAPWD.Enabled:=not cbxBlankSAPWD.Checked;
if edtSAPWD.Enabled then edtSAPWD.Color:=AktifEditRengi else edtSAPWD.Color:=PasifEditRengi;
end;
if Assigned(edtSAPWD_OK) then begin
edtSAPWD_OK.Enabled:=not cbxBlankSAPWD.Checked;
if edtSAPWD_OK.Enabled then edtSAPWD_OK.Color:=AktifEditRengi else edtSAPWD_OK.Color:=PasifEditRengi;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
var Ust:Integer;
begin
case PageID of
wpSelectTasks:begin
if not Assigned(TasksList) then begin
TasksList:=TNewCheckListBox(WizardForm.FindComponent(('TasksList')));
with TasksList do begin
Height:=ScaleY(45);
Ust:=Top+Height;
end;
end;
if not Assigned(lblSQLAdi) then begin
lblSQLAdi:=TLabel.Create(TasksList.Owner);
with lblSQLAdi do begin
Parent := TasksList.Parent;
Caption := 'SQL Server Adı (Instancename)...:';
Left := TasksList.Left;
Top := Ust;
Width := ScaleX(450);
Height := ScaleY(13);
Ust := Ust + Height + Ara;
end;
end;
if not Assigned(edtSQLAdi) then begin
edtSQLAdi:=TEdit.Create(TasksList.Owner);
with edtSQLAdi do begin
Parent := TasksList.Parent;
Left := TasksList.Left;
Top := Ust;
Width := ScaleX(269);
Height := ScaleY(21);
Ust := Ust + Height + Ara;
end;
end;
if not Assigned(cbxBlankSAPWD) then begin
cbxBlankSAPWD:=TCheckBox.Create(TasksList.Owner);
with cbxBlankSAPWD do begin
Parent:=TasksList.Parent;
Left:=TasksList.Left;
Top:=Ust;
Width:=ScaleX(450);
Height:=ScaleY(13);
Caption:='Şifre kullanma (BALNKSAPWD) ...:';
Checked:=True;
OnClick := @cbxBlankSAPWDButtonClick;
Ust := Ust + Height + Ara;
end;
end;
if not Assigned(edtSAPWD) then begin
edtSAPWD:=TEdit.Create(TasksList.Owner);
with edtSAPWD do begin
Parent := TasksList.Parent;
Left := TasksList.Left;
Top := Ust;
Width := ScaleX(269);
Height := ScaleY(21);
AktifEditRengi := Color;
PasswordChar := '*';
Ust := Ust + Height + Ara;
end;
end;
if not Assigned(edtSAPWD_OK) then begin
edtSAPWD_OK:=TEdit.Create(TasksList.Owner);
with edtSAPWD_OK do begin
Parent := TasksList.Parent;
Left := TasksList.Left;
Top := Ust;
Width := ScaleX(269);
Height := ScaleY(21);
PasswordChar := '*';
Ust := Ust + Height + Ara;
end;
end;
cbxBlankSAPWDButtonClick(cbxBlankSAPWD);
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
var ini,S:String;
begin
case CurPageID of
wpWelcome:begin
if SQLYuklu then begin
//WizardForm.NextButton.Click;
SendMessage(WizardForm.NextButton.Handle,WM_LBUTTONDOWN,0,0);
SendMessage(WizardForm.NextButton.Handle,WM_LBUTTONUP,0,0);
end;
end;
wpSelectComponents:;
wpFinished:;
wpSelectTasks:begin
//WizardForm.NextButton.Click;
if not SQLYuklu then begin
SendMessage(WizardForm.NextButton.Handle,WM_LBUTTONDOWN,0,0);
SendMessage(WizardForm.NextButton.Handle,WM_LBUTTONUP,0,0);
end;
end;
wpInstalling:begin
S:=YolTamamla(ExpandConstant('{app}'));
if not DirExists(S) then ForceDirectories(S);
ini:=S+'setup.ini';
if FileExists(ini) then DeleteFile(ini);
if not Assigned(cbxBlankSAPWD) or cbxBlankSAPWD.Checked then SetIniString(iniSec,'BLANKSAPWD','1',ini)
else SetIniString(iniSec,'SAPWD',TirnakliStr(edtSAPWD.Text),ini);
if TasksList.Checked[0] then S:='1' else S:='0';
SetIniString(iniSec,'DisableNetworkProtocols',S,ini);
if TasksList.Checked[1] then SetIniString(iniSec,'SecurityMode','SQL',ini);
if Assigned(edtSQLAdi) and (Trim(edtSQLAdi.Text)<>'') then begin
InstanceName:=edtSQLAdi.Text;
SetIniString(iniSec,'InstanceName',TirnakliStr(InstanceName),ini);
end;// else SetIniString(iniSec,'InstanceName','',ini);
end;
end;
end;
function NextButtonClick(CurPage: Integer): Boolean;
begin
Result:=True;
case CurPage of
wpSelectTasks:begin
if SQLYuklu and Assigned(InstanceNames) and Assigned(edtSQLAdi) then begin
Result:=InstanceNames.IndexOf(edtSQLAdi.Text)<0;
if not Result then begin
MsgBox('Sistemde zaten "'+edtSQLAdi.Text+'" isimde sql server yüklü.',mbCriticalError,MB_OK);
Exit;
end;
end;
if Assigned(cbxBlankSAPWD) and not cbxBlankSAPWD.Checked then begin
Result:=(Trim(edtSAPWD.Text)<>'') and (edtSAPWD.Text=edtSAPWD_OK.Text);
if not Result then begin
MsgBox('Belirttiğiniz şifre değeri geçersizdir.',mbCriticalError,MB_OK);
WizardForm.ActiveControl:=edtSAPWD;
end;
end;
Yuklendi:=Result;
end;
end;
end;