Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
studentvnau@vk
25-11-2014, 23:10
Помогите если можете, искать уже обыскался страничку с ответом на вопрос о исправлении глюка с скролбарами, у меня была закладка, но виндовс скачал автообнову и полетел после этого... Теперь тоже найти немогу, если не трудно, скиньте ссылку на страницу, поиском искал, и так смотрел, никак не найду, выручите по человечески пожалуйста, не себе же делаем, людям:) А то сидят пока у меня без F.A.Q люди, а с этим глюком впиливать неохота. Заранее благодарен за помощь.
о исправлении глюка с скролбарами »
#2259 (http://forum.oszone.net/post-2308009-2259.html)
studentvnau@vk
26-11-2014, 02:14
Цитата studentvnau@vk:
о исправлении глюка с скролбарами »
#2259 »Спасибо за совет. И ещё...
Сразу видно лицо человека (уж простите, лучше быть "крысой", чем г*вном...), подсказали всем, как людям, а оно... Короче, смотрите сами, и думайте... Кто захочет, тот поймёт...
И потом он умного из себя строит, выдавая чужие советы за свои умственные выводы... Эх, как же убоги такие люди...
studentvnau@vk
26-11-2014, 02:43
Цитата studentvnau@vk:
о исправлении глюка с скролбарами »
#2259 »
Кстати, не помогло.
kotyarko@fb
26-11-2014, 17:35
studentvnau@vk, согласен, некрасиво, как-то. Подправил.
studentvnau@vk
26-11-2014, 20:04
согласен, некрасиво, как-то. Подправил. »
Вот это уже поступок взрослого человека, нужно уметь признавать свои ошибки.
El Sanchez, как правильно использовать создание ярлыка на панели задач Windows 7?
const
LOAD_LIBRARY_AS_DATAFILE = $2;
#define A = (Defined UNICODE) ? "W" : "A"
function LoadLibraryEx(lpFileName: String; hFile: THandle; dwFlags: DWORD): THandle; external 'LoadLibraryEx{#A}@kernel32.dll stdcall';
function LoadString(hInstance: THandle; uID: SmallInt; var lpBuffer: Char; nBufferMax: Integer): Integer; external 'LoadString{#A}@user32.dll stdcall';
function SHGetNewLinkInfo(pszLinkTo, pszDir: String; var pszName: Char; var pfMustCopy: Longint; uFlags: UINT): BOOL; external 'SHGetNewLinkInfo{#A}@shell32.dll stdcall';
/////////////////////////////////////////////////////////////////////////
function PinToTaskbar(const szFilename: String; IsPin: Boolean): Boolean;
//szFilename: full path to executable file
//IsPin: False - unpin to TaskBar, True - pin from TaskBar
var
hInst: THandle;
buf: array [0..255] of Char;
i, res: Integer;
strLnk, strVerb: String;
objShell, colVerbs: Variant;
begin
Result := False;
if (GetWindowsVersion < $06010000) or not FileExists(szFilename) then Exit;
if IsPin then
begin
if SHGetNewLinkInfo(szFilename, ExpandConstant('{tmp}'), buf[0], res, 0) then
begin
while buf[Length(strLnk)] <> #0 do Insert(buf[Length(strLnk)], strLnk, Length(strLnk)+1);
if FileExists(ExpandConstant('{userappdata}\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\') + ExtractFileName(strLnk)) then Exit;
end;
res := 5386;
end else res := 5387;
hInst := LoadLibraryEx(ExpandConstant('{sys}\shell32.dll'), 0, LOAD_LIBRARY_AS_DATAFILE);
if hInst <> 0 then
try
for i := 0 to LoadString(hInst, res, buf[0], 255)-1 do Insert(buf[i], strVerb, i+1);
try
objShell := CreateOleObject('Shell.Application');
colVerbs := objShell.Namespace(ExtractFileDir(szFilename)).ParseName(ExtractFileName(szFilename)).Verbs;
for i := 1 to colVerbs.Count do if CompareText(colVerbs.Item[i].Name, strVerb) = 0 then
begin
colVerbs.Item[i].DoIt;
Result := True;
Break;
end;
except
Exit;
end;
finally
FreeDLL(hInst);
end;
end;
Код я вставил, а вот как вызвать функцию не знаю
как правильно использовать создание ярлыка на панели задач Windows 7? »
// закрепить ярлык
procedure CurStepChanged( CurStep: TSetupStep );
begin
case CurStep of
ssPostInstall: PinToTaskbar( имя исполняемого файла, включая полный путь, True );
end;
end;
// удалить ярлык
procedure CurUninstallStepChanged( CurUninstallStep: TUninstallStep );
begin
case CurUninstallStep of
usUninstall: PinToTaskbar( имя исполняемого файла, включая полный путь, False );
end;
end;
Dodakaedr
27-11-2014, 10:10
как правильно использовать создание ярлыка на панели задач Windows 7? »
Закрепление ярлыка на панели задач и в меню Пуск (http://forum.oszone.net/post-2371597-1027.html)
Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpFinished:
begin
PinToTaskbar(ExpandConstant('{app}\MyProg.exe'), True);
PinToStartMenu(ExpandConstant('{app}\MyProg.exe'), True);
end;
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of
usUninstall:
begin
PinToTaskbar(ExpandConstant('{app}\MyProg.exe'), False);
PinToStartMenu(ExpandConstant('{app}\MyProg.exe'), False);
end;
end;
end;
studentvnau@vk
28-11-2014, 09:41
Вопрос, как убрать фон у чекбоксов? при этом сами чекбоксы рисуются на WizardForm, инсталлятор на основе страниц, с png картинками вместо фона.
Всем привет. Помогите уже замучался понять не могу в чем ошибка.
Parameter "Name" include invalid characters.
It may only include alphanumeric character, underscores,slashes (/), and/or backslashes(\), may not start with a number and may not start or end with a slash or a backslash. Names 'not','and' and 'or' are reserved.
Это в Components.iss, где прописал пути 119450
Вот ссылка на все файлы https://docs.google.com/file/d/0B7YmBr5mYEh8eFg2VGpOTzFaV0E/edit
studentvnau@vk
28-11-2014, 17:32
Обосную поподробнее:
есть страница SelectDirPage (скрин ниже), на ней нужно активировать 2 чекбокса, для этих функций:
/////////-------------BACKUP---------/////////////
function BackupCheck_2(): Boolean;
begin
If DeleteRadioButton.Checked then
begin
DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;
function BackupCheck_3(): Boolean;
begin
If MoveRadioButton.Checked then
begin
MoveDir(ExpandConstant('{app}\res_mods\{#Patch}\'),ExpandConstant('{app}\Darksoul Modpack\Backup\{#Patch}'));
MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\Darksoul Modpack\Backup\xvm'));
CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;
//////////----------BACKUP END----////////
Чекбокс задан картинкой в 8 состояниях, формат картинки png.
Ботва подключена.
Внимание вопрос: как заставить всё это взлететь?
Larkod,
Пробуйте, измените так P_Mod
kotyarko@fb
28-11-2014, 18:17
function BackupCheck_2(): Boolean » Такое компилятору не понравится. Лучше:Procedure BackupCheck_2();
studentvnau@vk
28-11-2014, 18:58
Цитата studentvnau@vk:
function BackupCheck_2(): Boolean »
Такое компилятору не понравится. Лучше:
Код:
Procedure BackupCheck_2(); »
Без разницы, главное прикрутить
studentvnau@vk
28-11-2014, 19:33
Ну так что, есть идеи у кого нить?
Dodakaedr
28-11-2014, 20:27
Ботва подключена. »
Ну так через нее и создайте. Пример (http://forum.ru-board.com/topic.cgi?forum=5&topic=35848&start=3429&limit=1&m=1#1)
Такое компилятору не понравится. Лучше: »
С чего вдруг? И то и то: конструкции кода, позволяющие создавать подпрограммы. Основное отличие функции в том, что это процедура особого характера, возвращающая некое значение, результат. Если результат не нужен, можно использовать процедуру.
kotyarko@fb
28-11-2014, 23:44
С чего вдруг? »
С того, что в кругах пользователей кореанрандома уже всем известно, как это применяется..
Procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = чё-то там then
begin
BackupCheck_2();
end;
end;
При таком раскладе, результат как раз и не нужен, + будет мусор в отладочном окне, типа "результат никогда не использовался". Как бы мелочь, а не приятно (ИМХО).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC