Alterando a barra de rolagem padrão do Windows 7

0

Sem ofensa, mas as barras de rolagem padrão do Windows 7 não são tão boas. Desejo alterá-los de preferência sem usar aplicativos de terceiros e muito mais sem usar aplicativos de terceiros pagos.

Ouvi dizer que o Window Blinds da Stardock, que é um aplicativo pago, é claro, pode ser usado para fazer isso, mas não tenho certeza sobre isso. As cortinas de janela podem ser usadas apenas para mudar as barras de rolagem?

    
por Rahul Thakur 19.12.2012 / 15:28

1 resposta

5

Para alterar as barras de rolagem exibidas nos aplicativos, você precisa entender como as GUIs são renderizadas.

Uma GUI (interface gráfica do usuário) pode ser renderizada, essencialmente, de duas maneiras:

  • Nativo : o aplicativo solicita que o sistema operacional renderize um widget de um tipo específico. Existem widgets internos disponíveis no sistema operacional Windows; esses widgets aparecem em aplicativos internos da Microsoft, bem como em muitos programas de terceiros que usam o mesmo kit de ferramentas.

  • Personalizado : muitos aplicativos usam um kit de ferramentas de widget personalizado ou um estilo personalizado dos widgets, também conhecido como "não-nativo". A maneira como isso é feito, o aplicativo solicita uma tela 2D genérica, que é basicamente um retângulo vazio, e manualmente "pinta" os pixels desejados nesse espaço. Aplicativos que fazem isso não estão chamando o sistema operacional Windows para solicitar seus próprios widgets nativos; em vez disso, eles "pintam" usando um kit de ferramentas ou um código específico do aplicativo.

Exemplos de kits de ferramentas que usam direta ou indiretamente widgets nativos incluem:

  • Java SWT
  • A maioria dos aplicativos .NET que usam o Windows Forms, embora sejam renderizadores de formulários personalizados
  • Aplicativos que usam ATL, MFC ou diretamente a API do Win32

Exemplos de kits de ferramentas personalizados incluem:

  • GTK + (determinados mecanismos; existe um mecanismo "nativo" que pinta os widgets nativos do Windows)
  • Java Swing (Java ainda faz sua própria pintura, mas usa recursos gráficos da aparência do widget nativo para ou aproxima a aparência dos widgets nativos)
  • Qt (determinados mecanismos; existe um mecanismo "nativo" que aproxima os widgets nativos do Windows ou os usa diretamente, se possível)
  • Juce (semelhante ao Java Swing)

Agora, quando você diz "Alterar a barra de rolagem padrão do Windows 7", acho que está falando de como as barras de rolagem nativas aparecem. Porque é difícil, ou impossível, forçar cada aplicativo que usa uma barra de rolagem para desenhar de uma maneira específica, porque o aplicativo pode ter um código personalizado que desenha manualmente a barra de rolagem, e então você pode • Intercepte facilmente o código usado e altere-o.

Em particular, se o aplicativo em execução usar um kit de ferramentas personalizado bem conhecido, como o Java Swing, você poderá forçar a personalização da interface do usuário para kits de ferramentas específicos; mas você terá que aplicar essas mudanças em uma base "por-toolkit"; e você ainda está sem sorte se o aplicativo usar o desenho codificado em uma tela sem nenhum kit de ferramentas.

WindowBlinds, por exemplo, usa um "gancho" de DLL para injetar seu próprio código em aplicativos gráficos no sistema. O código WindowBlinds intercepta chamadas na API do Windows que solicitam widgets nativos e, em vez de desenhar um widget com estilo padrão, desenha um com base nos dados do tema fornecidos por um tema WindowBlinds. Esse gancho DLL é essencialmente a única maneira de fazer isso; não há nenhuma correção de registro de propósito geral ou recurso que possa modificar elementos gráficos de aplicativos nativos. Os recursos incorporados de estilo / tema do Windows não são extremamente flexíveis, daí a necessidade de aplicativos de terceiros, como o WindowBlinds, que injetam código personalizado em cada aplicativo executado para realizar a transformação de barras de rolagem padrão em personalizadas. / p>

Aplicativos inteligentes (ou aplicativos com certos privilégios de segurança) podem impedir essa conexão da DLL, pois ela representa um possível risco de segurança para a integridade das informações no aplicativo: se um programa não confiável conseguir conectar uma DLL em seu programa, pode fazer qualquer coisa , essencialmente, incluindo comprometer a funcionalidade de limitação de recursos desse aplicativo. Assim, certos aplicativos, por motivos de segurança, proíbem essa modificação.

A resposta curta é que você deve apenas usar WindowBlinds (vamos lá, pague o dinheiro!), mas esteja ciente de que você nunca conseguirá 100% de substituição da barra de rolagem em todas as aplicações , devido às diferentes formas possíveis de renderização.

    
por 19.12.2012 / 16:21