Не. У меня 7х64 - всё робит.Причина наверное в Win 7 x64
Отнюдь. Не у всех на Win 7 x64 такая ерунда.Причина наверное в Win 7 x64
Всё это уже 100500 раз тестировалось, и решение уже нашли
Осталось уговорить Андрея, выдать это решение в массыи решение уже нашли
Ну уговаривать я никого не собираюсь. Если Андрей не посчитал нужным делится, значит сами найдем решениеОсталось уговорить Андрея, выдать это решение в массы
есть смутные подозрения, что если написать в твоем скриптеВот, чего бывает, если поленится перезапустить систему http://ifolder.ru/28081837
procedure InitializeWizard;
begin
WizardForm.Font.Name:='';
end;
хм... так у меня же было тоже самое... и опытным путём было определено, что ошибка из-за установки "левого" шрифтаскорее всего, установка "левого" шрифта никакого отношения к глюкам в твоей системе не имеет
http://rghost.net/35891520скорее всего, установка "левого" шрифта никакого отношения к глюкам в твоей системе не имеет
как видишь не имеет
Скорее всего. Я когда-то ловил этот же глюк но после переустановки системы, все стало нормально. Из-за какого софта это происходило - х.з.3.1 если виснет на SendMessage, то один из вариантов - наличие хуков в системе, т.е какая-то софтина поймала сообщение (посылается оно всем окнам), а обработать нормально не смогла
С изначальным то же самое. Так, что ты прав - никакого криминала нетизначальный пример установки шрифта выглядел немного не так , хотя и здесь никакого криминала я не вижу
пробовал уже. и раскладывал, чтобы точно было. виснет именно на сообщении. уж почему - точно не знаю, но не я один такой счастливый - это абсолютно точно.замени SendMessage на PostMessage,
все встает на этом оповещении. если его не писать, то инсталл без шрифтов, и тп, в общем видели. тоже самое у меня если при закрытии с ошибкой запустить еще раз, не перезагрузившись.а он писал про оповещение, т.е SendMessage?
Пока не вижукак видишь не имеет
Можно подробнее?можно сделать тоже самое, но немножко по-другому
Начисто тоже пробовал - раз в месяц систему ставлю заново, дабы пиратскими кряками ее не активироватьно после переустановки системы,
ПодробнееМожно подробнее?
#define Font "block.ttf"
#define FontName "block"
[Setup]
AppName=SetTemporaryFont
AppVerName=SetTemporaryFont
DefaultDirName={pf}\SetTemporaryFont
OutputBaseFilename=setup
[Files]
Source: {#Font}; Flags: dontcopy
[Code]
var
IsCustomFontInstalled: boolean;
FontName: string;
function AddFontResourceEx(p1: PAnsiChar; p2: DWORD; p3: Longint): Integer; external 'AddFontResourceExA@gdi32.dll stdcall';
function RemoveFontResourceEx(p1: PAnsiChar; p2: DWORD; p3: Longint): BOOL; external 'RemoveFontResourceExA@gdi32.dll stdcall';
function InitializeSetup: boolean;
begin
FontName:='Tahoma';
ExtractTemporaryFile('{#Font}');
IsCustomFontInstalled:=AddFontResourceEx(PAnsiChar(ExpandConstant('{tmp}')+'\{#Font}'),$30,0)<>0;
if IsCustomFontInstalled then FontName:='{#FontName}';
Result:=True;
end;
procedure InitializeWizard;
begin
WizardForm.WelcomeLabel1.Font.Name:=FontName;
WizardForm.WelcomeLabel1.Font.Size:=18;
with TLabel.Create(WizardForm) do begin
Parent:=WizardForm;
AutoSize:=False;
SetBounds(5,WizardForm.ClientHeight-40,350,40);
Caption:='Тупой пример временной установки шрифта в систему';
Font.Name:=FontName;
Font.Size:=12;
Font.Color:=clBlue;
WordWrap:=True;
Transparent:=True;
end;
end;
procedure DeinitializeSetup;
begin
if IsCustomFontInstalled then RemoveFontResourceEx(PAnsiChar(ExpandConstant('{tmp}')+'\{#Font}'),$30,0);
end;
жесть, я ставлю систему только когда комп покупаю, до сих пор WinXP SP2 стоит (с апреля 2008)раз в месяц систему ставлю заново
Ну, хотя-бы инсталл теперь запускается - уже какой-то результатЖдем результатов Гнома.
Обнаружил засаду, когда на Анси сидел. Понятно, что на юникоде вызова переделать нужно было, но не думаю, что это даст результат.еще один из возможных косяков - компилятор юникод, а используемые функции анси
#define Font "Alterna.ttf"
#define FontName "Alterna"
[Setup]
AppName=SetTemporaryFont
AppVerName=SetTemporaryFont
DefaultDirName={pf}\SetTemporaryFont
OutputBaseFilename=setup
[Files]
Source: {#Font}; Flags: dontcopy
[Code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
var
IsCustomFontInstalled: boolean;
FontName: string;
function AddFontResource(FileName: PAnsiChar): Integer; external 'AddFontResourceA@gdi32.dll stdcall';
function RemoveFontResource(FileName: PAnsiChar): BOOL; external 'RemoveFontResourceA@gdi32.dll stdcall';
function InitializeSetup: boolean;
begin
FontName:='Tahoma';
ExtractTemporaryFile('{#Font}');
IsCustomFontInstalled:=AddFontResource(ExpandConstant('{tmp}')+'\{#Font}')>0;
if IsCustomFontInstalled then PostMessage(HWND_BROADCAST,$1D,0,0);
if FontExists('{#FontName}') then FontName:='{#FontName}' else FontName:='Arial';
if IsCustomFontInstalled then FontName:='{#FontName}';
Result:=True;
end;
procedure InitializeWizard;
begin
WizardForm.Font.Name:=FontName;
end;
procedure DeinitializeSetup;
begin
WizardForm.Free
if IsCustomFontInstalled then
if RemoveFontResource(ExpandConstant('{tmp}')+'\{#Font}') then PostMessage(HWND_BROADCAST,$1D,0,0);
end;