windows - poner - ¿Puedo ejecutar mi aplicación winRT como protector de pantalla?
protector de pantalla windows 10 animado (2)
Buena idea. Pero no.
Si desea que su aplicación realmente haga algo para Windows que no sea una aplicación simple, escriba una aplicación de extensión. Aquí está la palabra oficial:
Extensiones Una extensión es como un acuerdo entre una aplicación y Windows. Las extensiones permiten a los desarrolladores de aplicaciones ampliar o personalizar las características estándar de Windows principalmente para usar en sus aplicaciones y potencialmente para su uso en otras aplicaciones.
Existen estos tipos de aplicaciones de extensión en este momento:
Proveedor de imágenes de cuenta (extensión) Cuando los usuarios deciden cambiar la imagen de su cuenta, pueden seleccionar una imagen existente o usar una aplicación para tomar una nueva. Si su aplicación puede tomar fotos, puede usar esta extensión para que Windows enumere su aplicación en el panel de control Configuración de la imagen de la cuenta. Desde allí, los usuarios pueden seleccionarlo para crear una nueva imagen de cuenta. Para obtener más información sobre esta extensión, consulte el tema de referencia UserInformation. También puede consultar nuestra muestra de nombre de imagen de Cuenta.
Reproducción automática (extensión) Cuando el usuario conecta un dispositivo a una computadora, Windows activa un evento de Reproducción automática. Esta extensión permite que su aplicación aparezca como una opción de Reproducción automática para uno o más eventos de Reproducción automática.
Tareas en segundo plano (extensión) Las aplicaciones pueden usar tareas en segundo plano para ejecutar el código de la aplicación incluso cuando la aplicación está suspendida. Las tareas en segundo plano están pensadas para pequeños elementos de trabajo que no requieren interacción con el usuario.
Configuración de la cámara (extensión) Su aplicación puede proporcionar una interfaz de usuario personalizada para seleccionar las opciones de la cámara y elegir los efectos cuando se usa una cámara para capturar fotos o videos. Para obtener más información sobre esta extensión, consulte Desarrollar aplicaciones de dispositivos de Windows Store para cámaras.
Selector de contactos (extensión) Esta extensión permite que su aplicación se registre para proporcionar datos de contacto. Su aplicación se incluye en la lista de aplicaciones que Windows muestra cada vez que el usuario necesita acceder a sus contactos. Para obtener más información sobre esta extensión, consulte el tema de referencia de Windows.ApplicationModel.Contacts.Provider. También puede consultar Administración de contactos de usuario.
Activación de archivo (extensión) Los archivos que tienen la misma extensión de nombre de archivo son del mismo tipo de archivo. Su aplicación puede usar tipos de archivos existentes y conocidos, como .txt, o crear un nuevo tipo de archivo. La extensión de activación de archivos le permite definir un nuevo tipo de archivo o registro para manejar un tipo de archivo.
Game Explorer (extensión) Su aplicación se puede registrar con Windows como un juego. Para hacer esto, debe crear un archivo de definición de juego (GDF), compilarlo como un recurso binario en su aplicación y declarar ese recurso en el manifiesto del paquete.
Configuración de tareas de impresión (extensión) Puede diseñar una aplicación que muestre una interfaz de usuario personalizada relacionada con la impresión y se comunique directamente con un dispositivo de impresión. Cuando resaltas las características que son específicas de una marca y modelo particular de dispositivo de impresión, puedes proporcionar una experiencia de usuario más rica y mejorada.
Activación del protocolo (extensión) Su aplicación puede usar protocolos existentes para la comunicación, como mailto, o crear un protocolo personalizado. La extensión de activación de protocolo le permite definir un protocolo o registro personalizado para manejar un protocolo existente.
SSL / certificados (extensión) Los certificados digitales se utilizan para autenticar una entidad a otra. Por ejemplo, los certificados a menudo se usan para autenticar a un usuario a servicios web a través de SSL. Esta extensión le permite instalar un certificado digital con su aplicación.
cita: http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx
Desafortunadamente, nada tiene que ver con los protectores de pantalla. El motivo técnico, en este momento, no se puede escribir una aplicación de Windows 8 que funcione como salvapantallas porque las aplicaciones de Windows 8 están fundamentalmente vinculadas para ejecutarse dentro del entorno de ejecución de WinRT. Ese shell no se extiende más allá del menú Inicio en esta versión actual de Windows. Entonces, no hay forma de ejecutar afuera, como un protector de pantalla. Los protectores de pantalla todavía se construyen a la "manera de la moda".
¿Hay alguna manera de hacer que mi aplicación winRT sea un protector de pantalla en xaml?
Como dice Jerry, no hay una forma sencilla de crear un protector de pantalla de la aplicación Windows Store. Sin embargo, hay una solución indirecta que podría funcionar para usted en Windows 8, pero no en Windows RT. Lo tengo casi funcionando. Compartiré lo que tengo hasta ahora.
Un protector de pantalla es simplemente un ejecutable con una extensión .scr
que se guarda en C:/Windows/System32
. Por ejemplo, mira C:/Windows/System32/Bubbles.scr
. La solución que tengo en mente es crear un protector de pantalla .scr
cuyo único propósito es iniciar su aplicación Windows Store, que usted dice utilizará XAML.
No puede iniciar una aplicación de Windows Store directamente desde la línea de comandos, por lo que creará una aplicación de inicio. Eche un vistazo a la publicación de un blog llamada Automatización de las pruebas de las aplicaciones de Windows 8 por Ashwin Needamangala. En la mitad del artículo, busque la sección llamada Automatización de la activación de su aplicación . Contiene una aplicación C ++ de ejemplo que puede ejecutar aplicaciones de la Tienda Windows de la siguiente manera:
C:> Win8AppLaunch.exe Microsoft.BingNews_8wekyb3d8bbwe! AppexNews
El iniciador de muestras en esa página debe modificarse, pero antes de hacerlo simplemente copie el código en una aplicación de consola C ++:
Ya casi está listo para probarlo desde la línea de comandos, pero debe especificar el nombre de la aplicación como AppUserModelId
. Los detalles están en la publicación de Ashwin, pero para parafrasear, primero quiere permitir la ejecución de scripts de PowerShell en su sistema con:
PS C:> Set-ExecutionPolicy AllSigned
A continuación, ejecute este script de PowerShell:
$installedapps = get-AppxPackage
foreach ($app in $installedapps)
{
foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
{
$app.packagefamilyname + "!" + $id
}
}
Es posible que desee ejecutarlo en Windows PowerShell ISE . Es bastante resbaladizo. Encuentre el AppUserModelId
de su aplicación y luego pruebe Win8AppLaunch.exe
desde la línea de comandos, como se muestra arriba. Esto debería iniciar su aplicación Windows Store desde la línea de comandos.
Luego, modifique el AppUserModelId
de C ++ para codificar el AppUserModelId
de su aplicación en lugar de analizarlo desde un argumento de línea de comando. Creé una Gist de esto . La parte importante es la línea donde declaro myApp
.
Cree el nuevo ejecutable, renómbrelo MyScreenSaver.scr
y póngalo en C:/Windows/System32
. Aparecerá en el Panel de control de configuración del protector de pantalla. Puedes previsualizar el protector de pantalla allí, y funciona. Sin embargo, si espera a que se ejecute el protector de pantalla, aparecerá brevemente una ventana de consola y nunca se lanzará por completo. No estoy seguro de por qué. Intenté desactivar la creación de la ventana de la consola cambiando el proyecto a una aplicación de Windows, pero eso no ayudó. Puede intentarlo usted mismo cambiando Properties | Configuration | Linker | System | SubSystem
Properties | Configuration | Linker | System | SubSystem
Properties | Configuration | Linker | System | SubSystem
a WINDOWS
. Es un poco más complicado, ya que también necesitará cambiar el punto de entrada de _tMain
a _tWinMain
. Ponte en contacto conmigo a través de mi blog si quieres los detalles. Mi perfil de lo enumera.
En este punto, está funcionando casi por completo. Puede intentar comenzar con un salvapantallas en blanco C ++ que sepa que funciona, y luego copiar el código anterior. Si tengo más tiempo, tal vez lo intente yo mismo.