Descrição
A classe Application gerencia aplicativos no ambiente de nuvem AgentBay. Ela permite listar aplicativos instalados, iniciar aplicativos e interromper processos em execução.
|
Método |
Descrição |
Ambiente |
||||
|
Linux Computer Use |
Windows Computer Use |
Browser Use |
Mobile Use |
Code Space |
||
|
|
Obtém os aplicativos instalados com filtragem opcional por menu Iniciar e atalhos da área de trabalho. Permite excluir aplicativos do sistema. |
Não suportado |
Suportado |
Não suportado |
Suportado |
Não suportado |
|
|
Lista todos os aplicativos com janelas visíveis. |
Não suportado |
Suportado |
Não suportado |
Não suportado |
Não suportado |
|
|
Inicia o aplicativo especificado com diretório de trabalho opcional. No Android, também permite especificar uma Activity. |
Não suportado |
Suportado |
Não suportado |
Suportado |
Não suportado |
|
|
Interrompe um aplicativo pelo nome do processo. |
Não suportado |
Suportado |
Não suportado |
Não suportado |
Não suportado |
|
|
Interrompe um aplicativo pelo ID do processo. |
Não suportado |
Suportado |
Não suportado |
Não suportado |
Não suportado |
|
|
Interrompe um aplicativo executando um comando específico. |
Não suportado |
Suportado |
Não suportado |
Suportado |
Não suportado |
Propriedades
|
Propriedade |
Descrição |
|
Name |
Nome do aplicativo. |
|
StartCmd |
Comando de inicialização. |
|
StopCmd |
(Opcional) Comando de encerramento. |
|
WorkDirectory |
(Opcional) Diretório de trabalho. |
|
PName |
Nome do processo. |
|
PID |
ID do processo. |
|
CmdLine |
(Opcional) Parâmetros de linha de comando. |
Métodos
GetInstalledApps - Obter aplicativos instalados
Golang
func (am *ApplicationManager) GetInstalledApps(includeSystemApps bool, includeStoreApps bool, includeDesktopApps bool) (*InstalledAppsResult, error)
Parâmetros:
includeSystemApps (bool): Define se os aplicativos do sistema devem ser incluídos.
includeStoreApps (bool): Define se os aplicativos da loja devem ser incluídos.
includeDesktopApps (bool): Define se os aplicativos da área de trabalho devem ser incluídos.
Valores de retorno:
*InstalledAppsResult: Objeto de resultado que contém a lista de aplicativos instalados e o ID da solicitação.error: Mensagem de erro retornada caso a operação falhe.
Estrutura InstalledAppsResult:
type InstalledAppsResult struct {
RequestID string // A unique request identifier for debugging.
Apps []*InstalledApp // An array of installed applications.
}
type InstalledApp struct {
Name string // The application name.
Path string // The application path.
Version string // The application version.
Description string // The application description.
}
Python
def get_installed_apps(
self,
include_system_apps: bool = True,
include_store_apps: bool = False,
include_desktop_apps: bool = True
) -> List[InstalledApp]:
Parâmetros:
include_system_apps (bool, opcional): Define se os aplicativos do sistema devem ser incluídos. O padrão é
True.include_store_apps (bool, opcional): Define se os aplicativos da loja devem ser incluídos. O padrão é
False.include_desktop_apps (bool, opcional): Define se os aplicativos da área de trabalho devem ser incluídos. O padrão é
True.
Valor de retorno:
List[InstalledApp]: Lista de aplicativos instalados.
Exceção:
ApplicationError: Lançada se a obtenção da lista de aplicativos instalados falhar.
TypeScript
async getInstalledApps(
includeSystemApps: boolean = true,
includeStoreApps: boolean = false,
includeDesktopApps: boolean = true
): Promise<InstalledApp[]>
Parâmetros:
includeSystemApps (boolean, opcional): Define se os aplicativos do sistema devem ser incluídos. O padrão é
true.includeStoreApps (boolean, opcional): Define se os aplicativos da loja devem ser incluídos. O padrão é
false.includeDesktopApps (boolean, opcional): Define se os aplicativos da área de trabalho devem ser incluídos. O padrão é
true.
Valor de retorno:
Promise<InstalledApp[]>: Promise resolvida com uma lista de aplicativos instalados.
Exceções:
APIError: Lançada se a obtenção da lista de aplicativos instalados falhar.
StartApp - Iniciar um aplicativo
Golang
func (am *ApplicationManager) StartApp(startCmd string, workDirectory string) (string, error)
Parâmetros:
startCmd (string): Comando para iniciar o aplicativo.
workDirectory (string): Diretório de trabalho do aplicativo.
Valores de retorno:
string: String JSON que contém a lista de processos iniciados.error: Mensagem de erro retornada caso a operação falhe.
Python
def start_app(self, start_cmd: str, work_directory: str = "") -> List[Process]:
Parâmetros:
start_cmd (str): Comando para iniciar o aplicativo.
work_directory (str, opcional): Diretório de trabalho do aplicativo. O padrão é uma string vazia.
Valor de retorno:
List[Process]: Lista de processos iniciados.
Exceções:
ApplicationError: Lançada se a inicialização do aplicativo falhar.
TypeScript
async startApp(startCmd: string, workDirectory: string = ""): Promise<Process[]>
Parâmetros:
startCmd (string): Comando para iniciar o aplicativo.
workDirectory (string, opcional): Diretório de trabalho do aplicativo. O padrão é uma string vazia.
Valor de retorno:
Promise<Process[]>: Promise resolvida com uma lista de processos iniciados.
Exceções:
APIError: Lançada se a inicialização do aplicativo falhar.
StopAppByPName - Interromper um aplicativo pelo nome do processo
Golang
func (am *ApplicationManager) StopAppByPName(pname string) (string, error)
Parâmetro:
pname (string): Nome do processo a ser interrompido.
Valores de retorno:
string: Mensagem indicando sucesso da operação.error: Mensagem de erro retornada caso a operação falhe.
Python
def stop_app_by_pname(self, pname: str) -> bool:
Parâmetros:
pname (str): Nome do processo a ser interrompido.
Valor de retorno:
bool: RetornaTruese a operação for bem-sucedida. Caso contrário, retornaFalse.
Exceções:
ApplicationError: Lançada se a interrupção do aplicativo falhar.
TypeScript
async stopAppByPName(pname: string): Promise<boolean>
Parâmetro:
pname (string): Nome do processo a ser interrompido.
Valor de retorno:
Promise<boolean>: Retornatruese a operação for bem-sucedida oufalsecaso contrário.
Exceção:
APIError: Lançada se a interrupção do aplicativo falhar.
StopAppByPID - Interromper um aplicativo pelo ID do processo
Golang
func (am *ApplicationManager) StopAppByPID(pid int) (string, error)
Parâmetros:
pid (int): ID do processo a ser interrompido.
Valores de retorno:
string: Mensagem indicando sucesso da operação.error: Mensagem de erro retornada caso a operação falhe.
Python
def stop_app_by_pid(self, pid: int) -> bool:
Parâmetros:
pid (int): ID do processo a ser interrompido.
Valor de retorno:
bool: RetornaTruese a operação for bem-sucedida. Caso contrário, retornaFalse.
Exceções:
ApplicationError: Lançada se a interrupção do aplicativo falhar.
TypeScript
async stopAppByPid(pid: number): Promise<boolean>
Parâmetros:
pid (number): ID do processo a ser interrompido.
Valor de retorno:
Promise<boolean>: Promise resolvida comtruese a operação for bem-sucedida oufalsecaso contrário.
Exceções:
APIError: Lançada se a interrupção do aplicativo falhar.
StopAppByCmd - Interromper um aplicativo por comando de encerramento
Golang
func (am *ApplicationManager) StopAppByCmd(stopCmd string) (string, error)
Parâmetros:
stopCmd (string): Comando utilizado para interromper o aplicativo.
Valores de retorno:
string: Mensagem indicando sucesso da operação.error: Mensagem de erro retornada caso a operação falhe.
Python
def stop_app_by_cmd(self, stop_cmd: str) -> bool:
Parâmetros:
stop_cmd (str): Comando utilizado para interromper o aplicativo.
Valor de retorno:
bool: RetornaTruese a operação for bem-sucedida. Caso contrário, retornaFalse.
Exceções:
ApplicationError: Lançada se a interrupção do aplicativo falhar.
TypeScript
async stopAppByCmd(stopCmd: string): Promise<boolean>
Parâmetros:
stopCmd (string): Comando utilizado para interromper o aplicativo.
Valor de retorno:
Promise<boolean>: Promise resolvida comtruese a operação for bem-sucedida oufalsecaso contrário.
Exceções:
APIError: Lançada se a interrupção do aplicativo falhar.
ListVisibleApps - Listar aplicativos visíveis
Golang
func (am *ApplicationManager) ListVisibleApps() (*VisibleAppsResult, error)
Valores de retorno:
*VisibleAppsResult: Objeto de resultado que contém a lista de processos visíveis e o ID da solicitação.error: Mensagem de erro retornada caso a operação falhe.
Estrutura VisibleAppsResult:
type VisibleAppsResult struct {
RequestID string // A unique request identifier for debugging.
Processes []*Process // An array of visible processes.
}
type Process struct {
PName string // The process name.
PID int // The process ID.
}
Python
def list_visible_apps(self) -> List[Process]:
Valor de retorno:
List[Process]: Lista de processos visíveis.
Exceções:
ApplicationError: Lançada se a listagem de aplicativos visíveis falhar.
TypeScript
async listVisibleApps(): Promise<Process[]>
Valor de retorno:
Promise<Process[]>: Promise resolvida com uma lista de processos visíveis.
Exceções:
APIError: Lançada se a listagem de aplicativos visíveis falhar.
Exemplos de gerenciamento de aplicativos
Golang
package main
import (
"fmt"
"log"
)
func main() {
// Create a session
agentBay := agentbay.NewAgentBay("your-api-key")
sessionResult, err := agentBay.Create(nil)
if err != nil {
log.Fatal(err)
}
session := sessionResult.Session
// Get installed applications
appsResult, err := session.Application.GetInstalledApps(true, false, true)
if err != nil {
log.Printf("Error getting installed applications: %v", err)
} else {
for _, app := range appsResult.Apps {
fmt.Printf("Application: %s\n", app.Name)
}
}
// Start an application
processesResult, err := session.Application.StartApp("/usr/bin/google-chrome-stable", "")
if err != nil {
log.Printf("Error starting application: %v", err)
} else {
var processes []Process
_ = json.Unmarshal([]byte(processesResult), &processes)
for _, process := range processes {
fmt.Printf("Started process: %s (PID: %d)\n", process.PName, process.PID)
}
}
// List visible applications
visibleResult, err := session.Application.ListVisibleApps()
if err != nil {
log.Printf("Error listing visible applications: %v", err)
} else {
for _, app := range visibleResult.Processes {
fmt.Printf("Visible application: %s (PID: %d)\n", app.PName, app.PID)
}
}
// Stop the application by PID
if len(processes) > 0 {
success, err := session.Application.StopAppByPID(processes[0].PID)
if err != nil {
log.Printf("Error stopping application: %v", err)
} else {
fmt.Printf("Application stopped: %s\n", success)
}
}
}
TypeScript
import { AgentBay } from 'wuying-agentbay-sdk';
// Initialize the SDK
const agentBay = new AgentBay({ apiKey: 'your_api_key' });
// Get installed applications
async function getApplications() {
try {
const apps = await agentBay.application.getInstalledApps();
console.log(`Found ${apps.length} applications:`);
apps.forEach(app => {
console.log(`Name: ${app.name}, Start Cmd: ${app.start_cmd}`);
});
} catch (error) {
console.error('Error retrieving applications:', error);
}
}
// Start an application
async function startApplication() {
try {
const processes = await agentBay.application.startApp('/usr/bin/google-chrome-stable');
console.log(`Started ${processes.length} processes:`);
processes.forEach(p => {
console.log(`Process Name: ${p.pname}, PID: ${p.pid}`);
});
} catch (error) {
console.error('Error starting application:', error);
}
}
// Stop an application by PID
async function stopApplicationByPID() {
try {
const success = await agentBay.application.stopAppByPid(12345);
if (success) {
console.log('Application stopped successfully.');
} else {
console.log('Failed to stop application.');
}
} catch (error) {
console.error('Error stopping application:', error);
}
}
// List visible applications
async function listVisibleApplications() {
try {
const visibleApps = await agentBay.application.listVisibleApps();
console.log(`Visible applications: ${visibleApps.length}`);
visibleApps.forEach(app => {
console.log(`Name: ${app.pname}, PID: ${app.pid}`);
});
} catch (error) {
console.error('Error listing visible applications:', error);
}
}