PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 5]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Yury_Prizrak
07-09-2012, 17:30
Всем привет. Такой вопрос - как сделать чекбокс на последней странице с надписью "Запустить сервис?" и, если он нажат выполнить функцию »
Так, это решил, переписал немного функцию и такой RUN:
Filename: net; Parameters: {code:GetStartService}; Description: Запустить сервис; Flags: runhidden nowait postinstall runascurrentuser

Возник следующий вопрос - до этого у меня есть на формак чекбокс установки сервиса. Как теперь спрятать чекбокс на последней странице если файлы сервиса не были установлены

Блин, туплю, извините, 2-ой вопрос тоже решил:


[RUN]
Filename: net; Parameters: {code:GetStartService}; Description: Запустить сервис CVL; Flags: runhidden nowait postinstall runascurrentuser; Check: ServiceCheck

//Функция проверки чекбокса сервиса
function ServiceCheck: Boolean;
var
ConfigPathCVLService: String;
begin
if not Installed then
begin
Result := ServiceCheckBox.Checked;
end
else
begin
ConfigPathCVLService := ExpandConstant('{app}\CVL.CvlService.exe');
// проверка наличия севриса
if FileExists( ConfigPathCVLService ) then
begin
Result := True;
end
else
begin
Result := False;
end;
end;
end;

Johny777
07-09-2012, 17:45
Ммм, ну и хотелось бы скрипт для полного счастья, чтобы использовать скин при деинсталляции »
первый пример 2-мя функциями загрузки/выгрузки и решением проблемы выгрузки длл до её инициализации (переменная Install_Runs (спасибо Serega))

[Setup]
AppName=My prog
AppVerName=My prog
DefaultDirName={pf}\My prog
UninstallFilesDir={app}\uninstall

[Files]
Source: steam.cjstyles; DestDir: {#SetupSetting("UninstallFilesDir")}; Flags: ignoreversion nocompression solidbreak sortfilesbyextension; Attribs: hidden system
Source: isskin.dll; DestDir: {#SetupSetting("UninstallFilesDir")}; Flags: ignoreversion nocompression solidbreak sortfilesbyextension; Attribs: hidden system


[ code]
var
install_Runs: boolean;

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall setuponly';
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';

function Load_Skin(Param: String; Skin: String): boolean;
begin
Result := False;
case Param of
'I':
begin
ExtractTemporaryFile(Skin);
LoadSkin(ExpandConstant('{tmp}')+'\steam.cjstyles', '');
Result := True;
end;

'U':
begin
if FileCopy(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\steam.cjstyles'), ExpandConstant('{tmp}\steam.cjstyles'), True) and
FileCopy(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), True) then
LoadSkinU(ExpandConstant('{tmp}\steam.cjstyles'), '');
Result := True;
end;
end;
end;

procedure UnLoad_Skin(Param: String);
begin
case Param of
'I':
begin
WizardForm.Hide;
Sleep(227);
UnloadSkin();
end;

'U': UnloadSkinU();
end;
end;




function InitializeSetup(): Boolean;
begin
Install_Runs := False;
Result := Load_Skin('I','steam.cjstyles');
end;

procedure InitializeWizard();
begin
Install_Runs := True; // в конец процедуры
end;

procedure DeinitializeSetup;
begin
if install_Runs then UnLoad_Skin('I');
end;

function InitializeUninstall(): Boolean;
begin
Result := Load_Skin('U','steam.cjstyles');
end;

procedure DeinitializeUninstall();
begin
UnLoad_Skin('U');
end;

второй простой пример

[Setup]
AppName=My prog
AppVerName=My prog
DefaultDirName={pf}\My prog
UninstallFilesDir={app}\uninstall

[Files]
Source: steam.cjstyles; DestDir: {#SetupSetting("UninstallFilesDir")}; Flags: ignoreversion nocompression solidbreak sortfilesbyextension; Attribs: hidden system
Source: isskin.dll; DestDir: {#SetupSetting("UninstallFilesDir")}; Flags: ignoreversion nocompression solidbreak sortfilesbyextension; Attribs: hidden system

[ code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall setuponly';
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';


function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('steam.cjstyles');
LoadSkin(ExpandConstant('{tmp}')+'\steam.cjstyles', '');
Result := True;
end;

procedure DeinitializeSetup;
begin
WizardForm.Hide;
Sleep(227);
UnloadSkin();
end;

function InitializeUninstall(): Boolean;
begin
Result := False;

if FileCopy(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\steam.cjstyles'), ExpandConstant('{tmp}\steam.cjstyles'), True) and
FileCopy(ExpandConstant('{#SetupSetting("UninstallFilesDir")}\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), True) then
LoadSkinU(ExpandConstant('{tmp}\steam.cjstyles'), '');

Result := True;
end;

procedure DeinitializeUninstall();
begin
if FileExists(ExpandConstant('{tmp}\steam.cjstyles')) and FileExists(ExpandConstant('{tmp}\isskin.dll')) then UnloadSkinU();
end;

касательно доп. цветов читай http://forum.oszone.net/showpost.php?p=1885463#

Yury_Prizrak,
зачем тебе лишние логические скобки?

if FileExists( ConfigPathCVLService ) then
begin
Result := True;
end
else
begin
Result := False;
end;
end;

можно проще

if FileExists( ConfigPathCVLService ) then Result := True else Result := False;

а если посмотреть на то что функция FileExists возвращает function FileExists(const Name: String): Boolean;
то можно вообще упростить до Result := FileExists( ConfigPathCVLService );
а можно и без функции "ServiceCheck" обратиться напрямую к чекбоксу
if not Installed then ServiceCheckBox.Checked := FileExists(ExpandConstant('{app}\CVL.CvlService.exe')) else ServiceCheckBox.Checked := Installed (или True);

MogilShik2007
08-09-2012, 04:47
Странно, с любым скриптом при использовании деинсталлятора со скином выдает ошибку, вылетает несколько сот окошек, чет ругается, заметил что-то про папку Temp, может из-за того что временная папка в другом месте?

SatHan
08-09-2012, 07:17
MogilShik2007, точнее объясняй что и где. по возможности скрипт в студию. телепаты на каникулах.

MogilShik2007
08-09-2012, 17:12
Скрипты выше, то что Johny777 накидал, да и любой другой скрипт, трабла у всех одна... выбивает с несколькими сотами окон об ошибки, если получиться поймаю скрины...

+ такой вопрос, кто работал с ReDrawText как в скрипте прописать, чтоб работало на разных страницах, а не на одной?
Или на одной, но в разных местах...

SatHan
09-09-2012, 00:31
Скрипты выше, то что Johny777 накидал, да и любой другой скрипт, трабла у всех одна... выбивает с несколькими сотами окон об ошибки »Какие скрипты, то что в данном посте?
Что-то не могу понять, какие ошибки? Вот лично проверил два скрипта оба работают и не какими ошибками при деинсталяции не страдал.

MogilShik2007, Вот прикрепил архив со скриптами что выложил Johny777. У меня всё работает. Проверяй.

MogilShik2007
09-09-2012, 09:40
Удаление работает со скином, но при установке игры, после нажатия на кнопку Готово. вылетают окошки (несколько сотен):
http://s019.radikal.ru/i611/1209/0f/303e4007e36c.jpg

+ такой вопрос, кто работал с ReDrawText как в скрипте прописать, чтоб работало на разных страницах, а не на одной?
Или на одной, но в разных местах...

SatHan
09-09-2012, 19:57
Подскажите какие цвета в формате color=$FF0000 поддерживает IS, а то не все хавает. »Ещё можно использовать такие значения
Color := clRed;тоесть

Green - Зелёный
Yellow - Желтый
Red - Красный
Blue - Синий
Lime - Салатовый
Silver - Стальной (Серый)
Olive - Оливковый
Aqua - Аквамарин
Purple - Пурпурный
и вставляешь в
Color := cl; то есть
Color := clСюда; Только Inno насчёт таких значений слабоват
Например он не знает таких цветов
Цвет Цвет Цвет Цвет Цвет Цвет Цвет Цвет Цвет Цвет Цвет Цвет Цвет

Удаление работает со скином, но при установке игры, после нажатия на кнопку Готово. вылетают окошки (несколько сотен) »Ты чистый использовал код, из архива? Не куда ли его не добавлял (потому как если ты встраивал в свой скрипт то возможно какие нибудь функции или процедуры конфликтуют).
Переменная Windows %TEMP% стандартная, не изменял?
Так же может быть чего не хватает системе или наоборот чего лишнего.
Я проверял скрипты и на WXP и W7 и ничего подобного не встречал.

SatHan
09-09-2012, 22:07
Ответьте пожалуйста на вопрос.
Имеется секция [Files] с назначением путей


[Files]
Source: "File\1\*"; DestDir: "{app}\Section1\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "File\2\*"; DestDir: "{app}\Section2\"; Flags: ignoreversion recursesubdirs createallsubdirs

ка сделать чтобы каждая секция DestDir
DestDir: "{app}\Section1\"
DestDir: "{app}\Section2\"

брала пути из реестра?
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application1_is1]
"Inno Setup: App Path"="C:\\Program Files\\Application1"
и
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application2_is1]
"Inno Setup: App Path"="C:\\Program Files\\Application2"

то есть
DestDir: "{app}\Section1\"
из
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application1_is1]
"Inno Setup: App Path"="C:\\Program Files\\Application1"
а
DestDir: "{app}\Section2\"
из
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application2_is1]
"Inno Setup: App Path"="C:\\Program Files\\Application2"
если в реестре не находит то ставила в местоположение по умолчанию то есть
DestDir: "{app}\SectionX\"

Johny777
09-09-2012, 23:47
SatHan,
сделал(ответ на твой вопрос - секция Files, не более) и позволил себе размахнуться(вся секция кода - расширение возможностей (опционально)) ещё дальше :)
(надеюсь не зря!)

пример 1:

[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo

// для теста
appid=Application1
//appid=Application2


[Files]
/// первый пример (для наглядности)
/////////////////// путь:........................................через ключ реестра(корневой каталог установленной программы)\Section1 (в эту папку в корневом каталоге) - это путь только через реестр
Source: "File\1\*"; DestDir: "{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application1_is1,InstallLocation}\Sect ion1"; Flags: ignoreversion recursesubdirs createallsubdirs

/// второй пример (как ты хотел)
/////////////////// путь:.......................................через ключ реестра(корневой каталог установленной программы)|(если ключа нет в {app})\Section2 (в эту папку в корневом каталоге) - это путь через реестр и в {app}(в {app} если нет ключа)
Source: "File\2\*"; DestDir: "{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application2_is1,InstallLocation|{app} }\Section2"; Flags: ignoreversion recursesubdirs createallsubdirs



[ code]
function Key_Exist: Integer;
var
Key_1_Exist, Key_2_Exist: boolean;
begin
Key_1_Exist := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application1_is1');
Key_2_Exist := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application2_is1');

if Key_1_Exist and Key_2_Exist then Result := 3 else
if Key_1_Exist then Result := 1 else
if Key_2_Exist then Result := 2 else
Result := 0;
end;

procedure Create_Labels(Param: Integer);
begin
if Param <> 0 then
begin
with WizardForm do
begin
with TLabel.Create(nil) do
begin
Parent := SelectDirPage;
case Param of
1:
begin
SelectDirBrowseLabel.Caption := 'Путь установки 2:';
DirEdit.Top := DirEdit.Top + ScaleY(30);
DirBrowseButton.Top := DirEdit.Top - ScaleY(1);
Caption := 'Путь установки 1: ' + RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation1_is1,InstallLocation}'));
SetBounds(DirEdit.Left, DirEdit.Top - ScaleX(60), DirEdit.Width, ScaleY(90));
end;

2:
begin
SelectDirBrowseLabel.Caption := 'Путь установки 1:';
Caption := 'Путь установки 2: ' + RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation2_is1,InstallLocation}'));
SetBounds( DirEdit.Left, DirEdit.Top + ScaleX(60), DirEdit.Width, ScaleY(90));
end;

3:
begin
Caption := 'Путь установки 1: ' + RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation1_is1,InstallLocation}')) + #13#10 + #13#10 + #13#10 + #13#10 +
'Путь установки 2: ' + RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation2_is1,InstallLocation}'));
SetBounds( DirEdit.Left, DirEdit.Top, DirEdit.Width, ScaleY(90));
end;
end;
end;
SelectDirBrowseLabel.Height := ScaleY(16);
SelectDirBrowseLabel.Top := DirEdit.Top - SelectDirBrowseLabel.Height;
end;
end;
end;

procedure InitializeWizard();
var
a: Integer;
begin
a := Key_Exist;

with WizardForm do
begin
DirEdit.Visible := a <> 3;
if not DirEdit.Visible then
begin
DirBrowseButton.Visible := DirEdit.Visible;
SelectDirBrowseLabel.Visible := DirEdit.Visible;
end;
end;

Create_Labels(a);
end;





обрати внимание на это символ |

пример 2(сделал как для себя бы хотел). Рекомендую:

#define Section_1 "Section1"
#define Section_2 "Section2"

[Setup]
AppName=Reg_Path_Demo
AppVerName=Reg_Path_Demo
DefaultDirName={pf}\Reg_Path_Demo

// для теста
appid=Application1
//appid=Application2


[Files]
Source: "File\1\*"; DestDir: "{code:Get_Path_0}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "File\2\*"; DestDir: "{code:Get_Path_1}"; Flags: ignoreversion recursesubdirs createallsubdirs


[ code]
var
Page: TInputDirWizardPage;


function Get_Path_0(Param: String): String;
begin
Result := Page.Values[0];
end;


function Get_Path_1(Param: String): String;
begin
Result := Page.Values[1];
end;


function Key_Exist: Integer;
var
Key_1_Exist, Key_2_Exist: boolean;
begin
Key_1_Exist := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application1_is1');
Key_2_Exist := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Application2_is1');

if Key_1_Exist and Key_2_Exist then Result := 3 else
if Key_1_Exist then Result := 1 else
if Key_2_Exist then Result := 2 else
Result := 0;
end;


procedure InitializeWizard();
begin
Page:=CreateInputDirPage(wpWelcome,'копирование файлов', 'Укажите каталоги','',False,'NewFolder');
with Page do
begin
Add('путь 1:');
Add('путь 2:');

case Key_Exist of
1:
begin
Values[0] := RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation1_is1,InstallLocation}')) + '\{#Section_1}';
Values[1] := 'C:\{#Section_2}';
end;

2:
begin
Values[0] := 'C:\{#Section_1}';
Values[1] := RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation2_is1,InstallLocation}')) + '\{#Section_2}'; //
end;

3:
begin
Values[0] := RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation1_is1,InstallLocation}')) + '\{#Section_1}';
Values[1] := RemoveBackslash(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Applic ation2_is1,InstallLocation}')) + '\{#Section_2}'; //
end;

0:
begin
Values[0] := 'C:\{#Section_1}';
Values[1] := 'C:\{#Section_1}';
end;
end;
end;
end;

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
begin
Result := 'путь 1:' + NewLine + Space + Page.Values[0] + NewLine + NewLine + 'путь 2:' + NewLine + Space + Page.Values[1];
end;


function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := PageID = wpSelectDir;
end;






MogilShik2007,
по ошибке трудно(для меня даже невозможно) определить косяк
покажи лучше код с файлами
может смогу исправить!

MogilShik2007
10-09-2012, 03:44
2 SatHan, Johny777:

Системе все хватает, временная папка изменена на C:\Temp, но не думаю, что это должно сильно влиять, так как установка со скинами происходит без проблем. А скрипт конечно объединял со своим.

MogilShik2007
10-09-2012, 12:10
2 Johny777, вот со всеми приблудами)))

MogilShik2007
10-09-2012, 15:44
Блин чертовщина какая-то((( А временная папка у тебя по умолчанию?

SatHan
10-09-2012, 16:12
MogilShik2007, всё верно. После установки вываливаются несколько сотен окошек.
только ты не указал конкретно.
Я же тебя русским языком спрашивал
Ты чистый использовал код, из архива? »пишешь что
Удаление работает со скином, но при установке игры, после нажатия на кнопку Готово. вылетают окошки (несколько сотен): »либо
так как установка со скинами происходит без проблем. ».
Там по ходу дело в совместимости скриптов. Что-то где-то не так наковырял в скрипте вот тебе и выдаёт сотни окошек.

MogilShik2007
10-09-2012, 16:14
SatHan, посмотри скрипт если не трудно, пост 907, мож мысля какая появится)))

SatHan
10-09-2012, 17:00
посмотри скрипт если не трудно, пост 907» я ещё новичёк в скриптах.
Смотри, если это

procedure InitializeWizard();
var
//Определяем поле ввода пароля
PasswordEdit: TPasswordEdit;
begin
Mylbl:= tLabel.Create(WizardForm);
MyLbl.AutoSize:= False;
MyLbl.WordWrap:= true;
MyLbl.SetBounds(0, 0, 301, 73);
MyLbl.Parent:= WizardForm.WelcomeLabel2;
WizardForm.DirEdit.OnChange:= @EditOnChange;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text+#0;
ProgressLabel:=TLabel.Create(WizardForm)
ProgressLabel.Top:= 4
ProgressLabel.Left:= 200
ProgressLabel.Caption:= '0%'
ProgressLabel.AutoSize:= True
ProgressLabel.Font.Color:= clBlue
ProgressLabel.Font.Style:= [fsBold]
ProgressLabel.Transparent:= True
ProgressLabel.Parent:= WizardForm.ProgressGauge
WizardForm.PasswordEdit.Text := ' ';
ExtractTemporaryFile('MicrosoftClassic15.bmp');
bmp := TBitmap.create;
bmp.LoadFromFile(ExpandConstant('{tmp}\MicrosoftClassic15.bmp'));
enablefire(WizardForm.WelcomePage.Handle, 0, 0, bmp.Handle, 50);
end;За-комментировать то ошибок не выдаёт, скорее всего чего то не хватает только не знаю чего, мож гуру подскажут.

MogilShik2007
10-09-2012, 18:14
Эм, в смысле закомментировать? А то я тож несилен в скриптах)))

SatHan
10-09-2012, 18:23
MogilShik2007, Закомментировал я для теста.
Эм, в смысле закомментировать? А то я тож несилен в скриптах))) »Нет, нужно разобрать что к чему.

Найти конфликт и решить его.

Johny777
10-09-2012, 19:43
MogilShik2007,
ошибки не вылавливаю но в коде у тебя ошибка
нет выгрузки библиотеки отвечающей за анимацию огня

procedure DeinitializeSetup; /// процедура деинициализации - выполняется при отмене и поле завершения работы(задачи) инсталла
begin
disablefire(); /// выключаем анимацию огня
bmp.Free; /// разрушаем картинку на которой был огонь

WizardForm.Hide;
Sleep(227);
UnloadSkin();
end;

будь внимательнее тк пример огня не настолько большой чтоб что-то забыть!
пример:

[Setup]
AppName=Inno FireCtrl
AppVerName=Inno FireCtrl
DefaultDirName={pf}\Inno FireCtrl
DefaultGroupName=Inno FireCtrl
OutputDir=.

[Files]
Source: firectrl.dll; Flags: dontcopy
Source: White.bmp; Flags: dontcopy

[ code]
function enablefire(ParentWnd: HWND; Left, Top: integer; Bmp: HBITMAP;FireAlpha: integer): BOOL; external 'enablefire@files:firectrl.dll stdcall';
function disablefire(): BOOL; external 'disablefire@files:firectrl.dll stdcall';

var
bmp: TBitmap;

procedure InitializeWizard();
begin
ExtractTemporaryFile('White.bmp');
bmp := TBitmap.create;
bmp.LoadFromFile(ExpandConstant('{tmp}\White.bmp'));
enablefire(WizardForm.WelcomePage.Handle, 0, 0, bmp.Handle, 500);
end;

procedure DeinitializeSetup();
begin
disablefire();
bmp.Free;
end;

А временная папка у тебя по умолчанию? »
как винду переставил так и стоит всё
не менял и даже не знаю как :)

====================================================================================

Посоны! :grin:
мой вопрос касательно загрузки всего ini файла в переменную с последующим считыванием из этой самой переменной всё ещё более чем в силе!
http://forum.oszone.net/post-1984015-858.html
прошу дать мне простой пример с которого смогу оттолкнуться

SatHan
10-09-2012, 21:18
даже не знаю как »Да всё просто (Если интересно конечно)

Сначала создаём папку Temp, например на диске C:\
Мой компьютер - Свойства переходим во вкладку Дополнительно
Внизу щелкаем по кнопке Переменные среды
В окошке Переменные среды пользователя XXX (Где XXX ваше имя пользователя)
находим переменные TEMP и TMP в обоих случаях меняем значение %USERPROFILE%\Local Settings\Temp например на %SYSTEMDRIVE%\Temp.
Проверяем Win+R вводим %TEMP% жмём ок

Создаём папку Temp, например на диске C:\
Мой компьютер - Свойства - Дополнительные параметры системы
Появится Свойства системы во вкладке Дополнительно находим кнопку Переменные среды
В окошке Переменные среды пользователя XXX (Где XXX ваше имя пользователя)
находим переменные TEMP и TMP в обоих случаях меняем значение %USERPROFILE%\AppData\Local\Temp например на %SYSTEMDRIVE%\Temp.
Проверяем Win+R вводим %TEMP% жмём ок
P.S Лично меня и по умолчанию устраивает :tongue:.




© OSzone.net 2001-2012