Всё ясно
» Inno Setup (создание инсталяционных пакетов)
Chanka
Почта, почта и ещё раз почта...
Там же все объяснения!
Unc1e
Кстати, прозрачности можно добиться (но только одного цвета) - и без альфа-канала 'особой' BMP-хи.
Но это кому как удобнее!
Почта, почта и ещё раз почта...
Там же все объяснения!
Unc1e
Кстати, прозрачности можно добиться (но только одного цвета) - и без альфа-канала 'особой' BMP-хи.
Но это кому как удобнее!
Ну например мне надо сделать прозрачным розовый, как осуществить?
4esnok
Какой именно розовый? В HEX-формате, если можно...
А вообще читаем руководство 5.1 и вот это: http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=640#9
Какой именно розовый? В HEX-формате, если можно...
А вообще читаем руководство 5.1 и вот это: http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=640#9
Ещё вопрос, как сделать чтобы во время слайд шоу, картинка менялась по мере установки, например на 10% 20, 30 и тд
4esnok
Не вижу, в чём проблема? Берём расширенный прогрессбар из CoronaSkin от Victor_Dobrov, попутно говорим ему спасибо, а затем по мере изменения индикатора процентов установки - задаём картинку на 10, 20 и так далее процентов.
Добавлено:
Только всё-таки через BeforeInstall и AfterInstall попроще будет, хотя, ИМХО.
Не вижу, в чём проблема? Берём расширенный прогрессбар из CoronaSkin от Victor_Dobrov, попутно говорим ему спасибо, а затем по мере изменения индикатора процентов установки - задаём картинку на 10, 20 и так далее процентов.
Добавлено:
Только всё-таки через BeforeInstall и AfterInstall попроще будет, хотя, ИМХО.
Прошу помощи
MsgBox(' "'+ExpandConstant('{app}\Bin\'+'XR_3DA.exe')+'".' #13#13
Как в сообщение вставить ExtractFilePath и CurrentFileName тоесть какой сейчас копируется фаил и куда.
MsgBox(' "'+ExpandConstant('{app}\Bin\'+'XR_3DA.exe')+'".' #13#13
Как в сообщение вставить ExtractFilePath и CurrentFileName тоесть какой сейчас копируется фаил и куда.
Chanka
А весь код можно?
А весь код можно?
Конечно
Так вот можно ли сделать чтобы в сообщении в место +ExpandConstant('{app}\Bin\'+'XR_3DA.exe') сделать чтобы писался путь и файл который копируется
function NextButtonClick(CurPage: Integer): Boolean;
var
sz:Integer;
begin
Result := True;
if CurPage = 6 then
begin
if FileSize(ExpandConstant('{app}\Bin\XR_3DA.exe'), sz) then
begin
if sz <> 1545208 then
begin
MsgBox('Контрольная сумма для файла "'+ExpandConstant('{app}\Bin\'+'XR_3DA.exe')+'" не совпадает с эталлоной.' #13#13
'Возможно файл не является оригинальным или поврежден.' #13
'Рекомендуеться переустановить игру с оригинального носителя.', mbError, mb_Ok);
WizardForm.Close;
Result := False;
Exit;
end;
end;
end;
end;
Так вот можно ли сделать чтобы в сообщении в место +ExpandConstant('{app}\Bin\'+'XR_3DA.exe') сделать чтобы писался путь и файл который копируется
function NextButtonClick(CurPage: Integer): Boolean;
var
sz:Integer;
begin
Result := True;
if CurPage = 6 then
begin
if FileSize(ExpandConstant('{app}\Bin\XR_3DA.exe'), sz) then
begin
if sz <> 1545208 then
begin
MsgBox('Контрольная сумма для файла "'+ExpandConstant('{app}\Bin\'+'XR_3DA.exe')+'" не совпадает с эталлоной.' #13#13
'Возможно файл не является оригинальным или поврежден.' #13
'Рекомендуеться переустановить игру с оригинального носителя.', mbError, mb_Ok);
WizardForm.Close;
Result := False;
Exit;
end;
end;
end;
end;
Chanka
Все равно не понял. Там всё пишется. Объясни тупо на пальцах.
Сделал [more=вариант]
function NextButtonClick(CurPage: Integer): Boolean;
var
sz: Integer;
begin
Result := True
if CurPage = 6 then
begin
if FileSize(ExpandConstant('{app}\Bin\XR_3DA.exe'), sz) then
begin
if sz <> 1545208 then
begin
MsgBox('Контрольная сумма для файла "'+ExpandConstant('{app}\Bin\XR_3DA.exe')+'" не совпадает с эталонной.' #13#13
'Возможно файл не является оригинальным или поврежден.' #13
'Рекомендуеться переустановить игру с оригинального носителя.', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
else
begin
MsgBox('Файл "'+ExpandConstant('{app}\Bin\'+'XR_3DA.exe')+'" отсутствует.', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
end;
[/more], если файл отсутствует.
Добавлено:
Может быть так надо? [more=Пример]
function NextButtonClick(CurPage: Integer): Boolean;
var
sz: Integer;
begin
Result := True
if CurPage = 6 then
begin
if FileSize(ExpandConstant('{app}\Bin\XR_3DA.exe'), sz) then
begin
if sz <> 1545208 then
begin
MsgBox('Контрольная сумма для файла "XR_3DA.exe" в папке "'+ExpandConstant('{app}\Bin')+'" не совпадает с эталонной.' #13#13
'Возможно файл не является оригинальным или поврежден.' #13
'Рекомендуеться переустановить игру с оригинального носителя.', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
else
begin
MsgBox('Файл "XR_3DA.exe" отсутствует в папке "'+ExpandConstant('{app}\Bin')+'".', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
end;
[/more]
Все равно не понял. Там всё пишется. Объясни тупо на пальцах.
Сделал [more=вариант]
function NextButtonClick(CurPage: Integer): Boolean;
var
sz: Integer;
begin
Result := True
if CurPage = 6 then
begin
if FileSize(ExpandConstant('{app}\Bin\XR_3DA.exe'), sz) then
begin
if sz <> 1545208 then
begin
MsgBox('Контрольная сумма для файла "'+ExpandConstant('{app}\Bin\XR_3DA.exe')+'" не совпадает с эталонной.' #13#13
'Возможно файл не является оригинальным или поврежден.' #13
'Рекомендуеться переустановить игру с оригинального носителя.', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
else
begin
MsgBox('Файл "'+ExpandConstant('{app}\Bin\'+'XR_3DA.exe')+'" отсутствует.', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
end;
[/more], если файл отсутствует.
Добавлено:
Может быть так надо? [more=Пример]
function NextButtonClick(CurPage: Integer): Boolean;
var
sz: Integer;
begin
Result := True
if CurPage = 6 then
begin
if FileSize(ExpandConstant('{app}\Bin\XR_3DA.exe'), sz) then
begin
if sz <> 1545208 then
begin
MsgBox('Контрольная сумма для файла "XR_3DA.exe" в папке "'+ExpandConstant('{app}\Bin')+'" не совпадает с эталонной.' #13#13
'Возможно файл не является оригинальным или поврежден.' #13
'Рекомендуеться переустановить игру с оригинального носителя.', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
else
begin
MsgBox('Файл "XR_3DA.exe" отсутствует в папке "'+ExpandConstant('{app}\Bin')+'".', mbError, mb_Ok)
WizardForm.Close
Result := False
Exit
end
end
end;
[/more]
iTASmania_Inc
Почти так
Спасибо!
Почти так
Спасибо!
Chanka
Цитата:
А полностью как?
P.S.: Контрольная сумма - это, на мой взгляд, больше на MD5 или CRC32 должно походить, а не на простое указание размера.
Цитата:
Почти так
А полностью как?
P.S.: Контрольная сумма - это, на мой взгляд, больше на MD5 или CRC32 должно походить, а не на простое указание размера.
iTASmania_Inc
Цитата:
АГА
Цитата:
Можешь помочь с этим. А то я не знаю как. Можно я тебе весь свой код в личку скину чтобы тут не засорять?
Цитата:
А полностью так?
АГА
Цитата:
P.S.: контрольная сумма - это еа мой взгляд больше на MD5 или CRC32 должно походить, а не на простое указание размера.
Можешь помочь с этим. А то я не знаю как. Можно я тебе весь свой код в личку скину чтобы тут не засорять?
Chanka
Кидай, только я уже завтра погляжу, а то мне ещё в университет ехать - расписание узнавать, а спать хоца.
Кидай, только я уже завтра погляжу, а то мне ещё в университет ехать - расписание узнавать, а спать хоца.
iTASmania_Inc
Спасибо! Мне не к спеху. Так что можешь идти
Спасибо! Мне не к спеху. Так что можешь идти
Victor_Dobrov Corona Skin отказывается корректно отображать видео и аудио карту. Вот скрин http://www.rapidshare.ru/388437. Это недоработка в скрипте или у меня с системой что-то?
Сори за ламерский вопрос...
Есть у меня в сетапе такая строка
Код:
[UninstallRun]
Filename: "http://www......com/blabla.php"; Flags: shellexec; RunOnceId: "xxxx"
Есть у меня в сетапе такая строка
Код:
[UninstallRun]
Filename: "http://www......com/blabla.php"; Flags: shellexec; RunOnceId: "xxxx"
Цитата:
Corona Skin отказывается корректно отображать видео и аудио карту
Разберёмся...
Здесь много писали о глюках с RTF, комбо-боксами и прочее при вставке изображения в фон.
Мой вариант решения свободен от этих недостатков:
[Setup]
AppName=Background Image
AppVerName=Background Image
CreateAppDir=false
[Files]
Source: BackgroundImage.bmp; DestDir: embedded; Flags: dontcopy noencryption
[Code]
function ShowWindow(hWnd, nCmdShow: LongWord): LongWord; external 'ShowWindow@user32.dll stdcall';
Procedure BackgroundOnActivate(Sender: TObject); Begin if WizardForm.Visible then WizardForm.Show End;
Procedure InitializeWizard;
var BackgroundForm: TForm; BackgroundImage: TBitmapImage;
Begin
BackgroundForm:= TForm.Create(nil)
BackgroundForm.BorderStyle:= bsNone
BackgroundForm.OnActivate:= @BackgroundOnActivate;
ShowWindow(BackgroundForm.Handle, sw_ShowMaximized) // фоновое окно на полный экран
BackgroundImage:= TBitmapImage.Create(BackgroundForm)
BackgroundImage.Align:= alClient
BackgroundImage.Stretch:= True
ExtractTemporaryFile('BackgroundImage.bmp')
BackgroundImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BackgroundImage.bmp'))
BackgroundImage.Parent:= BackgroundForm
end;
Добавлено:
Unc1e, запусти Корону, нажми клавишу A(ф). В окошке истории должна быть строка 'Видеоадаптер и звуковые карты определяются через API'. Я недавно обновил скрипт, у тебя последняя версия?
Victor_Dobrov
Если нажать мышой на фоновом окне то WizardForm исчезает.
Добавлено:
Есть ещё такой вариант но его нужно доработать, после установки выдаёт ошибку.
[Files]
Source: BackImage.bmp; DestDir: {tmp}; Flags: dontcopy;
[Code]
function ShowWindow(hWnd: LongWord; nCmdShow: LongWord): LongWord;
external 'ShowWindow@user32.dll stdcall';
procedure FormOnActivate(Sender: TObject);
begin
WizardForm.Show
end;
procedure InitializeWizard();
var
Form: TForm;
BackImage: TBitmapImage;
begin
ExtractTemporaryFile('BackImage.bmp')
Form:=CreateCustomForm()
Form.BorderStyle:=bsNone
Form.Color:=clBlack
ShowWindow(Form.Handle, SW_SHOWMAXIMIZED)
Form.OnActivate:=@FormOnActivate
BackImage:=TBitmapImage.Create(Form)
BackImage.Align:=alClient
BackImage.Stretch:=True
BackImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BackImage.bmp'))
BackImage.Parent:=Form
end;
Если нажать мышой на фоновом окне то WizardForm исчезает.
Добавлено:
Есть ещё такой вариант но его нужно доработать, после установки выдаёт ошибку.
[Files]
Source: BackImage.bmp; DestDir: {tmp}; Flags: dontcopy;
[Code]
function ShowWindow(hWnd: LongWord; nCmdShow: LongWord): LongWord;
external 'ShowWindow@user32.dll stdcall';
procedure FormOnActivate(Sender: TObject);
begin
WizardForm.Show
end;
procedure InitializeWizard();
var
Form: TForm;
BackImage: TBitmapImage;
begin
ExtractTemporaryFile('BackImage.bmp')
Form:=CreateCustomForm()
Form.BorderStyle:=bsNone
Form.Color:=clBlack
ShowWindow(Form.Handle, SW_SHOWMAXIMIZED)
Form.OnActivate:=@FormOnActivate
BackImage:=TBitmapImage.Create(Form)
BackImage.Align:=alClient
BackImage.Stretch:=True
BackImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BackImage.bmp'))
BackImage.Parent:=Form
end;
Цитата:
Если нажать мышой на фоновом окне то WizardForm исчезает.
Исправил код скрипта, см. там же...
Vygose
не уверен что именно то шо нужно но пробовать можно
Код: #define MyVer GetFileVersion('..\app\myprog.exe')
;; если же нужно задавать версию, то
;; #define MyVer "1.0.0.28"
[Setup]
VersionInfoVersion={#MyVer}
[INI]
Filename: "{app}\uninstall.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www......com/blabla.php";
[Code]
procedure CreateURL();
var
myString, m1:string;
begin
m1:=ExpandConstant('{#MyVer}');
myString := 'http://www......com/blabla.php';
myString := myString + '\' + m1 + '\добавляем все шо нужно';
SetIniString('InternetShortcut', 'URL', myString, ExpandConstant('{app}\uninstall.url'));
end;
function InitializeUninstall(): Boolean;
var
ErrorCode: Integer;
begin
CreateURL;
Result:=True;
ShellExec('', ExpandConstant('{app}\uninstall.url'),'', '', SW_SHOW, ewNoWait, ErrorCode);
end;
не уверен что именно то шо нужно но пробовать можно
Код: #define MyVer GetFileVersion('..\app\myprog.exe')
;; если же нужно задавать версию, то
;; #define MyVer "1.0.0.28"
[Setup]
VersionInfoVersion={#MyVer}
[INI]
Filename: "{app}\uninstall.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www......com/blabla.php";
[Code]
procedure CreateURL();
var
myString, m1:string;
begin
m1:=ExpandConstant('{#MyVer}');
myString := 'http://www......com/blabla.php';
myString := myString + '\' + m1 + '\добавляем все шо нужно';
SetIniString('InternetShortcut', 'URL', myString, ExpandConstant('{app}\uninstall.url'));
end;
function InitializeUninstall(): Boolean;
var
ErrorCode: Integer;
begin
CreateURL;
Result:=True;
ShellExec('', ExpandConstant('{app}\uninstall.url'),'', '', SW_SHOW, ewNoWait, ErrorCode);
end;
Слайдшоу Устранил ошибку, из-за которой инсталлятор долго закрывался, спасибо Genri. При клике на фоновой картинке инсталлятор больше не исчезает. RTF, комбо-боксы и прочее отображаются нормально. В архиве 5 скриптов: 1) фоновый рисунок 2) слайдшоу 3) скринсевер 4) системные скринсэверы 5) проигрывание AVI-файла в фоне.
Victor_Dobrov
Цитата:
Да, самая последняя.
Цитата:
В окошке истории должна быть строка 'Видеоадаптер и звуковые карты определяются через API'. Я недавно обновил скрипт, у тебя последняя версия?
Да, самая последняя.
Unc1e, потестируй вот [more=этот небольшой скрипт]
[Setup]
AppName=GetDeviceInfo
AppVerName=GetDeviceInfo
CreateAppDir=false
[Code]
type
TWaveOutCaps = record vPid, vDriverVersion: DWord; sName: array[0..31] of Char; Formats: DWord; Channels: Word; Support: DWord; end; PDisplay_Device = record cb: DWord; DeviceName: array[0..31] of Char; DeviceString: array[0..127] of Char; StateFlags: DWord; DeviceID, DeviceKey: array[0..127] of Char; end;
Const
oneMB= 1024*1024; DISPLAY_DEVICE_PRIMARY_DEVICE = 4;
var
Report: String; n, errCode: Integer; lpCaps: TWaveOutCaps; lpDisplayDevice: PDisplay_Device; DeviceValue: Cardinal; VideoName, SoundName, MixerName, DeviceKey: String; Keys: TArrayOfString;
function EnumDisplayDevices(lpDevice, iDevNum: DWord; var lpDisplayDevice: PDisplay_Device; dwFlags: DWord):Boolean; external 'EnumDisplayDevicesA@user32.dll stdcall';
function waveOutGetDevCaps(uDeviceID: LongInt; var lpCaps: TWaveOutCaps; uSize: LongInt): LongInt; external 'waveOutGetDevCapsA@winmm.dll stdcall';
function waveOutGetNumDevs: Integer; external 'waveOutGetNumDevs@winmm.dll stdcall';
function mixerGetDevCaps(uDeviceID: LongInt; var lpCaps: TWaveOutCaps; uSize: LongInt): LongInt; external 'mixerGetDevCapsA@winmm.dll stdcall';
function mixerGetNumDevs: Integer; external 'mixerGetNumDevs@winmm.dll stdcall';
Function InitializeSetup: Boolean;
Begin
{video}
lpDisplayDevice.cb:= SizeOf(lpDisplayDevice);
n:= 0; while not (EnumDisplayDevices(0, n, lpDisplayDevice, 0) and (lpDisplayDevice.StateFlags and DISPLAY_DEVICE_PRIMARY_DEVICE > 0)) and (n < 127) do n:= n +1
for n:= 0 to 127 do
DeviceKey:= DeviceKey + lpDisplayDevice.DeviceKey[n]; Delete(DeviceKey, Pos(Chr(0), DeviceKey), 127); { ключ драйвера получаем из API }
StringChange(DeviceKey,'\Registry\Machine\',''); errCode:= 1; DeviceValue:= 0; { объём видеопамяти }
RegQueryBinaryValue(HKLM, DeviceKey, 'HardwareInformation.MemorySize', VideoName) { проверку 9х или NT не делаю }
for n:= 1 to Length(VideoName) do
begin
DeviceValue:= DeviceValue + Ord(VideoName[n]) *errCode; errCode:= errCode * $100; end;
VideoName:= ''; for n:= 0 to 127 do VideoName:= VideoName + lpDisplayDevice.DeviceString[n]; Delete(VideoName, Pos(Chr(0), VideoName), 127);
if VideoName <> '' then
if DeviceValue > 0 then VideoName:= VideoName +', '+ IntToStr(DeviceValue/oneMB) + 'Mb' else VideoName:= VideoName +' (стандартный драйвер)'
else VideoName:= 'Ошибка драйвера или оборудования'
{sound}
for errCode:= 0 to waveOutGetNumDevs do begin
waveOutGetDevCaps(errCode-1, lpCaps, SizeOf(lpCaps)); SoundName:=''
for n:= 0 to 31 do SoundName:= SoundName + lpCaps.sName[n]; Delete(SoundName, Pos(Chr(0), SoundName), 31);
SetArrayLength(Keys, errCode+1); if errCode+1 > 0 then Keys[errCode]:= SoundName
end;
SoundName:= #9
if errCode > 0 then
for n:= 0 to GetArrayLength(Keys) -1 do
SoundName:= SoundName + Keys[n] + #13#10#9
else SoundName:= #9 'Звуковые устройства не обнаружены'
{mixer}
for errCode:= 0 to mixerGetNumDevs do begin
mixerGetDevCaps(errCode-1, lpCaps, SizeOf(lpCaps)); MixerName:=''
for n:= 0 to 31 do MixerName:= MixerName + lpCaps.sName[n]; Delete(MixerName, Pos(Chr(0), MixerName), 31);
SetArrayLength(Keys, errCode); if errCode > 0 then Keys[errCode-1]:= MixerName
end;
MixerName:= #9
if errCode > 0 then
for n:= 0 to GetArrayLength(Keys) -1 do
MixerName:= MixerName + Keys[n] + #13#10#9
else MixerName:= #9 'Звуковые устройства не обнаружены'
Report:= 'Video: '#9 + VideoName + #13#10 'Key: '#9 + DeviceKey + #13#10#13 'SoundCards: '#13#10 + SoundName + #13#10 'MixerDev: '#13#10 + MixerName
MsgBox(Report, mbInformation, mb_Ok)
SaveStringToFile('Report.txt', Report, True);
End;
[/more], в котором исправлено определение видеокарты.
Данный скрипт создаёт файл Report.txt, отпиши, что в нём...
[Setup]
AppName=GetDeviceInfo
AppVerName=GetDeviceInfo
CreateAppDir=false
[Code]
type
TWaveOutCaps = record vPid, vDriverVersion: DWord; sName: array[0..31] of Char; Formats: DWord; Channels: Word; Support: DWord; end; PDisplay_Device = record cb: DWord; DeviceName: array[0..31] of Char; DeviceString: array[0..127] of Char; StateFlags: DWord; DeviceID, DeviceKey: array[0..127] of Char; end;
Const
oneMB= 1024*1024; DISPLAY_DEVICE_PRIMARY_DEVICE = 4;
var
Report: String; n, errCode: Integer; lpCaps: TWaveOutCaps; lpDisplayDevice: PDisplay_Device; DeviceValue: Cardinal; VideoName, SoundName, MixerName, DeviceKey: String; Keys: TArrayOfString;
function EnumDisplayDevices(lpDevice, iDevNum: DWord; var lpDisplayDevice: PDisplay_Device; dwFlags: DWord):Boolean; external 'EnumDisplayDevicesA@user32.dll stdcall';
function waveOutGetDevCaps(uDeviceID: LongInt; var lpCaps: TWaveOutCaps; uSize: LongInt): LongInt; external 'waveOutGetDevCapsA@winmm.dll stdcall';
function waveOutGetNumDevs: Integer; external 'waveOutGetNumDevs@winmm.dll stdcall';
function mixerGetDevCaps(uDeviceID: LongInt; var lpCaps: TWaveOutCaps; uSize: LongInt): LongInt; external 'mixerGetDevCapsA@winmm.dll stdcall';
function mixerGetNumDevs: Integer; external 'mixerGetNumDevs@winmm.dll stdcall';
Function InitializeSetup: Boolean;
Begin
{video}
lpDisplayDevice.cb:= SizeOf(lpDisplayDevice);
n:= 0; while not (EnumDisplayDevices(0, n, lpDisplayDevice, 0) and (lpDisplayDevice.StateFlags and DISPLAY_DEVICE_PRIMARY_DEVICE > 0)) and (n < 127) do n:= n +1
for n:= 0 to 127 do
DeviceKey:= DeviceKey + lpDisplayDevice.DeviceKey[n]; Delete(DeviceKey, Pos(Chr(0), DeviceKey), 127); { ключ драйвера получаем из API }
StringChange(DeviceKey,'\Registry\Machine\',''); errCode:= 1; DeviceValue:= 0; { объём видеопамяти }
RegQueryBinaryValue(HKLM, DeviceKey, 'HardwareInformation.MemorySize', VideoName) { проверку 9х или NT не делаю }
for n:= 1 to Length(VideoName) do
begin
DeviceValue:= DeviceValue + Ord(VideoName[n]) *errCode; errCode:= errCode * $100; end;
VideoName:= ''; for n:= 0 to 127 do VideoName:= VideoName + lpDisplayDevice.DeviceString[n]; Delete(VideoName, Pos(Chr(0), VideoName), 127);
if VideoName <> '' then
if DeviceValue > 0 then VideoName:= VideoName +', '+ IntToStr(DeviceValue/oneMB) + 'Mb' else VideoName:= VideoName +' (стандартный драйвер)'
else VideoName:= 'Ошибка драйвера или оборудования'
{sound}
for errCode:= 0 to waveOutGetNumDevs do begin
waveOutGetDevCaps(errCode-1, lpCaps, SizeOf(lpCaps)); SoundName:=''
for n:= 0 to 31 do SoundName:= SoundName + lpCaps.sName[n]; Delete(SoundName, Pos(Chr(0), SoundName), 31);
SetArrayLength(Keys, errCode+1); if errCode+1 > 0 then Keys[errCode]:= SoundName
end;
SoundName:= #9
if errCode > 0 then
for n:= 0 to GetArrayLength(Keys) -1 do
SoundName:= SoundName + Keys[n] + #13#10#9
else SoundName:= #9 'Звуковые устройства не обнаружены'
{mixer}
for errCode:= 0 to mixerGetNumDevs do begin
mixerGetDevCaps(errCode-1, lpCaps, SizeOf(lpCaps)); MixerName:=''
for n:= 0 to 31 do MixerName:= MixerName + lpCaps.sName[n]; Delete(MixerName, Pos(Chr(0), MixerName), 31);
SetArrayLength(Keys, errCode); if errCode > 0 then Keys[errCode-1]:= MixerName
end;
MixerName:= #9
if errCode > 0 then
for n:= 0 to GetArrayLength(Keys) -1 do
MixerName:= MixerName + Keys[n] + #13#10#9
else MixerName:= #9 'Звуковые устройства не обнаружены'
Report:= 'Video: '#9 + VideoName + #13#10 'Key: '#9 + DeviceKey + #13#10#13 'SoundCards: '#13#10 + SoundName + #13#10 'MixerDev: '#13#10 + MixerName
MsgBox(Report, mbInformation, mb_Ok)
SaveStringToFile('Report.txt', Report, True);
End;
[/more], в котором исправлено определение видеокарты.
Данный скрипт создаёт файл Report.txt, отпиши, что в нём...
Victor_Dobrov
Цитата:
Теперь все работает! и видео и аудио карта определились правильно:
Цитата:
А аудио так и определяется, даже через get_hw_caps.dll
Цитата:
исправлено определение видеокарты.
Теперь все работает! и видео и аудио карта определились правильно:
Цитата:
Video: NVIDIA GeForce 6600 (стандартный драйвер)
Key: System\CurrentControlSet\Control\Video\{1EE8547A-2B40-487F-87E9-2707BBE01D7C}\0000
SoundCards:
Динамики (C-Media High Definiti
Динамики (C-Media High Definiti
А аудио так и определяется, даже через get_hw_caps.dll
Corona Skin & Check System Requirements Устранил недоработку при определении видеокарт со стандартными драйверами. Добавил слайдшоу, оно запустится, если найдена папка Slides рядом с инсталлятором. на BevelLabel можно кликать правой кнопкой
Unc1e
Скорее всего у тебя не установлены дрова на видео и звук, используются стандартные вистовские, советую установить драйвер хотя бы для видеокарты.
Unc1e
Скорее всего у тебя не установлены дрова на видео и звук, используются стандартные вистовские, советую установить драйвер хотя бы для видеокарты.
Victor_Dobrov
Цитата:
Дрова у меня стоят свежие. Правда на звук предназначены под ХР, но ставятся без проблем.
Цитата:
советую установить драйвер хотя бы для видеокарты
Дрова у меня стоят свежие. Правда на звук предназначены под ХР, но ставятся без проблем.
omals
omg, как сложно спасибо
omg, как сложно спасибо
Vygose
ну сорь
может и есть путь попроще
сходу написал как можно сделать
правда сейчас подумал, что файл {app}\uninstall.url при заканчивании инсталяции нужно будет удалить самому
ешо несколько строк кода
ну сорь
может и есть путь попроще
сходу написал как можно сделать
правда сейчас подумал, что файл {app}\uninstall.url при заканчивании инсталяции нужно будет удалить самому
ешо несколько строк кода
Chanka
Проверь почту!
Проверь почту!
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
Предыдущая тема: Mail.ru агент - вход не выполнен
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.