*`userData` O diretório para guardar os arquivos de configuração do seu aplicativo, que por padrão é o diretório `appData` concatenado com o nome do seu aplicativo.
*`temp` Diretório temporário.
*`exe` O arquivo executável atual.
*`module` A biblioteca `libchromiumcontent`.
*`desktop` O diretório *Desktop* do usuário atual.
*`documents` Diretório "Meus Documentos" do usuário.
*`downloads` Diretório dos downloads do usuário.
*`music` Diretório de músicas do usuário.
*`pictures` Diretório de imagens do usuário.
*`videos` Diretório de vídeos do usuário.
### `app.setPath(name, path)`
*`name` String
*`path` String
Sobrescreve o `path` para um diretório especial ou arquivo associado com `name`.
Se o endereço especifica um diretório não existente, o diretório será criado por
este método. Numa falha um `Error` é lançado.
Você pode sobrescrever apenas endereços com um `name` definido em `app.getPath`.
Por padrão, *cookies* e *caches* de páginas web serão guardadas no diretório `userData`. Se você quiser mudar esta localização, você deve sobrescrever o
endereço `userData` antes que o evento `ready` do módulo `app` seja emitido.
### `app.getVersion()`
Retorna a versão do aplicativo carregado. Se nenhuma versão for encontrada no
arquivo `package.json` do aplicativo, a versão do pacote ou executável atual é
retornada.
### `app.getName()`
Retorna o nome do aplicativo atual, que é o nome no arquivo `package.json` do
aplicativo.
Normalmente o campo `name` do `package.json` é um nome curto em letras minúsculas,
de acordo com as especificações de módulos npm. Normalmente você deve também
especificar um campo `productName`, que é o nome completo em letras maiúsculas do
seu aplicativo, e que será preferido ao `name` pelo Electron.
Adiciona `tasks` à categoria [Tasks][tasks] do JumpList no Windows.
`tasks` é um vetor de objetos `Task` no seguinte formato:
`Task` Object
*`program` String - Endereço do programa a ser executado, normalmente você deve especificar `process.execPath` que abre o programa atual.
*`arguments` String - Os argumentos de linha de comando quando `program` é executado.
*`title` String - A string a ser exibida em uma JumpList.
*`description` String - Descrição desta *task*.
*`iconPath` String - O endereço absoluto para um ícone a ser exibido em uma JumpList, que pode ser um arquivo arbitrário que contém um ícone. Normalmente você pode especificar `process.execPath` para mostrar o ícone do programa.
*`iconIndex` Integer - O índice do ícone do arquivo do icone. Se um arquivo de ícone consiste de dois ou mais ícones, defina este valor para identificar o ícone. Se o arquivo de ícone consiste de um ícone apenas, este valor é 0.
Define dinamicamente se sempre envia credenciais para HTTP NTLM ou autenticação *Negotiate* - normalmente, o Electron irá mandar apenas credenciais NTLM/Kerberos para URLs que se enquadram em sites "Intranet Local" (estão no mesmo domínio que você).
Entretanto, esta detecção frequentemente falha quando redes corporativas são mal configuradas, então isso permite optar por esse comportamento e habilitá-lo para todas as URLs.
### `app.makeSingleInstance(callback)`
*`callback` Function
Este método faz da sua aplicação uma Aplicação de Instância Única - invés de permitir múltiplas instâncias do seu aplicativo rodarem, isto irá assegurar que apenas uma única instância do seu aplicativo rodará, e outras instâncias sinalizam esta instância e finalizam.
`callback` será chamado com `callback(argv, workingDirectory)` quando uma segunda instância tenha sido executada. `argv` é um vetor de argumentos de linha de comando da segunda instância, e `workingDirectory` é o atual endereço de seu diretório.
Normalmente aplicativos respondem à isso não minimizando sua janela primária e dando foco à ela.
É garantida a execução do `callback` após o evento `ready` do `app` ser emitido.
Este método retorna `false` caso seu processo seja a instância primária do aplicativo e seu aplicativo deve continuar carregando. E retorna `true` caso seu processo tenha enviado seus parâmetros para outra instância, e você deve imediatamente finalizar.
No macOS o sistema enforça instância única automaticamente quando usuários tentam abrir uma segunda instância do seu aplicativo no *Finder*, e os eventos `open-file` e `open-url` serão emitidos para isso. Entretanto, quando usuários inicializam seu aplicativo na linha de comando, o mecanismo de instância única do sistema será ignorado e você terá de utilizar esse método para assegurar-se de ter uma instância única.
Adiciona uma opção (com `value` opcional) à linha de comando do Chromium.
**Nota:** Isto não irá afetar `process.argv`, e é utilizado principalmente por desenvolvedores para controlar alguns comportamentos de baixo nível do Chromium.
### `app.commandLine.appendArgument(value)`
Adiciona um argumento à linha de comando do Chromium. O argumento será passado com aspas corretamente.