- AutoPlay permite decidir qué hace Windows 11 con USB y tarjetas: abrir, importar o no hacer nada.
- Puedes gestionarlo desde Configuración, Panel de control o directivas (gpedit).
- Los desarrolladores pueden registrar apps para eventos de contenido o de dispositivo (WPD).
Cuando conectas una memoria USB, una tarjeta SD o insertas un DVD en Windows 11, el sistema intenta identificar el tipo de contenido y sugiere qué hacer de forma automática. Esta función, conocida como Reproducción automática (AutoPlay), puede ahorrarte tiempo o, si lo prefieres, puede desactivarse por completo para evitar interrupciones y mantener un control más estricto sobre lo que ocurre al conectar dispositivos.
En las siguientes líneas verás cómo activar o desactivar AutoPlay desde Configuración, el Panel de control y las directivas de grupo. Además, si desarrollas aplicaciones para Windows, aprenderás a registrar tu app como opción de Reproducción automática (por contenido y por dispositivo), e incluso a tratar un volumen como dispositivo de AutoPlay con un archivo autorun.inf. Cerraremos con una referencia de eventos de AutoPlay para que tengas a mano qué dispara cada escenario.
¿Qué es Reproducción automática en Windows 11?
AutoPlay es una característica de Windows 11 que muestra, abre o reproduce contenido automáticamente cuando conectas una unidad extraíble o una tarjeta de memoria. También puede importar fotos y vídeos desde cámaras o SD sin pasos manuales. Por defecto suele venir activada, pero puedes ajustar su comportamiento o desactivarla por completo si buscas más control.
La utilidad va más allá: dependiendo del contenido detectado en el medio, Windows puede ofrecer distintas opciones (por ejemplo, abrir el Explorador, preguntar qué hacer, o importar fotos). Si prefieres decidir cada vez, puedes hacer que AutoPlay te pregunte siempre al conectar un dispositivo o medio.
Activar o desactivar AutoPlay desde Configuración
La ruta más directa para gestionar AutoPlay está en la app Configuración de Windows 11. Con un par de clics podrás activar la función y elegir qué hacer con unidades y tarjetas, o desactivarla para que Windows no ejecute nada automáticamente.
Pasos rápidos: abre Inicio y ve a Configuración. En el panel lateral, entra en Bluetooth y dispositivos y selecciona la sección Reproducción automática. Verás un interruptor llamado “Usar la reproducción automática para todos los medios y dispositivos”. Si lo desactivas, Windows 11 dejará de lanzar acciones al conectar USB, SD o discos.
Justo debajo, puedes ajustar el comportamiento por tipo de medio. En “Unidad extraíble” y “Tarjeta de memoria” encontrarás menús con varias opciones. A continuación tienes los detalles de cada una.
Opciones para Unidad extraíble (USB)
Elige qué hará Windows 11 cuando conectes una memoria USB o disco externo. Puedes pedir que no haga nada, que abra el Explorador o que te pregunte cada vez. Estas son las posibilidades más habituales en la sección de Unidad extraíble:
- No realizar ninguna acción: Windows no hará nada al conectar la unidad.
- Abrir carpeta para ver archivos: se abrirá el Explorador de archivos con el contenido de la unidad, ideal para revisar o copiar documentos rápidamente.
- Preguntarme cada vez: aparecerá un menú emergente con las opciones disponibles cada vez que conectes el dispositivo.
- Configurar los ajustes de almacenamiento: abre directamente las opciones de almacenamiento si prefieres gestionar el dispositivo desde esa sección.
Con estas elecciones podrás adaptar el comportamiento de AutoPlay a tu flujo de trabajo. Si sueles gestionar archivos de forma manual, probablemente te convenga abrir el Explorador o “Preguntarme cada vez”.
Opciones para Tarjeta de memoria
Si trabajas con cámaras o drones, la SD suele traer fotos y vídeos. AutoPlay puede importarlos a la app Fotos o a OneDrive, abrir el Explorador o dejarte elegir. Entre las opciones típicas de Tarjeta de memoria encontrarás:
- Importar fotos y vídeos: envía automáticamente las imágenes y clips a la app Fotos de Windows 11 o a OneDrive para tenerlos organizados.
- Reproducir: abre los archivos multimedia con Windows Media Player para una visualización inmediata.
- No realizar ninguna acción: no se ejecuta nada al insertar la tarjeta.
- Abrir carpeta para ver archivos: lanza el Explorador para que selecciones manualmente lo que quieras copiar o revisar.
- Preguntarme cada vez: muestra un aviso con las opciones disponibles en cada inserción de la tarjeta.
Como ves, el abanico de opciones cubre desde automatizar la importación de fotos hasta mantener el control total. Tú decides cuánto quieres que Windows 11 intervenga al detectar el contenido.
Cambiar AutoPlay desde el Panel de control
Si prefieres el enfoque clásico, es posible configurar AutoPlay desde el Panel de control. El resultado es equivalente, pero con un listado por tipo de medio y aplicación predeterminada aún más granular.
Abre el Panel de control desde Inicio y entra en “Hardware y sonido”. Dentro, selecciona “Reproducción automática”. En esta ventana podrás marcar o desmarcar “Usar la reproducción automática para todos los medios y dispositivos” y, además, asignar la app o acción por defecto para cada tipo de medio.
Cuando termines, no olvides hacer clic en “Guardar” para aplicar los cambios. Si cambias de idea, siempre puedes volver aquí para ajustar cualquier formato o dispositivo.
Controlar AutoPlay con el Editor de directivas (gpedit)
En ediciones de Windows 11 que incluyen el Editor de directivas de grupo local, puedes gestionar AutoPlay mediante políticas. Es muy útil en entornos corporativos o para afinar la seguridad en equipos compartidos.
Busca “gpedit” desde Inicio y ve a Configuración del equipo > Plantillas administrativas > Componentes de Windows > Directivas de Reproducción automática. Entra en la directiva “Desactivar reproducción automática”.
Si la política está en “No configurada” o “Deshabilitada”, AutoPlay queda activado. Si la pones en “Habilitada”, podrás elegir en el desplegable “Desactivar reproducción automática en” para qué unidades no se permite la reproducción automática (por ejemplo, todas las unidades). Aplica y acepta para consolidar la política en el equipo.
AutoPlay para desarrolladores: registra tu aplicación para eventos de contenido
Windows permite que las apps UWP se registren como opciones cuando AutoPlay detecta contenido en un dispositivo de volumen (USB, tarjeta SD, DVD). Esto ocurre, por ejemplo, cuando al insertar una SD con estructura de cámara (DCIM, AVCHD o PRIVATE\ACHD) se genera el evento ShowPicturesOnArrival y el sistema sugiere apps compatibles.
Además, AutoPlay también se integra con el uso compartido por proximidad (tocar/enviar) entre PCs. En ese caso, en la activación de archivos la propiedad Files de FileActivatedEventArgs incluye la carpeta raíz que agrupa lo compartido. Aquí tienes una guía paso a paso para registrar tu app como opción de AutoPlay por contenido.
Paso 1: Crear proyecto y añadir declaraciones de AutoPlay (contenido)
En Visual Studio, crea una “Aplicación en blanco para UWP (.NET Native)” y abre el manifiesto (Package.appxmanifest). En la pestaña Capacidades, activa Almacenamiento extraíble y, si vas a trabajar con imágenes locales, la Biblioteca de imágenes. En Declaraciones, agrega “Contenido de AutoReproducción”.
Define las Acciones de inicio para el evento de contenido que quieras manejar. Para cámaras (estructura DCIM, AVCHD o PRIVATE\ACHD), AutoPlay lanza ShowPicturesOnArrival. Puedes configurar varias acciones (p. ej. mostrar o copiar) diferenciadas por el campo Verb. Luego, asocia tipos de archivo (.jpg y .png) en “Asociaciones de tipos de archivo” para que AutoPlay filtre correctamente.
Valores de ejemplo para dos acciones de inicio sobre el mismo evento ShowPicturesOnArrival:
Configuración | Valor |
---|---|
Verbo | show |
Nombre visible | Mostrar imágenes |
Evento de contenido | ShowPicturesOnArrival |
Configuración | Valor |
---|---|
Verbo | copy |
Nombre visible | Copiar imágenes en la biblioteca |
Evento de contenido | ShowPicturesOnArrival |
El nombre visible es lo que verá el usuario en el menú de AutoPlay, y el Verbo es el identificador que recibirá tu app para saber qué opción eligió (evita usar «open», reservado por el sistema).
Paso 2: Añadir UI XAML mínima
Prepara una interfaz sencilla para listar archivos y mostrar imágenes. Por ejemplo, en MainPage.xaml puedes incluir un bloque de texto y un lienzo donde dibujar miniaturas o previsualizaciones.
<TextBlock FontSize="18">File List</TextBlock>
<TextBlock x:Name="FilesBlock" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Margin="0,20,0,0" Height="280" Width="240" />
<Canvas x:Name="FilesCanvas" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="260,20,0,0" Height="280" Width="100"/>
Con esta base podrás listar nombres y renderizar miniaturas en un Canvas de forma sencilla para validar el flujo de AutoPlay.
Paso 3: Comprobar el Verbo en la activación
En App.xaml.cs, haz override de OnFileActivated. Comprueba args.Verb y llama a la rutina correspondiente para mostrar o copiar. AutoPlay pasa al arranque la carpeta raíz del almacenamiento (primer elemento de Files).
protected override void OnFileActivated(FileActivatedEventArgs args)
{
if (args.Verb == "show")
{
Frame rootFrame = (Frame)Window.Current.Content;
MainPage page = (MainPage)rootFrame.Content;
page.DisplayImages((Windows.Storage.StorageFolder)args.Files);
}
if (args.Verb == "copy")
{
Frame rootFrame = (Frame)Window.Current.Content;
MainPage page = (MainPage)rootFrame.Content;
page.CopyImages((Windows.Storage.StorageFolder)args.Files);
}
base.OnFileActivated(args);
}
Esta distinción por verbo permite que una misma app ofrezca varias acciones en el panel de AutoPlay y ejecute la lógica adecuada.
Paso 4: Mostrar imágenes desde DCIM
En MainPage.xaml.cs, implementa DisplayImages para recorrer la primera carpeta dentro de DCIM, listar ficheros y dibujar miniaturas en pantalla. Este patrón sirve como ejemplo de acceso asincrónico a archivos del almacenamiento extraíble.
async internal void DisplayImages(Windows.Storage.StorageFolder rootFolder)
{
var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
var folderList = await dcimFolder.GetFoldersAsync();
var cameraFolder = folderList;
var fileList = await cameraFolder.GetFilesAsync();
for (int i = 0; i < fileList.Count; i++)
{
var file = (Windows.Storage.StorageFile)fileList;
WriteMessageText(file.Name + "\n");
DisplayImage(file, i);
}
}
async private void DisplayImage(Windows.Storage.IStorageItem file, int index)
{
try
{
var sFile = (Windows.Storage.StorageFile)file;
Windows.Storage.Streams.IRandomAccessStream imageStream = await sFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
Windows.UI.Xaml.Media.Imaging.BitmapImage imageBitmap = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
imageBitmap.SetSource(imageStream);
var element = new Image();
element.Source = imageBitmap;
element.Height = 100;
Thickness margin = new Thickness();
margin.Top = index * 100;
element.Margin = margin;
FilesCanvas.Children.Add(element);
}
catch (Exception e)
{
WriteMessageText(e.Message + "\n");
}
}
private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;
private async void WriteMessageText(string message, bool overwrite = false)
{
await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
if (overwrite) FilesBlock.Text = message;
else FilesBlock.Text += message;
});
}
La lógica de UI es simple, pero suficiente para verificar que tu app reacciona al evento ShowPicturesOnArrival y representa elementos del almacenamiento.
Paso 5: Copiar imágenes a la biblioteca
Para la opción de “copiar”, crea una carpeta en la Biblioteca de imágenes y duplica ahí los ficheros encontrados. Las llamadas asíncronas simplifican la copia sin bloquear la interfaz.
async internal void CopyImages(Windows.Storage.StorageFolder rootFolder)
{
var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
var folderList = await dcimFolder.GetFoldersAsync();
var cameraFolder = folderList;
var fileList = await cameraFolder.GetFilesAsync();
try
{
var folderName = "Images " + DateTime.Now.ToString("yyyy-MM-dd HHmmss");
Windows.Storage.StorageFolder imageFolder = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync(folderName);
foreach (Windows.Storage.IStorageItem file in fileList)
{
CopyImage(file, imageFolder);
}
}
catch (Exception e)
{
WriteMessageText("Failed to copy images.\n" + e.Message + "\n");
}
}
async internal void CopyImage(Windows.Storage.IStorageItem file, Windows.Storage.StorageFolder imageFolder)
{
try
{
Windows.Storage.StorageFile sFile = (Windows.Storage.StorageFile)file;
await sFile.CopyAsync(imageFolder, sFile.Name);
WriteMessageText(sFile.Name + " copied.\n");
}
catch (Exception e)
{
WriteMessageText("Failed to copy file.\n" + e.Message + "\n");
}
}
Con esto, tu aplicación quedará lista para actuar como opción de AutoPlay por contenido y automatizar la copia o visualización.
Registrar la app para eventos de dispositivo (WPD\ImageSource)
Además de los eventos por “contenido”, AutoPlay emite eventos por “dispositivo”. Un caso típico es registrar tu app como opción cuando se conecta una cámara que se presenta como “ImageSource” a través de MTP (Windows Portable Devices). En ese escenario, el evento relevante es WPD\ImageSource.
Crea otra UWP, habilita la capacidad “Almacenamiento extraíble” y en Declaraciones añade “Dispositivo de AutoReproducción”. Define una acción de inicio con Verb y nombre visible, y como evento indica WPD\ImageSource. Después, añade asociaciones de tipos de archivo (por ejemplo, .jpg y .png) para filtrar lo que manejará tu app.
Configuración | Valor |
---|---|
Verbo | show |
Nombre visible | Mostrar imágenes |
Evento de dispositivo | WPD\ImageSource |
Estas API dependen de la familia de dispositivos de escritorio. Asegúrate de agregar la referencia a “Windows Desktop Extensions for UWP” en tu proyecto para poder usar Windows.Devices.Portable.StorageDevice.
UI XAML y activación del dispositivo
Para visualizar miniaturas, puedes usar un ListView con plantilla y un panel con distribución en mosaico. En App.xaml.cs, intercepta OnActivated y, si args.Kind es Device, utiliza StorageDevice.FromId con el DeviceInformationId recibido para acceder al almacenamiento.
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Device)
{
Frame rootFrame = null;
if (Window.Current.Content == null)
{
rootFrame = new Frame();
rootFrame.Navigate(typeof(MainPage));
Window.Current.Content = rootFrame;
}
else
{
rootFrame = Window.Current.Content as Frame;
}
Window.Current.Activate();
bool storageDeviceAPIPresent = Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Devices.Portable.StorageDevice");
if (storageDeviceAPIPresent)
{
var mPage = rootFrame.Content as MainPage;
var deviceArgs = args as DeviceActivatedEventArgs;
if (deviceArgs != null)
{
mPage.ShowImages(Windows.Devices.Portable.StorageDevice.FromId(deviceArgs.DeviceInformationId));
}
}
else
{
// API no disponible en familias no escritorio
}
}
base.OnActivated(args);
}
Una vez tengas la carpeta raíz, podrás extraer datos del dispositivo (nombre, tipo, etc.) y recorrer subcarpetas para construir la lista de imágenes con sus miniaturas, haciendo llamadas asíncronas en secuencia para no saturar al dispositivo.
Tratar un volumen como “dispositivo AutoPlay” con autorun.inf (CustomEvent)
Si necesitas que un volumen (por ejemplo, una memoria USB con tu app) se identifique como “dispositivo” para AutoPlay, puedes incluir un archivo autorun.inf en la raíz y añadir la clave CustomEvent. Así, al conectar el volumen, AutoPlay generará un evento de dispositivo personalizado con ese nombre.
Crea el archivo en la raíz del medio con este contenido:
CustomEvent=AutoPlayCustomEventQuickstart
A continuación, en tu app UWP, habilita “Almacenamiento extraíble” y registra una declaración de Contenido de AutoReproducción para ese evento (el valor ContentEvent debe coincidir con el de CustomEvent). Añade también la asociación de tipos de archivo que necesites (por ejemplo, .ms) para filtrar el contenido.
Configuración | Valor |
---|---|
Verbo | show |
Nombre visible | Mostrar archivos |
Evento de contenido | AutoPlayCustomEventQuickstart |
En la activación por archivo (OnFileActivated), AutoPlay pasará la carpeta raíz del dispositivo en args.Files. Desde ahí puedes listar y trabajar con los archivos que cumplan el filtro definido.
protected override void OnFileActivated(FileActivatedEventArgs args)
{
var rootFrame = Window.Current.Content as Frame;
var page = rootFrame.Content as MainPage;
page.DisplayFiles(args.Files as Windows.Storage.StorageFolder);
base.OnFileActivated(args);
}
Una implementación sencilla para mostrar archivos con extensión concreta podría usar una consulta con QueryOptions y CreateFileQueryWithOptions para recuperar los ítems compatibles.
Referencia de eventos de AutoPlay
AutoPlay puede registrar y lanzar eventos según el tipo de dispositivo conectado o el contenido detectado. A continuación tienes una referencia de los escenarios más habituales y el evento asociado en Windows:
Escenario | Evento | Descripción |
---|---|---|
Fotos en cámara (WPD) | WPD\ImageSource | Para cámaras que se presentan como dispositivos portátiles y ofrecen la funcionalidad ImageSource. |
Música en reproductor (WPD) | WPD\AudioSource | Reproductores que exponen AudioSource vía Windows Portable Devices. |
Vídeo en videocámara (WPD) | WPD\VideoSource | Dispositivos de vídeo con funcionalidad VideoSource bajo WPD. |
Unidad o volumen conectado | StorageOnArrival | Se lanza al conectar una unidad/volumen. Si hay DCIM/AVCHD/PRIVATE\ACHD en la raíz, prevalece ShowPicturesOnArrival. |
Imágenes desde almacenamiento masivo (heredado) | ShowPicturesOnArrival | Se dispara cuando el volumen contiene carpetas típicas de cámaras o, si el usuario activa “Elegir qué hacer”, cuando detecta fotos en la raíz. |
Fotos recibidas por proximidad | ShowPicturesOnArrival | Al compartir por proximidad, si se detectan imágenes entre los archivos, se genera este evento. |
Música desde almacenamiento masivo (heredado) | PlayMusicFilesOnArrival | Con “Elegir qué hacer”, si AutoPlay encuentra música, lanza el evento de música al llegar. |
Música por proximidad | PlayMusicFilesOnArrival | Si se comparten pistas por proximidad, se produce el evento correspondiente de música. |
Vídeo desde almacenamiento masivo (heredado) | PlayVideoFilesOnArrival | Detecta ficheros de vídeo y lanza el evento para reproducir vídeos al conectar el medio. |
Vídeo por proximidad | PlayVideoFilesOnArrival | Se emite si los archivos compartidos por proximidad son de tipo vídeo. |
Contenido mixto | MixedContentOnArrival | Cuando no se identifica un tipo dominante (p. ej., imágenes), AutoPlay dispara el evento de contenido mixto. |
Vídeo en medios ópticos | PlayDVDArrival, PlayBluRayOnArrival, PlayVideoCDMovieOnArrival, PlaySuperVideoCDMovieOnArrival | Inserción de discos con contenido de vídeo; se genera el evento según el tipo de soporte óptico. |
Música en medios ópticos | PlayCDAudioOnArrival, PlayDVDAudioOnArrival | Para discos ópticos con audio; AutoPlay elige el evento adecuado. |
Discos “mejorados” | PlayEnhancedCDOnArrival, PlayEnhancedDVDOnArrival | Al detectar discos con pistas de datos y multimedia, dispara el evento de edición mejorada. |
Grabación de discos ópticos | HandleCDBurningOnArrival, ManageDVDBurningOnArrival, ManageBDBurningOnArrival | Para soportes grabables, AutoPlay ofrece gestionar la grabación. |
Contenido desconocido | UnknownContentOnArrival | Fallback para casos no contemplados. No se recomienda registrar la app solo a este evento. |
Por último, recuerda que puedes añadir la extensión correspondiente en el package.appxmanifest para registrar tu app ante un evento concreto de AutoPlay. Un ejemplo para ShowPicturesOnArrival sería:
<Applications>
<Application>
<Extensions>
<Extension Category="windows.autoPlayContent">
<AutoPlayContent>
<LaunchAction Verb="show" ActionDisplayName="Show Pictures" ContentEvent="ShowPicturesOnArrival" />
</AutoPlayContent>
</Extension>
</Extensions>
</Application>
</Applications>
Con todo lo anterior, puedes decidir si quieres que Windows 11 actúe por ti al conectar unidades y tarjetas, o si prefieres un enfoque manual. Y si creas software, tienes a tu alcance integrar tu aplicación en el flujo de AutoPlay tanto por contenido como por dispositivo.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.