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

  }