API - interagindo com a shell |
Top Previous Next |
|
{
Interagindo com a Shell - Parte I
* Materia do Theclub março 2000
O Windows Explorer provê diversos objetos ActiveX para manipular a “shell”. Vejamos algumas coisas que podemos fazer com eles.
O Windows 95 introduziu uma nova interface com o usuário ou “shell”. Esta interface é usada como a principal maneira de interagir com o sistema operacional e efetuar tarefas como:
- Executar programas - Copiar arquivos - Alterar configurações diversas
Estas tarefas são normalmente feitas diretamente pelos usuários. No entanto, podemos faze-las a partir dos nossos aplicativos também.
Existem basicamente duas maneiras de controlar a shell. Uma delas é através de funções e a outra é através de objetos ActiveX. O uso via ActiveX é bem mais simples. É o que veremos a seguir.
Uma observação: algumas da funcionalidade mostrada a seguir exige o Internet Explorer 4 instalado no computador.
Documentação Quem assinar o Microsoft Developers Network (MSDN) pode obter informações no CD ou em http://msdn.microsoft.com/library/psdk/shellcc/shell/Shell_basics/Shell_Basics.htm. Alguma desta documentação é mostrada seguir.
Shell Object O objeto Shell representa objetos na Shell. Existem métodos para controla-la e executar comandos. Existem também métodos para obter outros objetos relacionados.
Propriedades Descrição --------------- --------------------------------------------------- Application Contém o objeto de Aplicação. Parent Contém o objeto “pai”. Apenas leitura.
Métodos Descrição --------------- --------------------------------------------------- BrowseForFolder Cria uma caixa de diálogo para seleção de pasta e retorna um objeto Folder correspondente à pasta selecionada. CascadeWindows Arruma as janelas em cascata. ControlPanelItem Roda um aplicativo do painel de controle. EjectPC Libera o notebook da “estação”. Explore Explora uma pasta. FileRun Mostra caixa de diálogo de execução de programa. FindComputer Mostra caixa de diálogo de procura de computador. FindFiles Mostra caixa de diálogo de pesquisa de arquivos.. Help Mostra auxílio.. MinimizeAll Minimiza todas as janelas. NameSpace Cria e retorna um objeto Folder para a pasta especificada. Open Abre uma pasta. RefreshMenu Atualiza o conteúdo do menu “Iniciar”. SetTime Mostra caixa de diálogo de ajusta de data/hora.. ShutdownWindows Mostra a caixa de diálogo de término do Windows. Suspend Suspende o computador (“hibernação”). TileHorizontally Arruma as janelas em ladrilhos horizontais. TileVertically Arruma as janelas em ladrilhos verticais. TrayProperties Mostra propriedades da barra de tarefas. UndoMinimizeALL Restaura o estado das janelas antes do comando MinimizeAll. Windows Cria e retorna um objeto ShellWindows.
Constantes --------------- ShellSpecialFolderConstants = Valores correspondentes a pastas especiais.
}
uses ComObj;
var Sh := CreateOleObject('Shell.Application');
Sh := CreateOleObject('Shell.Application'); Sh.FindComputer; // Localizar Computador Sh.FindFiles; // Localizar arquivos e pastas Sh.TrayProperties; // Propriedades da barra de tarefas Sh.SetTime; // Ajusta data e hora Sh.ShutdownWindows; // Desligar Sh.Suspend; // Suspender Sh.FileRun; // Executar
Sh.Explore('C:\');
Sh.Open(0); // Abre a área de trabalho { constantes para comando OPEN Área de trabalho = 0 Programas = 2 Painel de Controle = 3 Impressoras = 4 Meus Documentos = 5 Favoritos = 6 Iniciar = 7 Recente = 8 Enviar Para... = 9 Lixeira = 10 Menu Iniciar = 11 Diretório da A. Trab. = 16 Meu Computador = 17 Vizinhança de Rede = 18 Atalhos de rede = 19 Fontes = 20 Documentos “padrão” = 21 }
// Alguns dos aplicativos estão reunidos em MAIN.CPL. // Para invoca-los individualmente, você deve passar o nome do aplicativo, por exemplo: Sh := CreateOleObject('Shell.Application'); // Windows 2000: Sh.ControlPanelItem('ncpa.cpl'); // Network Properties Sh.ControlPanelItem('hdwwiz.cpl'); // Add New Hardware // Windows 9x: Sh.ControlPanelItem('appwiz.cpl'); // Adicionar e remover programas Sh.ControlPanelItem('access.cpl'); // Accessibility Options Sh.ControlPanelItem('sysdm.cpl add new hardware'); // Add New Hardware Sh.ControlPanelItem('appwiz.cpl'); // Add/Remove Programs Sh.ControlPanelItem('timedate.cpl'); // Date/Time Properties Sh.ControlPanelItem('desk.cpl'); // Display Properties Sh.ControlPanelItem('findfast.cpl'); // FindFast Sh.ControlPanelItem('inetcpl.cpl'); // Internet Properties Sh.ControlPanelItem('joy.cpl'); // Joystick Properties Sh.ControlPanelItem('main.cpl keyboard'); // Keyboard Properties Sh.ControlPanelItem('mlcfg32.cpl'); // Microsoft Exchange ou Windows Messaging Sh.ControlPanelItem('wgpocpl.cpl'); // Microsoft Mail Post Office Sh.ControlPanelItem('modem.cpl'); // Modem Properties Sh.ControlPanelItem('main.cpl'); // Mouse Properties Sh.ControlPanelItem('mmsys.cpl'); // Multimedia Properties Sh.ControlPanelItem('password.cpl'); // Password Properties Sh.ControlPanelItem('main.cpl pc card (PCMCIA)'); // PC Card Sh.ControlPanelItem('main.cpl power'); // Power Management (Windows 95) Sh.ControlPanelItem('netcpl.cpl'); // Network Properties Sh.ControlPanelItem('powercfg.cpl'); // Power Management (Windows 98) Sh.ControlPanelItem('main.cpl printers'); // Printers Properties Sh.ControlPanelItem('intl.cpl'); // Regional Settings Sh.ControlPanelItem('sticpl.cpl'); // Scanners and Cameras Sh.ControlPanelItem('mmsys.cpl sounds'); // Sound Properties Sh.ControlPanelItem('sysdm.cpl'); // System Properties } |