Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Забанен


Сообщения: 216
Благодарности: 62

Профиль | Цитировать


читать дальше »
Цитата Лександер:
Както так пробуй. »
Цитата R.i.m.s.k.y.:
как-то так »
Цитата El Sanchez:
Код: Выделить весь код
GetEnv('USERPROFILE');
GetShellFolderByCSIDL($28, True);
»
Лександер, R.i.m.s.k.y., El Sanchez, Спасибо вам ребятки огромное, но что-то никак.
Короче говоря
Код: Выделить весь код
[UninstallDelete]
Name: {userdocs}\MyProgs; Type: filesandordirs
т.е из C:\Documents and Settings\iUser\Мои документы\MyProgs
всё прекрасно удаляет

Код: Выделить весь код
[UninstallDelete]
Name: {userprofile}\MyProgs; Type: filesandordirs
C:\Documents and Settings\iUser\MyProgs - (%userprofile%\MyProgs)
ни в какую, что с выше приведёнными примерами, что без них, а нужно то, всего лишь удалить папку .

Вы конечно извините, но эти скрипты мне с трудом даются, где то могу понять, а где то нет, так что не обессудьте за тормознутость, да и прежде чем задать вопрос, я всегда смотрю справку. А поиск, а что поиск, там какие алгоритмы не вводи, всё равно выдаёт не то что нужно.



Еще три вопроса. Как сделать вот что?
1. Вопрос
a) При нажатии на кнопку выводил адрес шлюза с возможностью копирования его по кнопке.
b) Трассировку маршрута, т.е на странице дополнительных задач было окно в котором вводится шлюз и по нажатии Ок происходит трассировка или как там ещё называется.
читать дальше »
Код: Выделить весь код
[ Code]
var
  IPAddressEdit: TIPAddressEdit;
  Button: TNewButton;
procedure RedesignWizardForm;
begin

//************************************ Трассировка ************************************
  IPAddressEdit := TIPAddressEdit.Create(WizardForm);
  with IPAddressEdit do
  begin
    Name := 'IPAddressEdit';
    Parent := WizardForm.SelectTasksPage;
    Left := ScaleX(8);
    Top := ScaleY(200);
    Width := ScaleX(150);
    Height := ScaleY(21);
  end;
  IPAddressEdit.TabOrder := 2;
//************************************ Вывод Трассировка ************************************

//************************************ Кнопка Проверить шлюз ************************************
Button := TNewButton.Create(WizardForm);
  with Button do
  begin
    Name := 'Button';
    Parent := WizardForm;
    Left := ScaleX(16);
    Top := ScaleY(327);
    Width := ScaleX(99);
    Height := ScaleY(23);
    Caption := 'Проверить шлюз';
  end;
  Button.TabOrder := 5;
//************************************ Кнопка Проверить шлюз ************************************
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;


//************************************ Вывод шлюза ************************************
//Function InitializeSetup: Boolean;
//begin
//if MsgBox('Ваш шлюз: 000.000.000.000', mbError, MB_OK) = idYes then result := true else result := false;
//end;
//************************************ Вывод шлюза ************************************




//************************************ Вывод шлюза ************************************
var
  Button1: TNewButton;
Function InitializeSetup: Boolean;
begin
if MsgBox('Ваш шлюз: 000.000.000.000', mbError, MB_OK) = idYes then result := true else result := false;

begin
  Button1 := TNewButton.Create(WizardForm);
  with Button1 do
  begin
    Name := 'Скопировать';
    Parent := WizardForm;
    Left := ScaleX(32);
    Top := ScaleY(327);
    Width := ScaleX(75);
    Height := ScaleY(25);
  end;
  Button1.TabOrder := 5;
end;

end;
//************************************ Вывод шлюза ************************************
Визуально представить это могу, но чтобы средствами Inno это сделать, просто в голове не укладывается.

2. Вопрос
Как сделать четыре кнопки Изменить, Запустить, Удалить и Отмена
читать дальше »
Код: Выделить весь код
#define AppName "My Program"
#define AppExeName "MyProg.exe"
#define InExe "setup.exe"
#define UnExe "unins000.exe"

[Setup]
AppName={#AppName}
AppVerName={#AppName}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Messages]
rus.SetupWindowTitle={#AppName}

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion nocompression;

[Icons]
Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}"
Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#AppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(AppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent

[Registry]
Root: HKLM; Subkey: "SOFTWARE\{#AppName}"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\{#AppName}"; ValueName: "Path"; ValueType: String; ValueData: "{app}\"; Flags: uninsdeletekey

[UninstallDelete]
Type: filesandordirs; Name: {app};

[ Code]
//************************************** Четыре кнопки **************************************
var
AppDir, unins, run: string;
ResultCode: Integer;
UninsButton, RunButton: TButton;
MyLabel: TLabel;

procedure ReadEntries;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\{#AppName}', 'Path', AppDir);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:= False;
end;

procedure Uninstall(Sender: TObject);
begin
unins:='{#UnExe}';
ReadEntries;
if not (FileExists(AddBackslash(AppDir) + unins)) then
MsgBox('Невозможно запустить деинсталляцию программы ' + ExpandConstant('{#AppName}') + ', т.к. исполняемый файл деинсталляции unins000.exe не найден.', mbCriticalError, MB_OK or MB_DEFBUTTON1)
else
Exec(AddBackslash(AppDir) + unins, '', ExtractFilePath(AddBackslash(AppDir) + unins), SW_SHOW, ewNoWait, ResultCode);
WizardForm.Close;
end;

procedure RunProgramm(Sender: TObject);
begin
run:='{#AppExeName}';
ReadEntries;
if (FileExists(AddBackslash(AppDir) + run)) then
Exec(AddBackslash(AppDir) + run, '', ExtractFilePath(AddBackslash(AppDir) + run), SW_SHOW, ewNoWait, ResultCode);
WizardForm.Close;
end;


//************************************** Новый кнопарь *****************************************
procedure RunInstall(Sender: TObject);
begin
run:='{src}\{#InExe}';
ReadEntries;
if (FileExists(AddBackslash(AppDir) + run)) then
Exec(ExpandConstant('{src}\{#InExe}'),'','',SW_SHOW,ewNoWait,ResultCode);
WizardForm.Close;
end;
//************************************** Новый кнопарь *****************************************


procedure NewForm;
begin
ReadEntries;
if (RegValueExists(HKLM, 'SOFTWARE\{#AppName}', 'Path')) and (FileExists(ExpandConstant(AppDir)+'\{#AppExeName}')) then begin
with WizardForm do
begin
ClientWidth := ScaleX(395);
ClientHeight := ScaleY(120);
Bevel.Hide;
InnerNotebook.Hide;
OuterNotebook.Hide;
BorderStyle:= bsDialog;
Center;
with CancelButton do
begin
Left := WizardForm.CancelButton.Left -100;
Top := WizardForm.ClientHeight - CancelButton.Height - ScaleY(10);
BringToFront;
end;




//************************************** Новый кнопарь *****************************************
RunButton:= TButton.Create(WizardForm);
with RunButton do
begin
Left := WizardForm.NextButton.Left -280;
Top := WizardForm.ClientHeight - NextButton.Height - ScaleY(10);
Width:= WizardForm.NextButton.Width;
//Height := 22;
Parent:= WizardForm;
Caption:= 'Изменить';
OnClick := @RunInstall;
//Cursor:= crHand;
BringToFront;
end;
//************************************** Новый кнопарь *****************************************



UninsButton:= TButton.Create(WizardForm);
with UninsButton do
begin
Left := WizardForm.NextButton.Left -100;
Top := WizardForm.ClientHeight - NextButton.Height - ScaleY(10);
Width:= WizardForm.NextButton.Width;
Parent:= WizardForm;
Caption:= 'Удалить';
OnClick := @Uninstall;
BringToFront;
end;

RunButton:= TButton.Create(WizardForm);
with RunButton do
begin
Left := WizardForm.BackButton.Left -110;
Top := WizardForm.ClientHeight - BackButton.Height - ScaleY(10);
Width:= WizardForm.BackButton.Width;
Parent:= WizardForm;
Caption:= 'Запустить';
OnClick := @RunProgramm;
BringToFront;
end;

MyLabel:= TLabel.Create(WizardForm);
with MyLabel do
begin
SetBounds(10,10,380,80);
AutoSize:=False;
WordWrap:=True;
//Font.Color:=$000000;
//Font.Style:=[fsBold];
//Font.Size:=10;
Parent:=WizardForm;
Transparent:=True;
Caption:= 'Программа ' + ExpandConstant('{#AppName}') + ' уже установлена на Ваш компьютер.' +#13#13+ 'Выберите нужное действие.';
end;
end;
end;
end;

procedure InitializeWizard;
begin
NewForm;
end;
//************************************** Четыре кнопки **************************************

3. Вопрос
Как сделать так чтобы при установки определялась версия Net.Framework 3.5, если он не установлен, то сначало устанавливался Net.Framework 3.5 из папки Others, а потом продолжалася установка, если установлен то продолжал установку?

Последний раз редактировалось Devils Night, 06-12-2011 в 06:50.


Отправлено: 02:59, 06-12-2011 | #330