GARANTIR DESCONTO

Fórum Instalar o Mysql com Inno Setup Ajudem!!! #521387

29/05/2015

0

Boa Noite.
Assistir um video explicando como fazer o Setup do Sistema instalando o mysql fiz todos os procedimentos mais esta dando erro de Kernell.dll o video esta no site: http://www.4shared.com/file/45037371/67fff949/video_innosetup_mysql_delphi.html?dirPwdVerified=ab1866fd
Uso Delphi XE 2
Meu form:

unit PrincipalUnit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,IniFiles, Vcl.StdCtrls,StrUtils,
Vcl.Buttons;

type
TForm1 = class(TForm)
lbl1: TLabel;
Spd1: TBitBtn;
function CreateProcessSimple(cmd:string):Boolean;
function ReplaceStr(Sstring: string; OldChar, NewChar:Char):string;
procedure FormShow(Sender: TObject);
procedure Spd1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.CreateProcessSimple(cmd:string):Boolean;
var
SUInfo:TStartupInfo;
ProcInfo:TProcessInformation;
begin
FillChar(SUInfo, SizeOf(SUInfo), #0);
SUInfo.cb :=SizeOf(SUInfo);
SUInfo.dwFlags :=STARTF_USESHOWWINDOW;
SUInfo.cb :=SW_HIDE;

Result:= CreateProcess(nil,PChar(cmd), nil,nil,False,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,SUInfo,ProcInfo);

if (Result) then
begin
WaitForSingleObject(ProcInfo.hProcess,INFINITE);
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;

end;


function TForm1.ReplaceStr(Sstring: string; OldChar, NewChar:Char):string;
var
Temp:string;
I:Integer;
begin
Temp:='';
for I := 1 to Length (Sstring) do
begin
if Sstring[I] <> OldChar then
begin
Temp:= Temp+Sstring[I];
end
else
begin
temp:=temp+NewChar;
end;
end;
Result:=Temp
end;


procedure TForm1.Spd1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormShow(Sender: TObject);
var
logo:TInifile;
begin
lbl1.Caption:='Aguarde...';
lbl1.Refresh;
logo:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'mysql\my.ini');
try
logo.WriteString('mysqld','basedir','"'+ReplaceStr(ExtractFilePath(Application.ExeName),'\','/')+'mysql/"');
logo.WriteString('mysqld','basedir','"'+ReplaceStr(ExtractFilePath(Application.ExeName),'\','/')+'mysql/data/'+'"');
finally
logo.Free;
end;
CreateProcessSimple('cmd.exe /c ""'+ExtractFilePath(Application.ExeName)+'mysql\bin\mysqld.exe" --install mysql_new --defaults-file="'+ExtractFilePath(Application.ExeName)+'mysql\my.ini""');
CreateProcessSimple('cmd.exe /c "net start mysql_new"');
Application.Terminate;
end;
Carlos Junior

Carlos Junior

Responder

Post mais votado

01/06/2015

Cara, também quebrei muito a cabeça com isso, quando parei de tentar usar esse programa ai que vc postou as coisas começaram a fluir, isso porquê você não precisa utilizar esse programa pra fazer a instalação do mysql, vc pode fazer tudo pelo inno setup.
Só executar diretamente no inno setup na seção [RUN] os comandos sc.exe e net.exe passando os parametros necessários.

Obs.: Você também terá problema com o .NET Framework 4, já que o mysql depende dele para funcionar. Então o seu instalador tem que fazer a verificação se o mesmo esta instalado no computador, caso não esteja efetuar a instalação. Tive essa dor de cabeça em um cliente, que fazia a instalação do meu programa pelo instalador e o mesmo não funcionava.

Att.

Cauê Nishijima

Cauê Nishijima
Responder

Gostei + 1

Mais Posts

27/07/2016

Carlos Junior

Valeu
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar