Запуск Excel

MapInfo, MapBasic
Ответить
kad3
Интересующийся
Сообщения: 31
Зарегистрирован: 13 май 2016, 13:49
Репутация: 4

Запуск Excel

Сообщение kad3 » 10 окт 2019, 11:23

Добрый день!
Подскажите как запустить Excel из Mapbasic
конструкция вида

Код: Выделить всё

 Run Program "C:\Program Files (x86)\Microsoft Office\Office14\Excel.exe"
не подходит т.к. Excel может быть установлен где угодно. Или как возможно получить путь где установлен Excel.

trir
Гуру
Сообщения: 5275
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Запуск Excel

Сообщение trir » 10 окт 2019, 11:43


kad3
Интересующийся
Сообщения: 31
Зарегистрирован: 13 май 2016, 13:49
Репутация: 4

Re: Запуск Excel

Сообщение kad3 » 10 окт 2019, 11:55

trir писал(а):
10 окт 2019, 11:43
https://www.actualinstaller.com/help/winword.html
А как мне это использовать в mapbasic?
Можно примерчик?

trir
Гуру
Сообщения: 5275
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Запуск Excel

Сообщение trir » 10 окт 2019, 13:28

нельзя, нужно пытать реестр - там всё записанно

kad3
Интересующийся
Сообщения: 31
Зарегистрирован: 13 май 2016, 13:49
Репутация: 4

Re: Запуск Excel

Сообщение kad3 » 11 окт 2019, 06:56

Если вдруг кому интересно

Код: Выделить всё

function GetExePath (Byval ExeName as string) as string 

Dim lRetVal As integer 
Dim hKey,sType,Ssize As integer 
Dim sValue,SKey As String 

GetExePath="c:\program files\" 
sType =REG_SZ 
Ssize =1024 

SKey="Software\Microsoft\Windows\CurrentVersion\App Paths\" & ExeName 
lRetVal = RegOpenKey(HKEY_LOCAL_MACHINE,SKey,hKey) 

If lRetVal <> ERROR_SUCCESS Then 
        exit function 
Else 
        sValue =string$(ssize,chr$(32)) 

        lRetVal = RegQueryValueEx(hKey,"Path", 0, sType , sValue, Ssize ) 
        If lRetVal <> ERROR_SUCCESS Then 
                exit function 
        Else 
                GetExePath =rtrim$(sValue) 
                if right$(rtrim$(sValue),1)<>"\" then 
                        GetExePath=rtrim$(sValue) & "\" 
                end if 
        End If 
        lRetVal = RegCloseKey(hKey) 

End If 

End function 

Аватара пользователя
MI user
Участник
Сообщения: 63
Зарегистрирован: 14 янв 2013, 17:08
Репутация: 33
Откуда: Оренбург

Re: Запуск Excel

Сообщение MI user » 11 окт 2019, 07:52

Вот такой вариант:

Код: Выделить всё

Run Program "cmd.exe /c start excel.exe"

gamm
Гуру
Сообщения: 4046
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: Запуск Excel

Сообщение gamm » 11 окт 2019, 13:06

kad3 писал(а):
10 окт 2019, 11:23
Подскажите как запустить Excel из Mapbasic
а зачем вам его запускать? Если нужно использовать, то дергайте через старый добрый DDE (Глава 11 мануала по Мапвасику) или AciveX (или как оно нынче называется), сочинив соответствующую DLL.

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей