Sítio do Piropo

B. Piropo

< Coluna em Fórum PCs >
Volte
21/12/2009

< Modo XP V: Usando, afinal... >


Agora que estamos com nossa máquina virtual instalada e configurada, podemos usá-la para rodar os programas que desejarmos. Mas antes, naturalmente, há que instalá-los. Pois, como já deve ter se tornado evidente para quem vem acompanhando esta série de colunas, as máquinas virtual e real, embora interligadas e conectadas em rede, funcionam de forma totalmente independente e a máquina virtual não tem acesso aos programas adrede instalados na máquina real (embora, dependendo das configurações de compartilhamento em rede, tenha acesso aos arquivos nela armazenados). Portanto, se você deseja rodar um programa na máquina virtual, antes terá que instalá-lo.
A instalação é feita exatamente da mesma forma que em qualquer outra máquina, real ou virtual. Depois de carregada a máquina virtual você pode inserir o disco de instalação no acionador de discos óticos (“drive” de DVD) a que ela tem acesso e executar o procedimento de instalação diretamente de lá, pode instalar a partir de um disco externo conectado a uma das portas USB compartilhadas com a máquina real ou pode transferir via Internet (“baixar”) o arquivo de instalação diretamente para a máquina virtual e executá-lo. O resultado final é o programa instalado e pronto para uso. E sugiro testar o procedimento instalando antes que quaisquer outros programas a proteção contra vírus e demais programas mal intencionados.
Instalado o aplicativo e com a janela da máquina virtual aberta e em funcionamento, ele pode ser invocado de lá exatamente como se a janela fosse (e, na verdade, é) a Área de Trabalho (“Desktop”) da máquina virtual. Você pode rodá-lo no interior desta janela, se desejar – e esta é a melhor opção para quem pretende interagir com a máquina “real” enquanto roda um programa na virtual (por exemplo, trocando arquivos entre elas). Mas infelizmente não é possível usar o mause para executar o conhecido procedimento de arrastar e soltar objetos da máquina real para a virtual e vice-versa. Se você deseja transferir arquivos entre máquinas, faça-o da mesma forma que faria com máquinas em rede. O que não é difícil, especialmente levando em conta que, com os recursos de integração habilitados, todas as unidades de armazenamento da máquina real, inclusive os discos externos conectados às portas USB, aparecem diretamente no Windows Explorer executado na máquina virtual. Veja, na Figura 1, estes discos assinalados por uma borda vermelha na janela do Windows Explorer invocado no interior de uma janela da máquina virtual do Modo XP, que por sua vez aparece no interior da Área de Trabalho da máquina real. Para copiar qualquer arquivo da máquina real para a máquina virtual basta abrir uma destas unidades de disco (clicando sobre seu ícone no interior da janela do Windows Explorer), procurar pelo arquivo desejado, selecioná-lo e, aí sim, arrastá-lo com o mause do interior da janela do Windows Explorer para a Área de Trabalho do Windows XP, dentro da janela da máquina virtual (a explicação parece confusa, mas basta abrir as janelas como exibidas na Figura 1 e navegar pelas unidades de armazenamento mostradas no Windows Explorer da máquina virtual para entender facilmente o conceito).

Clique e amplie...

Figura 1: Janela do Modo XP mostrando os discos da máquina real.

É claro que, se você pretende passar um bom tempo dedicado à execução de uma única tarefa para a qual usará um dos programas instalados na máquina virtual, pode preferir trabalhar em tela inteira em vez de apenas em uma janela. Para isso basta clicar no ícone “Maximizar” da janela do Modo XP (assinalado pela seta vermelha na Figura 1). Com isto a máquina virtual passará a ocupar toda a tela de seu monitor e você trabalhará exatamente como se em sua máquina estivesse instalado apenas o Windows XP SP3 (no caso do Modo XP; se você criou uma nova máquina virtual na qual instalou outro sistema operacional, será este o sistema no qual você estará trabalhando). A única diferença é que a Barra de Tarefas de Windows 7 encobrirá a de Windows XP, o que pode atrapalhar um pouco, mas por outro lado permite acesso a qualquer dos programas que estão rodando na máquina real com um simples clique sobre o ícone correspondente em sua Barra de Tarefas. Porém, ainda assim, se você preferir pode mover uma das Barras de Tarefas para uma borda lateral, combinando o melhor dos dois mundos: acesso integral à máquina virtual em tela inteira e acesso aos aplicativos da máquina real através de sua barra de tarefas. Veja como ficam as barras na Figura 2 e repare, junto à borda superior da tela, assinalada pela seta vermelha, a barra de menus da máquina virtual. Para fazê-la retornar à sua janela basta clicar no ícone “Restaurar”, próximo à extremidade direita desta barra, justamente no local apontado pela seta.

Clique e amplie...

Figura 2: Modo XP em tela cheia.

Mas, para quem pretende trabalhar com a máquina virtual em tela cheia por longos períodos, a solução ideal é usar dois monitores. O resultado é o mostrado na Figura 6 da coluna “Modo XP II: Instalando”, com a área de trabalho da máquina virtual ocupando inteiramente um dos monitores e a da máquina real ocupando o outro. Aliás, a facilidade introduzida no uso de computadores pelo acréscimo de um segundo monitor é tão grande (como, por exemplo, trabalhar com a área de edição de qualquer programa ocupando toda a tela de um deles e com as barras de ferramentas e painéis auxiliares distribuídas no outro – uma bênção para quem usa programas como o Flash, Fireworks, Photoshop, Expression Web e similares, que dependem intensamente do uso destes elementos auxiliares) que, com a queda dos preços dos monitores a partir do ano passado, na minha opinião, o melhor presente que você pode dar a si mesmo neste fim de ano é um monitor adicional.
Para rodar um programa “dentro” da máquina virtual (ou seja, usando a interface da própria máquina virtual, seja em uma janela, seja em tela cheia), procede-se da forma convencional: abre-se o programa clicando sobre seu ícone, seja na área de trabalho, seja no Windows Explorer ou na entrada “Todos os programas” do menu Iniciar da máquina virtual. O resultado, no caso da máquina virtual ser executada em uma janela, é mostrado na Figura 3, que exibe o trecho da Área de Trabalho da máquina real que contém a janela da máquina virtual.

Clique e amplie...

Figura 3: Programa carregado na janela da máquina virtual.

O programa carregado é o “Photo Enhancer”, um programa de edição de fotos de uma velha câmara digital Kodak já aposentada que usava um formato proprietário de arquivo gráfico (de extensão “.Kdc”, de “Kodak Digital Camera”) hoje praticamente em desuso e que apresenta problemas de compatibilidade com Windows 7 (o que exemplifica uma utilização típica de máquina virtual: meu disco rígido ainda armazena centenas de arquivos de fotos neste formato, arquivos que eu teria dificuldades em recuperar e converter sem o auxílio de um programa como o PhotoEnhancer). Veja, na Figura 3, a janela do programa no interior da janela da máquina virtual e note que as barras de ferramentas de edição de imagens do PhotoEnhancer (assinaladas pelas setas vermelhas) são exibidas no interior da janela da máquina virtual, porém fora da janela do programa. Um efeito em tudo semelhante seria obtido caso o programa tivesse sido carregado com a máquina virtual rodando em tela cheia. A única diferença, evidentemente, é que aquilo que na Figura 3 representa a janela da máquina virtual passaria a encher completamente a tela do monitor.
Rodar programas assim em máquinas virtuais é uma atividade rotineira e nada tem de extraordinário. Mas o Modo XP oferece uma forma alternativa de rodar programas da máquina virtual que, essa sim, é extraordinária. Trata-se, mal traduzindo, do “modo inconspícuo” (desculpem, mas a palavra é essa; não precisa correr para o dicionário que seu significado é mencionado mais adiante), ou “Seamless mode”. Veja, na Figura 4, o que ocorreu quando eu carreguei o mesmo programa (editando a mesma imagem) neste modo de operação. Ambas as figuras mostram aproximadamente a mesma região da tela. Compare seu conteúdo e perceba as diferenças.

Clique e amplie...

Figura 4: Mesmo programa carregado do modo “seamless”.

Repare que agora, em torno da janela do programa (cujo código, convém insistir, foi carregado no trecho de memória alocado à máquina virtual e apoiado no sistema operacional nela carregado, ou seja, o Windows XP com SP3) não aparece qualquer borda de janela nem qualquer indicação de que está rodando na máquina virtual. Pelo contrário: aparentemente ele roda na máquina real, pois sua janela aparece diretamente na interface com o usuário desta última, ou seja, na própria Área de Trabalho de Windows 7. Mais ainda: as próprias barras de ferramentas do PhotoEnhancer (assinaladas pelas setas em vermelho na Figura 4) embora fora da janela do programa, também aparecem sobre esta Área de Trabalho de Windows 7. Ou seja: quando executado no “seamless mode” tudo se passa como se o PhotoEnhancer estivesse rodando na máquina real, usando sua interface, apoiado no código de Windows 7 e sendo acessado através da Área de Trabalho e interface com o usuário desta máquina real. Mas isso é falso: o sistema operacional que fornece suporte ao PhotoEnhancer é o Windows XP da máquina virtual e ele é acessado através de sua própria interface com o usuário.
Tudo se passa como se, em torno da janela (e, no caso, das barras de ferramenta flutuantes) do programa existisse uma Área de Trabalho virtual do Windows XP que se estende por toda a tela, porém imperceptível (“seamless”, em inglês, significa “sem costura”, referindo-se a um tipo de emenda onde não se percebe a junção entre as partes emendadas devido à ausência de qualquer descontinuidade ou costura; o termo é usado correntemente no sentido de “imperceptível”, “inconspícuo”). Quando o foco ou o ponteiro do mause está sobre um dos elementos do programa (janela ou barras de ferramenta), o controle é assumido pelo código do Windows XP carregado na máquina virtual. Quando o programa perde o foco ou o ponteiro de desloca para fora de suas superfícies, o controle é assumido pelo código do Windows 7 carregado na máquina real.
É claro que todas estas sutilezas e complexidades permanecem ocultas, imperceptíveis para o usuário (daí o uso do adjetivo “seamless”). Do ponto de vista operacional, o programa rodando na máquina virtual aparece como qualquer outro programa carregado na máquina real e pode-se passar dele para os demais como se ambos estivessem rodando na mesma interface (embora, sempre é bom lembrar, como de fato ele está rodando na máquina virtual, ainda não é possível transferir objetos dele para os programas ou interface da máquina real arrastando e soltando com o mause).
Tudo parece muito simples. Mas, do ponto de vista tecnológico, toda esta simplicidade é fruto de uma notável façanha que exige o concurso de tecnologias avançadíssimas de virtualização implementadas tanto no sistema operacional Windows 7 quanto no próprio microprocessador (provavelmente você lembra que a coluna “Virtualização e o Modo XP” menciona que, antes de instalar a máquina virtual, é necessário rodar o programa “Havdetectiontool.Exe” cujo único objetivo é verificar se o microprocessador da máquina oferece suporte a virtualização). Tecnicamente, a coisa se aproxima muito do malabarismo e da prestidigitação. Como eu citei em uma das colunas anteriores, é quase magia negra. Mas o usuário sequer toma conhecimento disso. Para ele tudo é muito simples: é só mais um programa rodando em um ambiente multitarefa.
Mas como ter acesso a este aparente milagre? Como invocar um programa instalado na máquina virtual para que ele rode no “seamless mode”?

Figura 5: Entrada “Windows XP Mode Aplicativos”
de “Todos os Programas”
.

Bem, para que um programa rode neste modo basta invocá-lo clicando na entrada a ele correspondente na opção “Windows XP Mode Aplicativos” da entrada “Windows Virtual PC” do menu “Todos os programas” da máquina real (veja Figura 5).
Mas por que cargas d´água a entrada correspondente a um programa instalado na máquina virtual apareceria no menu Iniciar da máquina real?
Bem, para que isso aconteça é necessário que o programa tenha sido “publicado” (palavra que, como sabemos, neste contexto significa “tornado público”, “posto à disposição do público”).
E o que é necessário fazer para publicar um programa?
Em princípio, muito pouco. Basta que durante o processo de sua instalação (na máquina virtual, naturalmente) se tenha tido o cuidado de verificar que ele esteja disponível para todos os usuários.
Na maioria das vezes isso é feito por padrão. Seja em máquinas virtuais, seja em máquinas reais, quando se instala um programa a instalação é feita de tal maneira que todas as identidade de usuário, existentes ou a serem criadas, tenham acesso a ele. No máximo, durante a instalação, alguns programas perguntam se o usuário deseja isso (e, ao instalar um programa desses em uma máquina virtual, se você pretende rodá-lo no “seamless mode”, ao ser perguntado se o acesso ao programa deve ser concedido aos demais usuários, tome cuidado em responder afirmativamente).

Clique e amplie...

Figura 6: Janela “All users\Menu Iniciar\Programas”
da máquina virtual.

Se você quiser verificar se o programa foi ou não publicado, após sua instalação na máquina virtual clique com o botão direito sobre o botão “Iniciar” (dá máquina virtual), acione a entrada “Abrir a pasta All Users” do menu de contexto e abra a pasta “Programas” contida no interior desta última pasta (ver Figura 6). Se o programa foi publicado, você encontrará aí um atalho para o programa ou para sua pasta. Se este atalho existir, então a entrada correspondente aparecerá igualmente na entrada “Windows XP Mode Aplicativos” da entrada “Windows Virtual PC” do menu “Todos os programas” da máquina real.
Se isso não ocorrer, verifique, nas configurações da máquina virtual, se a caixa “Publicar automaticamente os aplicativos virtuais” da entrada “Publicação automática” está marcada. Se não estiver, marque-a. E, neste caso, para “publicar” um programa já instalado e não acessível via menu “Todos os programas” da máquina real, não será preciso reinstalá-lo. Bastará abrir a pasta “All users\Menu Iniciar\Programas” da máquina virtual e arrastar um atalho do programa para ela.
Por outro lado, como você pode verificar comparando o conteúdo da pasta “Programas” exibida na Figura 6 com as entradas sob “Windows XP Mode Aplicativos” de “Todos os Programas” da máquina real mostrada na Figura 5, nem todo programa cujo atalho está contido naquela pasta aparece nesta entrada (ou seja: nem todo o conteúdo da pasta é publicado). O que faz sentido, já que a pasta “All users\Menu Iniciar\Programas” contém todos os programas, jogos e utilitários instalados juntamente com o Windows XP na máquina virtual e não há qualquer interesse em que estejam disponíveis para rodar no “seamless mode” da máquina real. Por essa razão a MS providenciou uma forma de impedir que alguns programas que fazem parte do conteúdo daquela pasta fossem publicados.
Esta forma foi a inclusão de uma chave específica no Registro da máquina virtual. Trata-se da chave “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtual Machine\VPCVAppExcludeList” cujo conteúdo parcial é mostrado na Figura 7.

Clique e amplie...

Figura 7: Chave “VPCVAppExcludeList” do Registro da máquina virtual.

Como você vê, são dezenas de entradas. Se você quiser que o programa correspondente a uma delas se torne público (ou seja, possa ser rodado no modo “seamless”), basta remover da chave a entrada correspondente. Em contrapartida, se quiser que um programa qualquer adrede instalado na máquina virtual não seja publicado (por exemplo: o programa antivírus, que não há interesse em rodar no modo “seamless”), basta criar nesta chave uma entrada contendo a especificação completa (unidade de armazenamento, via de diretório, nome e extensão) de seu arquivo executável.
A “publicação de programas” (ou seja, sua instalação de modo a que possam ser invocados e executados diretamente da interface da máquina real que roda Windows 7 no “seamless mode”) é suportada nativamente na máquina virtual instalada com o Modo XP. Mas não é exclusividade dela: também pode ser implementada em máquinas virtuais onde foi instalado o Windows Vista Enterprise ou Ultimate ou o próprio Windows 7 Enterprise ou Ultimate (sim, nada o impede de criar uma máquina virtual “dentro” de Windows 7 e nela instalar uma nova instância – neste caso obrigatoriamente “de 32 bits” – do próprio Windows 7). Mas algumas providências tornam-se  necessárias. Veja quais são consultando o artigo técnico
< http://www.microsoft.com/downloads/details.aspx?FamilyID=26a2de17-8355-4e8d-8f33-9211e48651fb&displaylang=pt-br >
 “Atualização para Windows Vista SP1 ou posterior para habilitar o RemoteApp”.
Pronto. E agora, o que falta? Penso que os únicos pontos que não foram abordados nesta série de colunas têm a ver com tarefas rotineiras, como usar dispositivos externos (como USB) nas máquinas virtuais, instalar ou compartilhar impressoras e configurá-las para imprimir a partir da máquina virtual e coisas que tais. Porém a série já se alongou demais e estes pontos (além de muitos outros, igualmente interessantes) são discutidos em detalhe – e em bom português – no tópico < http://technet.microsoft.com/pt-br/library/ee681737(WS.10).aspx > “Windows Virtual PC and Windows XP Mode” do “Windows Client Tech Center” do TechNet, o repositório de informações técnicas mantido pela Microsoft. Penso que lá e na < http://www.microsoft.com/windows/virtual-pc/support/faq.aspx > página de respostas a perguntas frequentes (esta, infelizmente, apenas em inglês) vocês encontrarão respostas para as principais dúvidas que ainda restaram sobre o uso da máquina virtual.
Então só resta encerrar a série de colunas com um sincero desejo que o Natal de cada um de vocês seja prenhe de paz, saúde e felicidade. E que Papai Noel venha com o saco cheio. De presentes, naturalmente.

 

B. Piropo