Outlook

SBoyko 22.06.2004 - 15:58 | Помогите, люди. Задача элементарная, решений видится много - а там ... кто его знает что будет работать и в 9x и в NT. Как быстрее всего и главное правильнее(!) определить версию установленного в системе OutLook'а ?
Monty 1 - 22.06.2004 - 19:37 | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express] "MediaVer"="6,0,2800,1106"
SBoyko 2 - 23.06.2004 - 09:14 | OutLook не есть Outlook Express
Старый UE 3 - 23.06.2004 - 12:03 | Может быть создать Outlook.Application (или как там его?) и получить значение свойства Version? Но только это строковое свойство.
Delphist 4 - 23.06.2004 - 12:10 | 2 Monty Федор, ты? (сорри за оффтоп)
SBoyko 5 - 23.06.2004 - 12:38 | Старый UE Спасибо за идею, только боюсь эта процедура с созданием кома будет выполняться в разы дольше, чем даже самые изощренные поиски в реестре. Просто операция довольно критична ко времени выполнения.
Bronya 6 - 23.06.2004 - 12:54 | Может в бинарнеке или в ресурсах попробовать найти? Конечно маньячно, зато быстро и вполне по хакерски 8-)
Delphist 7 - 23.06.2004 - 14:28 | А может, проверять версию EXE-файла Аутлука в c:\Program files\Office\... ? Вызвать GetFileVersionInfo(...) и глянуть результат? Должно быть достаточно быстро.
SBoyko 8 - 23.06.2004 - 16:22 | Спасибо всем, за дельные советы. Вот самый быстрый способ: function GetFileVersion(FName: TFileName): String; var InfoSize, Wnd: DWORD; VerBuf: Pointer; FI: PVSFixedFileInfo; VerSize: DWORD; Major, Minor : Integer; begin Result := ''; InfoSize:= GetFileVersionInfoSize(PChar(FName), Wnd); if InfoSize <> 0 then begin GetMem(VerBuf, InfoSize); try if GetFileVersionInfo(PChar(FName), Wnd, InfoSize, VerBuf) then if VerQueryValue(VerBuf, '\', Pointer(FI), VerSize) then begin Major:= FI.dwFileVersionMS shr 16; Minor:= FI.dwFileVersionMS and $FFFF; Result := Format('%d.%d',[Major, Minor]); end; finally FreeMem(VerBuf); end; end; end;
Старый UE 9 - 23.06.2004 - 17:27 | 2SBoyko, хм... а как ты определяешь путь к аутлуку?
Deflorator 10 - 23.06.2004 - 21:14 | путь в реестре. Монти - это не фиодор, а КОНСТАНТИН
Старый UE 11 - 24.06.2004 - 02:38 | 2Deflorator, для всех версий один и тот же ключик в реестре?
Delphist 12 - 24.06.2004 - 03:37 | High UE, Outlook валяется на %Program files%\Microsoft Office\Office независимо от версии. Во всяком случае, пока так оно и есть, пока сама MS не поменяет.
Старый UE 13 - 24.06.2004 - 12:34 | 2Delphist, привет. А если я буду офис в другую папку устанавливать?...
SBoyko 14 - 24.06.2004 - 14:36 | Ищу так: OUTLOOK_VERSION = '\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE'; .... if reg.OpenKeyReadOnly(OUTLOOK_VERSION) then begin path := reg.ReadString(''); if FileExists(path) then ver := GetFileVersion(path); end; .....

>>