En la pregunta, la publicación Old New Thing también habla de cómo puede establecer algunas configuraciones de registro por aplicación, lo que evitará que se fije una aplicación en la barra de tareas.
Todo lo que tiene que hacer es agregar el valor de "NoStartPage" a una clave para su aplicación en Root \ Applications. El valor puede estar en blanco y de cualquier tipo, si Windows solo ve que está allí no mostrará la capacidad de anclar la aplicación, cuando el usuario haga clic derecho en la barra de tareas.
Aquí está la documentación de Microsoft acerca de esta característica: Use Registry to prevent pinning of an application
La única salvedad a esto es que en Windows 7, debido a la UAC, usted tiene que ejecutar como administrador para actualizar el registro. Hice esto a través de la aplicación. Manifest.
El código para encontrar la derecha y actualizar las claves del Registro correcta es a continuación (esperemos que no sea demasiado detallado):
public static void Main(string[] args)
{
// Get Root
var root = Registry.ClassesRoot;
// Get the Applications key
var applicationsSubKey = root.OpenSubKey("Applications", true);
if (applicationsSubKey != null)
{
bool updateNoStartPageKey = false;
// Check to see if your application already has a key created in the Applications key
var appNameSubKey = applicationsSubKey.OpenSubKey("MyAppName.exe", true);
if (appNameSubKey != null)
{
// Check to see if the NoStartPage value has already been created
if (!appNameSubKey.GetValueNames().Contains("NoStartPage"))
{
updateNoStartPageKey = true;
}
}
else
{
// create key for your application in the Applications key under Root
appNameSubKey = applicationsSubKey.CreateSubKey("MyAppName.exe", RegistryKeyPermissionCheck.Default);
if (appNameSubKey != null)
{
updateNoStartPageKey = true;
}
}
if (updateNoStartPageKey)
{
// Create/update the value for NoStartPage so Windows will prevent the app from being pinned.
appNameSubKey.SetValue("NoStartPage", string.Empty, RegistryValueKind.String);
}
}
}
¿Tiene el código C# para esto? Solo estoy haciendo referencia al paquete de código API de Windows, así que creo que solo necesito el código que es tu formulario principal. Gracias por adelantado. –