Страница 1 из 1

Запуск Excel

Добавлено: 10 окт 2019, 11:23
kad3
Добрый день!
Подскажите как запустить Excel из Mapbasic
конструкция вида

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

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

Re: Запуск Excel

Добавлено: 10 окт 2019, 11:43
trir

Re: Запуск Excel

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

Re: Запуск Excel

Добавлено: 10 окт 2019, 13:28
trir
нельзя, нужно пытать реестр - там всё записанно

Re: Запуск Excel

Добавлено: 11 окт 2019, 06:56
kad3
Если вдруг кому интересно

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

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 

Re: Запуск Excel

Добавлено: 11 окт 2019, 07:52
MI user
Вот такой вариант:

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

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

Re: Запуск Excel

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