Siema!
Mam taki kodzik:
procedure TForm1.Button1Click(Sender: TObject);
var
Res : TResourceStream;
MyObject:IUnknown;
MySLink:IShellLink;
MyPFile:IPersistFile;
FileName:String;
Directory:String;
WFileName:WideString;
MyReg:TRegIniFile;
begin
if Folder.Text = '' then
ShowMessage ('Nie podałeś(aś) docelowego folderu!') else
begin
try
Res:=TResourceStream.Create(hInstance,'UNECK',RT_RCDATA);
Res.SaveToFile(Folder.Text + '' + 'UNeck_PL.exe');
Gauge1.MaxValue := Res.Size;
Gauge1.Progress := Res.Position;
// gauge1.MaxValue := filesize(Res.Size)
Res.Free;
Button1.Visible := False;
label1.Visible := False;
Label2.Visible := False;
label3.Visible := False;
label4.Visible := False;
label5.Visible := False;
Label6.Visible := False;
Folder.Visible := False;
Gratulacje.Visible := True;
OK.Visible := True;
PlaySound('SND\Completed.Wav', 0, SND_FILENAME);
except
Button1.Visible := False;
label1.Visible := False;
Label2.Visible := False;
label3.Visible := False;
label4.Visible := False;
label5.Visible := False;
Label6.Visible := False;
Folder.Visible := False;
Gratulacje.Visible := True;
OK.Visible := True;
Gratulacje.Caption := 'Instalacja nie przebiegła pomyślnie.';
PlaySound('SND\Failed.Wav', 0, SND_FILENAME);
end;
MyObject:=CreateComObject(CLSID_ShellLink);
MySLink:=MyObject as IShellLink;
MyPFile:=MyObject as IPersistFile;
FileName:=Folder.Text + '' + 'UNeck_PL.exe';
with MySLink do
begin
SetArguments('C:\AUTOEXEC.BAT');
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
// Poniższe dodaje skrót do desktopu
Directory := MyReg.ReadString('Shell Folders','Desktop','');
// A to do menu Start
Directory := MyReg.ReadString('Shell Folders','Start Menu','')+ 'Dandi Software';
CreateDir(Directory);
WFileName := Directory+'\U-Neck.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.Free;
end;
end;
Teraz wyjaśnienie:
Mam resourca w projekcie który był zrobiony z pliku rc (brcc32), a w nim jeszcze jeden kodzik:
[code]UNECK RCDATA "UNeck_PL.exe"[/code]
A teraz pytanie:
Jak przerobić to
Gauge1.MaxValue := Res.Size;
Gauge1.Progress := Res.Position;
w taki sposób, aby w Gauge1 pokazywał się stan kopiowania (instalowania?) pliku UNeck_PL.EXE ??
Bardzo proszę o odpowiedzi, i dobrze by było na email [email protected] albo na gg 2539321, bo ostatnie dwa pytania mi wywaliło (nie wiem dlaczego).