четверг, 7 июня 2007 г.

Полезный код

Вот это уже более геморойно. Ты, насколько я понял, хочешь проигрывать звук с помощью медиаплеера с вкладки System? Я бы тебе не советовал, т.к. прога от этого будет тормозить (даже компилится долго) + размер тоже больше намного. Лучше используй sndPlaySound или PlaySound просто.
Делай так. Чтобы потом небыло проблем, заного сделай ресурс: в папку с прогой клади музыку и создаваай пустой файл wavfile.rc . В нём пиши MUS WAVE имя.wav. Потом лучше просто скопируй прогу ПУТЬ_К_DELPHI\Bin\brcc32.exe в папку с прогой и выполни её там с параметром wavfile.rc . В uses добавляй MMSystem, и как всегда ниже {$R wavfile.res} . Чтобы воспроизводить пиши: PlaySound(MUS, hInstance, SND_RESOURCE or SND_ASYNC);
Если надо всё-таки воспроизводить из медиа плеера - вот мой рецепт. Сначала извлекаем файл из ресурсов процедурой:
Код:
procedure TMainForm.ExtractRes(RName: string; RType: PChar; SaveFile: string);
var
ResSt: TResourceStream;//Работа с ресурсом
FileSt: TFileStream; //Создание файла
begin
try
ResSt:=TResourceStream.Create(hInstance, RName, RType); //Берём ресурс
try
if FileExists(SaveFile) then DeleteFile(SaveFile); //Всякое может быть...
FileSt:=TFileStream.Create(SaveFile, fmCreate); //Создаём файл
try
FileSt.CopyFrom(ResSt,0); //Копируем в него файл из ресурса
finally
FileSt.Free; //Освобождаем
end;
finally
ResSt.Free; //Тоже
end;
finally
end;
end;

А при крите формы пишем:

Код:
procedure TMainForm.FormCreate(Sender: TObject);
var
s: string;
begin
s:='C:\Temp\'+ExtractFileName(ParamStr(0))+'.wav'; //Так удобнее
ExtractRes('MUS', 'WAVE', s); //Вынимаем
MediaPlayer1.FileName:=s; //Впихиваем в медиаплеер
MediaPlayer1.Open; //Отрываем файл
end;

Ну, и при дестрое файл удаляем, это думаю не составит труда.

пятница, 1 июня 2007 г.

Фленов о Нортоне

Symantec Norton Ghost 10 Recovery Points Insecure Password Storage

Date: 1 may 07

Norton Ghost allows you to schedule snapshots of local disks for backup and recovery purposes. If these recovery points are set to save to a remote network share Ghost will prompt the user to enter a user name and password for the share.

Password information entered into Ghost for this purpose is encrypted and saved to the local file system in the applications home directory which has read access allowed for all users.

The encryption key used by Ghost to decrypt these stored credentials is derived from the MD5 hash of the plain text user name stored in the configuration file. Since every user on the system has read access to these configuration files, any user can decrypt the stored passwords.

This vulnerability is the result of insecure encryption utilization plus insecure file permissions.

Solving: download the latest update from vendor via LiveUpdate