On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1538
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.10 02:07. Заголовок: Проверка наличия в системе ОФИСА !


Всем привет !

Подскажите, как можно проверить наличие ОФИСОВ под различные версии Windows ?
Для Ms Word можно попытаться открыть через OLE свой файл. Если не открылся, значит нет его на компе !
Для Ms Excel тоже пройдет данный вариант.

А как быть с OpenOffice: Write & Calc ???

Подскажите пожалуйста надежное решение.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 39 , стр: 1 2 All [только новые]


Администратор




Пост N: 1635
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 31.08.10 08:27. Заголовок: Вместо oObj := TOle..


Вместо
oObj := TOleAuto():new(cServer) надо вызывать:
oObj := NewOle(cServer)

и проверять:
if oObj # nil
...

Static func NewOle(cServer)
Local oServer, hObj

Begin sequence
#ifdef __XHARBOUR__
hObj := CreateOleObject( cServer )
if OleError() == 0
oServer := TOleAuto():new( hObj )
#else
hObj := Win_OleCreateObject( cServer )
if ! Empty( hObj )
oServer := Win_OleAuto():new( hObj )
#endif
#ifdef __HARBOUR__
oServer:cClassName := cServer
#endif
endif
end
if oServer == nil
MsgInfo('Ошибка инициализации OLE:' + cServer)
endif
Return oServer


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1543
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.10 19:48. Заголовок: Подскажите, а как мо..


Подскажите, а как можно узнать установлен ли WinRar или WinZip в системе ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 446
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 07.09.10 21:10. Заголовок: Проверить реестр, а ..


Проверить реестр, а потом папку, указанную в реестре.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1544
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.10 22:14. Заголовок: PSP пишет: Проверит..


PSP пишет:

 цитата:
Проверить реестр



А как ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 447
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.09.10 09:09. Заголовок: HKEY_LOCAL_MACHINE&#..


HKEY_LOCAL_MACHINE\Software\<ИмяСофта> (для 7-Zip: HKEY_LOCAL_MACHINE\Software\7-Zip)
В Harbour для этого есть функция Win_RegGet(). Про xHarbour не подскажу, но тоже должна быть.
Можно еще регистрацию расширения имени файла проверить в HKEY_CLASSES_ROOT.
Запусти RegEdit, посмотри. Все станет ясно.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1
Зарегистрирован: 27.07.10
ссылка на сообщение  Отправлено: 08.09.10 11:16. Заголовок: Проверка наличия в системе ОФИСА !


Консольное приложение (на скорую руку) в MiniGUI, проверяющее наличие 7-Zip


 цитата:
#include "MiniGUI.ch"

Procedure Main
Local cPath7z

Open registry oReg key HKEY_LOCAL_MACHINE Section 'Software\7-Zip'
Get value cPath7z Name 'Path' of oReg
Close registry oReg

Cls

If !Empty( cPath7z )
If File( cPath7z + '\7z.exe' )
? '7-zip installed'
Else
? '7-zip NO installed'
Endif
Else
? 'No 7-zip'
Endif

Wait

Return



Думаю, примерно так же можно поступить с WinRAR и WinZip.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1545
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.10 11:58. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !
Буду делать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2299
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.08.12 12:25. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста, как можно узнать версию ОФИСА ?

Т.е. мне нужно различать Excel 2003 и 2007 на хХарборе !

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 92
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 21.08.12 13:02. Заголовок: Андрей попробуй пора..


Андрей попробуй поработать с реестром.

Ветка: HKEY_CLASSES_ROOT\Word.Application\CurVer или HKEY_CLASSES_ROOT\Excel.Application\CurVer

 
Year
Released Name Version Comments
1995 Word 95 7.0 Included in Office 95
1997 Word 97 8.0 Included in Office 97
1998 Word 98 8.5 Only sold as part of Office 97 Powered By Word 98, which was only available in Japan and Korea.
1999 Word 2000 9.0 Included in Office 2000
2001 Word 2002 10.0 Included in Office XP
2003 Office Word 2003 11.0 Included in Office 2003
2006 Office Word 2007 12.0 Included in Office 2007; released to businesses on November 30, 2006, released worldwide to consumers on January 30, 2007
2010 Word 2010 14.0 Included in Office 2010


Должно получиться.



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2300
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.08.12 13:37. Заголовок: santy пишет: попроб..


santy пишет:

 цитата:
попробуй поработать с реестром.


Спасибо, попробую !!!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 39
Зарегистрирован: 15.12.09
ссылка на сообщение  Отправлено: 25.08.12 16:38. Заголовок: http://www.sysengine..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2303
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.08.12 21:11. Заголовок: pureproft Спасибо ..


pureproft

Спасибо большое за информацию !!!
Очень много полезного...
С ходу нашел то что так долго искал на русском - "Win32 API по шагам.chm" и "VBA-первые шаги.chm" !!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4693
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.02.16 19:43. Заголовок: Всем привет ! Понадо..


Всем привет !
Понадобилось проверить программно есть ли WinMerge на компе пользователя. Как это сделать ?
И как получить полный путь к установленному WinMerge ?
А то развелось куча всяких версий виндов, и не знаешь как поступать ....
Заранее спасибо за помощь.

Проверял так:
cPath := win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinMerge.exe" )
Возвращает NIL
Хотя у меня запускается WinMerge из своей программы.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 775
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.02.16 20:41. Заголовок: Andrey пишет: Прове..


Andrey пишет:

 цитата:
Проверял так:


проверь через WMI , пример в tsb_filter

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4696
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.02.16 22:10. Заголовок: Haz пишет: проверь ..


Haz пишет:

 цитата:
проверь через WMI , пример в tsb_filter


Запустил пример. В нем НЕТ WinMerge, хотя на компе стоит...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 778
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.02.16 11:17. Заголовок: Andrey пишет: , хот..


Andrey пишет:

 цитата:
, хотя на компе стоит.


Догадываюсь, что в списке установок в панели управления- программы и компоненты тоже нет ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 173
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 15.02.16 12:01. Заголовок: Проверка наличия Calc (Open Office)


Function tst_opf_srv()
Local ret:=.f.
Local oServiceManager
begin sequence with {|e_p| break(e_p) }
oServiceManager := win_oleCreateObject("com.sun.star.ServiceManager" )
lopf := !( oServiceManager = NIL )
ret :=lopf
recover
ret:=.f.
end sequence
return ret


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4698
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.16 12:24. Заголовок: Haz пишет: в списке..


Haz пишет:

 цитата:
в списке установок в панели управления- программы и компоненты тоже нет ?


Есть.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 779
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.02.16 12:37. Заголовок: Andrey пишет: Есть...


Andrey пишет:

 цитата:
Есть.


чудеса тогда должен быть в WMI
Скачай какой нить простенький фришный WMI Explorer и скорми ему запрос
SELECT * FROM Win32_Product

покажет все поля , мож не в Caption искать надо


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4700
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.16 13:04. Заголовок: Нашёл WMI Explorer ..


Нашёл WMI Explorer Version 1.16 KS-Soft
Запустил, в списке нет WinMerge и WinRar тоже нет... Хотя в панели тоже WinRar так же присутствует.
У меня Win8.1 32bit



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 780
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.02.16 13:31. Заголовок: Andrey пишет: и Wi..


Andrey пишет:

 цитата:
и WinRar тоже нет.


аналогичная фигня
винрар есть в панели а в списке вимиай нет

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4702
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.16 14:18. Заголовок: Haz пишет: аналогич..


Haz пишет:

 цитата:
аналогичная фигня



И как тогда узнать путь к WinMerge ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 782
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.02.16 14:27. Заголовок: перебором по путям и..


перебором по путям из переменной %PATH%
или читай ключ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
и все что в нем

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4703
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.16 14:42. Заголовок: Haz пишет: переборо..


Haz пишет:

 цитата:
перебором по путям из переменной %PATH%


Нет в путях, не устанавливается там путь.

А как перебрать все нужные ключи ?

У меня почему то вот такой ключ:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinMerge_is1




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1186
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 15.02.16 15:15. Заголовок: Проверь, к примеру, ..


Проверь, к примеру, Win32_InstalledWin32Program

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 783
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.02.16 15:40. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как перебрать все нужные ключи ?


смотреть в примерах
UNINSTALL_EDITOR

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 784
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 15.02.16 15:43. Заголовок: PSP пишет: Win32_In..


PSP пишет:

 цитата:
Win32_InstalledWin32Program



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4707
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.16 18:48. Заголовок: Win32_InstalledWin32..


Win32_InstalledWin32Program - классная штука, но мне не подойдёт.
Оказалось нужно получить полный путь к WinMergeU.exe для вызова этой утилиты из командной строки.

Для Win32-bit искать путь можно через наличие файла по пути
C:\Program Files\WinMerge\WinMergeU.exe

А как для Win64-bit проверять ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 788
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.02.16 10:48. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как для Win64-bit проверять ?


проверяй через Uninstall , там есть и путь откуда установили и куда установили

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4708
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.02.16 16:01. Заголовок: Haz пишет: проверяй..


Haz пишет:

 цитата:
проверяй через Uninstall , там есть и путь откуда установили и куда установили





Вот здесь ключ ....\WinMerge_is1
А вдруг на другом компе будет \WinMerge_is5 !
Как тогда сделать ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 204
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 16.02.16 16:04. Заголовок: Вот так "нахожу&..


Вот так "нахожу" путь для ворда. Работает на всех системах( хр, семерка, восьмерка, десятка, 32,64)

Puti:=MSWORD_PATH()
****************************
Function MSWORD_PATH()
****************************
Local nHandle, cValue := ""

if RegOpenKey( HKEY_LOCAL_MACHINE,;
"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths", @nHandle ) == 0
RegQueryValue( nHandle, "WINWORD.EXE", @cValue )
cValue := lfn2sfn(cValue)
RegCloseKey( nHandle )
endif

Return (cValue)


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 789
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.02.16 16:18. Заголовок: Andrey пишет: Вот з..


Andrey пишет:

 цитата:
Вот здесь ключ ....\WinMerge_is1
А вдруг на другом компе будет \WinMerge_is5 !
Как тогда сделать ?


Пример из Minigui получает ВСЕ ключи. Найти в массиве элемент содержащий "WinMerge" - решается одной строкой и по барабану какое _ISxxx там приписано

или как MMK написал - тоже должно работать

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4709
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.02.16 17:43. Заголовок: Haz пишет: Пример и..


Haz пишет:

 цитата:
Пример из Minigui получает ВСЕ ключи.


Ткни в название, если есть. А то их много....

Один нашел, вроде работает. Но ключ ищет дурацкий: oKey:Get("DisplayIcon")

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 790
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.02.16 17:47. Заголовок: Andrey пишет: Ткни ..


Andrey пишет:

 цитата:
Ткни в название, если есть. А то их много....



вчера же только тыкал

 цитата:
смотреть в примерах
UNINSTALL_EDITOR


сами названия из RegEdit видно



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4710
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.02.16 18:50. Заголовок: Haz пишет: вчера же..


Haz пишет:

 цитата:
вчера же только тыкал



Да не посмотрел сразу... Упустил... На другое переключился.
Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4711
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.16 19:06. Заголовок: Сделал ! Кому интере..


Сделал ! Кому интересно, вот исходник.
////////////////////////////////////////////////////////////////////////
// Формируем полное имя установленного WinMerge через запись в реестре
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 791
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.02.16 20:46. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

 цитата:
Сделал ! Кому интересно, вот исходник.




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5482
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.02.16 22:24. Заголовок: Andrey Я не чекал т..


Andrey
Я не чекал тест , просто интересно , при таком подходе и путь к Winrar поймает (под вынь 32 или 64) ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4712
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.16 23:29. Заголовок: Dima пишет: Я не че..


Dima пишет:

 цитата:
Я не чекал тест , просто интересно , при таком подходе и путь к Winrar поймает (под вынь 32 или 64) ?


Вроде должен.
Пробуй заменить cReg := "WinMerge" на WinRar и строку поменяй ещё:
if !empty(cname) .and. AT("WINMERGE",upper(cname)) > 0
на
if !empty(cname) .and. AT(upper(cReg),upper(cname)) > 0


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 39 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 555
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет