Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Cortana con Chrome y búsquedas usando Google

En esta entrada os voy a mostrar un truco bastante interesante para aquellos que os guste usar Chrome y también Cortana de Windows 10.

No es que este en contra del buscador Bing, ni del navegador Microsoft Edge. Soy muy buenos productos.

Cortana puede hacer muchas cosas por nosotros de forma desantendida, pero como habreís podido comprobar usa el navegador Edge y el motor de búsquedas Bing.

Lo voy a explicar de forma sencilla, puesto que es preciso realizar ciertas tareas.

Lo primero de todo podéis descargaros este archivo que os he preparado en RAR. No obstante la fuente se encuentra en GitHub, pero yo os lo dejo ya bastante mascado 😉

Os recomiendo crear una carpeta en el raíz del disco duro (c:\) con el nombre Chrome-con-Cortana

Ejemplo: C:\Chrome-con-Cortana

Después una vez descomprimido los archivos del rar en esta carpeta, ejecutar el programa install.cmd con permisos de administrador (SBDR). No me hago responsable del uso que hagáis de este programa, podéis comprobar todos los comentarios en la forja. El archivo rar se encuentra libre de virus (comprobado con avast y malwarebytes), realmente es un script cuyo código en CS se adjunta, y unos cambios en el registro de windows (para realizar los redireccionamientos de aplicación), en la parte inferior explico su funcionamiento en líneas generales.

Os pedirá teclear la ruta de acceso, os lo dejo indicada para copiar y pegar

La ruta de acceso.

C:\Chrome-con-Cortana\SearchWithMyBrowser.exe

Se pega sin comillas. Una vez introducida teclear enter, después os pedirá teclear una tecla para continuar.


Ahora es el momento de crear la asociación del programa para abrir Chrome. Tendréis que decir que vais a usar SearchWithMyBrowser, y pulsar aceptar.

Ahora puede que tengáis que reiniciar. En caso de no funcionar, tendréis que asociar el navegador por defecto de Edge a Google Chrome de nuevo (en determinados casos).

Para terminar tendremos que instalar la extensión Chrometana en Google Chrome, si deseamos que las búsquedas que ya se efectúan en chrome se hagan en google o yahoo y no en bing. Esto es opcional.

 

Consejos Sobre Cortana.

Cortana es una interesante herramienta para agilizar las operaciones en el sistema Windows 10. Es preciso para sacarle todo el partido, configurar el micrófono para realizar solicitudes por voz.

En mi caso, me gusta activar la opción «Hola Cortana», una vez realizado, esto, cada vez que pronunciéis «Hola cortana», se quedará esperando una orden, en es este instante cuando podéis sacar provecho a este truco, puesto que si decís por ejemplo, abre información sobre algo …, el sistema os abrirá la consulta con Chrome y empleando el motor de búsquedas que deseéis.

Podéis encontrar Cortana en el icono al lado de inicio. Existen muchas frases interesantes, recordatorios, etc, os asombrará la precisión con la que trabaja. Por ejemplo, podéis decirle, hola cortana, que temperatura hace hoy?, hola cortana, cuéntame un chiste … 😉

 

Icono que tendréis que emplear al lado de inicio de Windows.

Ejemplo de chiste.

 

Cómo funciona este truco o técnica.

Son 2 scripts creados en CSharp y cuyo código fuente, se puede ver en SearchWithMyBrowser.cs

using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

public class SearchWithMyBrowser {

    [Flags]
    enum HChangeNotifyEventID
    {
        // ...
        SHCNE_ASSOCCHANGED = 0x08000000
        // ...
    }

    [Flags]
    enum HChangeNotifyFlags
    {
        // ...
        SHCNF_IDLIST = 0x0000
        // ...
    }

    [DllImport("shell32.dll")]
    static extern void SHChangeNotify(HChangeNotifyEventID wEventId, HChangeNotifyFlags uFlags, IntPtr dwItem1, IntPtr dwItem2);

    public static void Main(string[] CommandLine) {
        if (CommandLine[0] == "/register") {
            RegistryKey Software = Registry.LocalMachine.OpenSubKey("Software", true);
            RegistryKey Class = Software.CreateSubKey(@"Classes\SearchWithMyBrowser", true);
            Class.SetValue("URL Protocol", string.Empty);
            Class.SetValue(string.Empty, "URL:SearchWithMyBrowser Protocol");
            RegistryKey Command = Class.CreateSubKey(@"shell\open\command");
            Command.SetValue(string.Empty, "\"" + Process.GetCurrentProcess().MainModule.FileName + "\" \"%1\"");
            RegistryKey URLAssociations = Software.CreateSubKey(@"SearchWithMyBrowser\Capabilities\URLAssociations", true);
            URLAssociations.SetValue("microsoft-edge", "SearchWithMyBrowser");
            RegistryKey RegisteredApplications = Software.OpenSubKey("RegisteredApplications", true);
            RegisteredApplications.SetValue("SearchWithMyBrowser", @"Software\SearchWithMyBrowser\Capabilities");
            SHChangeNotify(HChangeNotifyEventID.SHCNE_ASSOCCHANGED, HChangeNotifyFlags.SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
        } else if (CommandLine[0] == "/unregister") {
            RegistryKey Software = Registry.LocalMachine.OpenSubKey("Software", true);
            RegistryKey RegisteredApplications = Software.OpenSubKey("RegisteredApplications", true);
            RegisteredApplications.DeleteValue("SearchWithMyBrowser");
            Software.DeleteSubKeyTree("SearchWithMyBrowser");
            RegistryKey Classes = Software.OpenSubKey("Classes", true);
            Classes.DeleteSubKeyTree("SearchWithMyBrowser");
            SHChangeNotify(HChangeNotifyEventID.SHCNE_ASSOCCHANGED, HChangeNotifyFlags.SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
        } else {
            Process.Start(CommandLine[0].Substring(15));
        }
    }
}

Se encarga de cambiar la asociación de Edge, registrando una aplicación en el registro, a modo de redirección cuando se solicita.

Respecto al archivo make.cmd, se encarga de realizar una compilación del archivo cs, usando el archivo csc.exe que se encuentra en el framework instalado versión 4. Yo dispongo de un sistema de 64 bits, podeis cambiar la ruta por Framework64, pero me imagino que el autor lo dejo así para que sea compatible con arquitecturas de 32 y 64. El csc puede ser cambiado en función del framework (mejor dejarlo por defecto).

@echo off



rem Clean older builds
del /F /Q "%~dp0SearchWithMyBrowser.exe"
del /F /Q "%~dp0SearchWithMyBrowser.pdb"
echo.

FOR %%i IN ("%~dp0SearchWithMyBrowser.exe" "%~dp0SearchWithMyBrowser.pdb") DO (
    IF EXIST %%i (
        IF %0=="%~f0" (
            cls
            echo Could not clean!
            echo.
            echo Try deleting %%i by yourself.
            echo.
            pause
        )
        exit /B
    )
)



rem Build the executable
"%windir%\Microsoft.NET\Framework\v4.0.30319\csc.exe" /nologo /target:winexe /debug /optimize /nowin32manifest /out:"%~dp0SearchWithMyBrowser.exe" "%~dp0SearchWithMyBrowser.cs" > "%temp%\csc.log"

IF NOT EXIST "%~dp0SearchWithMyBrowser.exe" (
    IF %0=="%~f0" (
        cls
        echo Could not compile!
        echo.
        echo The error log might contain relevant information about what happened:
    )
    type "%temp%\csc.log"
    IF %0=="%~f0" (
        echo.
        pause
    )
)

El instalador, se encarga de realizar la asociación, su código lo muestro en la parte inferior, como se puede apreciar (se puede ver con cualquier editor de texto), no hace cosas raras, simplemente registrar el programa mediante rundll32.exe shell32.dll,OpenAs_RunDLL microsoft-edge:,

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto gotAdmin)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
goto End
:GotAdmin
if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs")
pushd "%CD%"
CD /D "%~dp0"
:FileExists
cls
set RequiredFiles=1
IF NOT EXIST ".\SearchWithMyBrowser.exe" (set RequiredFiles=0)
IF /I %RequiredFiles% EQU 0 (
    echo One or more required files does not exists. Are you sure you successfully compiled? After making sure, please continue.
    pause
    goto FileExists
)
:WhereIsExecutable
cls
echo Tip! To directly get the path of a file:
echo     1. Right-click on it while pressing "Shift".
echo     2. Click on "Copy as Path".
echo     3. Right-click in this command prompt.
echo     4. If the path has not pasted itself already, click on "Paste".
echo     5. Press "Enter" to validate.
echo.
echo.
set /P Executablewq=Move the executable at any desired permanent location, and then type its location here: 
call:GetFilenameWithoutQuotes %Executablewq%
IF NOT DEFINED Executable (
    cls
    echo You did not specify a file!
    pause
    goto WhereIsExecutable
)
IF NOT EXIST "%Executable%" (
    cls
    echo The file you specified does not exists!
    pause
    goto WhereIsExecutable
)
cls
"%Executable%" /register
cls
echo A dialog will show after you press any key. Select "SearchWithMyBrowser.exe" and press "OK".
pause
rundll32.exe shell32.dll,OpenAs_RunDLL microsoft-edge:
:End
:GetFilenameWithoutQuotes
if not [%2]==[] set noquotes=1
if [%noquotes%]==[1] (set Executable=%* & exit /b)
set Executable=%~f1
exit /b

 

Os dejo el repositorio del autor, podéis colaborar con él.

https://github.com/charlesmilette

 

Etiquetas:, ,

Usted debe ser Registrado para publicar un cometario

Home Windows 10 Cortana con Chrome y búsquedas usando Google
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies