Sumário

# Serviço ScriptForge.Platform

O serviço Platform fornece um conjunto de propriedades sobre o ambiente de execução atual e seu contexto, incluindo:

- A plataforma de hardware (arquitetura, contagem de núcleos do CPU, tipo de máquina, etc)

- Informações sobre o sistema operacional (Tipo do sistema, lançamento, versão, etc)

- A versão do LibreOffice

- Nome de usuário atual

Todas as propriedades do serviço Platform são somente leitura.

## Invocação do serviço

Antes de usar o serviço Platform a biblioteca ScriptForge precisa ser carregada ou importada:

• Macros BASIC precisam carregar a biblioteca ScriptForge usando a seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Scripts Python exigem uma importação do módulo scriptforge:
from scriptforge import CreateScriptService

Os exemplos abaixo em Basic e Python criam uma instância do serviço Platform e acessam a propriedade Architecture.

##### Em Basic

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
          Dim platform As Variant
          platform = CreateScriptService("Platform")
          MsgBox platform.Architecture

##### Em Python

          from scriptforge import CreateScriptService
          svc = CreateScriptService("Platform")
          bas = CreateScriptService("Basic")
          bas.MsgBox(svc.Architecture)

## Propriedades

Nome | Somente leitura | Tipo | Descrição
--- | --- | --- | ---
Architecture | Sim | String | A arquitetura do hardware. Exemplo: '32bit' ou '64bit'
ComputerName | Sim | String | Nome de rede do computador
CPUCount | Sim | Integer | Número de unidades centrais de processamento.
CurrentUser | Sim | String | Nome do usuário atualmente logado.
Extensions | Sim | Array de Strings | Retorna um Array de Strings contendo as IDs internas de todas as extensões instaladas.
FilterNames | Sim | Array de Strings | Retorna um Array de Strings não ordenado e indexado a partir de zero contendo os nomes dos filtros de importação e exportação de documentos disponíveis.
Fonts | Sim | Array de Strings | Retorna um array indexado a partir de zero contendo os nomes de todas as fontes disponíveis.
FormatLocale | Sim | String | Retorna a localidade usada para números e datas como uma string no formato "la-CO" (idioma-PAÍS).
Locale | Sim | String | Retorna a localidade do sistema operacional como uma string no formato "la-CO" (idioma-PAÍS). É equivalente à propriedade SystemLocale.
Machine | Sim | String | Tipo da máquina. Exemplos: 'i386' ou 'x86_64'.
OfficeLocale | Sim | String | Retorna a localidade da interface de usuário como uma string no formato "la-CO" (idioma-PAÍS).
OfficeVersion | Sim | String | Versão atual do LibreOffice expressa no formado 'LibreOffice w.x.y.z (The Document Foundation)'. Exemplo: 'LibreOffice 7.4.1.2 (The Document Foundation, Debian and Ubuntu)'
OSName | Sim | String | Tipo do sistema operacional. Exemplo: 'Darwin, Linux' ou 'Windows'.
OSPlatform | Sim | String | String única e legível por humanos identificando a plataforma com a maior quantidade possível de informações. Exemplo: 'Linux-5.8.0-44-generic-x86_64-with-glibc2.32'
OSRelease | Sim | String | Versão do sistema operacional. Exemplo: '5.8.0-44-generic'
OSVersion | Sim | String | Compilação ou versão do sistema operacional. Exemplo: '#50-Ubuntu SMP Tue Feb 9 06:29:41 UTC 2021'
Printers | Sim | String array | Lista de impressoras disponíveis retornadas em um array indexado a partir de zero. A impressora padrão é colocada na primeira posição da lista (índice = 0)
Processor | Sim | String | Nome real do processador. Exemplo: 'amdk6'. Esta propriedade pode retornar o mesmo valor que a propriedade Machine.
PythonVersion | Sim | String | Retorna a versão do interpretador Python sendo usado como uma string no formato "Python major.minor.patchlevel" (ex: "Python 3.9.7").
SystemLocale | Sim | String | Retorna a localidade do sistema operacional como uma string no formato "la-CO" (idioma-PAÍS). É equivalente à propriedade Locale.
UserData | Sim | Dictionary | Retorna uma instância Dictionary contendo pares de valores-chaves da caixa de diálogo Ferramentas - Opções - Dados do usuário.

### Exemplo:

##### Em Basic

Os exemplos a seguir em Basic e em Python ilustram como usar a propriedade Fonts para escrever os nomes de todas as fontes disponíveis no sistema na planilha Calc atual iniciando na célula "A1":

        Dim oDoc as Object
        Dim allFonts as Object
        Dim svcPlatform as Object
        Set oDoc = CreateScriptService("Calc")
        Set svcPlatform = CreateScriptService("Platform")
        allFonts = svcPlatform.Fonts
        oDoc.setArray("~.A1", allFonts)

O exemplo abaixo demonstra como criar uma tabela Calc com todos os valores armazenados na propriedade UserData, que é uma instância do serviço Dictionary:

        Dim svcPlatform as Object, oUserData as Object, oDoc as Object
        Dim arrUserData As Object, currCell As String
        Set svcPlatform = CreateScriptService("Platform")
        oUserData = svcPlatform.UserData
        arrUserData = oUserData.ConvertToArray()
        Set oDoc = CreateScriptService("Calc", ThisComponent)
        oDoc.SetArray("~.A1", Array(Array("Key", "Value")))
        oDoc.SetArray("~.A2", arrUserData)

##### Em Python

Os exemplos acima podem ser escritos em Python da seguinte maneira:

        from scriptforge import CreateScriptService
        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Calc", bas.ThisComponent)
        svc_platform = CreateScriptService("Platform")
        all_fonts = svc_platform.Fonts
        doc.setArray("~.A1", all_fonts)

        from scriptforge import CreateScriptService
        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Calc", bas.ThisComponent)
        svc_platform = CreateScriptService("Platform")
        user_data = svc_platform.UserData
        arr_user_data = [[key, user_data[key]] for key in user_data]
        doc.SetArray("~.A1", (("Key", "Value"),))
        doc.SetArray("~.A2", arr_user_data)

Todas as rotinas ou identificadores do ScriptForge em Basic que possuem o caractere "_" como prefixo são reservadas para uso interno. Elas não devem ser usadas em macros escritas em Basic ou em Python.

Tópicos relacionados

Identificar o sistema operacional

Informação sobre a plataforma usando a fórmula INFO("system") do Calc

Função GetGuiType

A biblioteca TOOLS Library