PDA

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


Страниц : 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 101 102 [103] 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

studentvnau@vk
25-11-2014, 23:10
Помогите если можете, искать уже обыскался страничку с ответом на вопрос о исправлении глюка с скролбарами, у меня была закладка, но виндовс скачал автообнову и полетел после этого... Теперь тоже найти немогу, если не трудно, скиньте ссылку на страницу, поиском искал, и так смотрел, никак не найду, выручите по человечески пожалуйста, не себе же делаем, людям:) А то сидят пока у меня без F.A.Q люди, а с этим глюком впиливать неохота. Заранее благодарен за помощь.

saurn
25-11-2014, 23:43
о исправлении глюка с скролбарами »
#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
согласен, некрасиво, как-то. Подправил. »
Вот это уже поступок взрослого человека, нужно уметь признавать свои ошибки.

Сантей
27-11-2014, 02:12
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;

Код я вставил, а вот как вызвать функцию не знаю

saurn
27-11-2014, 02:21
как правильно использовать создание ярлыка на панели задач 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 картинками вместо фона.

Larkod
28-11-2014, 16:31
Всем привет. Помогите уже замучался понять не могу в чем ошибка.

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

Larkod
28-11-2014, 16:55
Вот ссылка на все файлы 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.
Ботва подключена.
Внимание вопрос: как заставить всё это взлететь?

TryRooM
28-11-2014, 18:13
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)

saurn
28-11-2014, 23:04
Такое компилятору не понравится. Лучше: »
С чего вдруг? И то и то: конструкции кода, позволяющие создавать подпрограммы. Основное отличие функции в том, что это процедура особого характера, возвращающая некое значение, результат. Если результат не нужен, можно использовать процедуру.

kotyarko@fb
28-11-2014, 23:44
С чего вдруг? »
С того, что в кругах пользователей кореанрандома уже всем известно, как это применяется..
Procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = чё-то там then
begin
BackupCheck_2();
end;
end;
При таком раскладе, результат как раз и не нужен, + будет мусор в отладочном окне, типа "результат никогда не использовался". Как бы мелочь, а не приятно (ИМХО).




© OSzone.net 2001-2012