Olá. Recentemente me surgiu uma dúvida que eu acho que muitas pessoas também tem. Eu gostaria de criar uma aplicação, a mesma deve ficar em um pendrive, e este deve ser autoexecutável. Assim que eu espetar o pendrive, gostaria que minha aplicação fosse executada. Mas aí surgem algumas dúvidas.
Primeira: Esse autorun, tem uma maneira de fazer um arquivo que seja executado por qualquer sistema operacional?
Segunda: Tá, se o autorun funcionar, ele irá chamar minha aplicação. Mas e se eu tenho a aplicação.exe e a aplicação.py. Como escolho qual executar dependendo de qual for o sistema operacional da máquina?
Defina qualquer plataforma. Está incluindo Windows, Mac e Linux ou algo a mais?
O mesmo arquivo não tem como ser executado em plataformas diferentes porque os sistemas são diferentes, as chamadas de sistema são diferentes. Sim, há coisas como Crossover e Wine, que permitem executar aplicativos Windows no Linux e Mac (dentre outras coisas). Mas aí você já estará adicionando muita complexidade a sua aplicação, e mesmo assim não é garantido funcionar.
Para cada plataforma, você pode colocar atalhos para a execução da aplicação. Em termos gerais, atalhos do Windows serão ignorados ou não executados nas demais plataformas, e o mesmo ocorre para atalhos dessas plataformas no Windows.
Lembrando que qualquer sistema operacional moderno e decente permite desabilitar o autorun (o que é uma bênção), então não tome como garantido que, ao conectar o pendrive, a aplicação irá rodar.
Abraço.
2 curtidas
Não há uma alternativa que permita a autoexecução da minha aplicação? É que eu realmente preciso que ela se autoexecute. Sobre essa opção de desabilitar autorun, ela é habilitada pelo usuário certo? Um sistema vindo de fábrica permite a autoexecução certo?
Sobre o código multiplataforma. Eu posso ter diferentes pendrives para cada sistema, já que não existe um código que faça isso.
O autorun, por questões de segurança, costuma vir desabilitado em sistemas mais modernos (Windows 7 e superiores, Mac OSX, várias distribuições Linux). O raciocínio por trás disso é simples: se o sistema executa automaticamente o software de uma mídia conectada, fica exposto à vírus, malwares e todo o tipo de problemas. Creio que você se lembre como eram comuns os vírus em pendrives na época do Windows XP.
O que os sistemas costumam oferecer, ao inserir uma mídia, é um menu com ações comuns (exibir fotos, executar músicas) ou, caso haja um executável e um arquivo autorun.inf (no caso do Windows), a opção de executar esse programa. Mas note que a execução não é automática: o usuário precisa confirmar a execução.
Por que você não explica o que quer fazer e pede sugestões de como fazer? Pois depender da execução automática do seu programa não me parece uma boa ideia, mesmo que você controle os computadores onde o seu programa será executado.
Abraço.
Vendo por esse lado, não é tão necessário o autorun. Muito obrigado pelas informações.