Comment faire pour exécuter un Windows 2008 tâche du planificateur avec “interagir avec le bureau”

J'ai une petite .NET application que je suis en cours d'exécution sous Windows Server 2008 via le Planificateur de Tâches. Cette application a besoin pour ouvrir un fichier excel, puis de l'enregistrer en tant que fichier csv. La tâche échoue lorsque j'essaie d'ouvrir le classeur. Si je le lance manuellement, sans le planificateur de tâches, l'exécution, l'application fonctionne très bien.

Je l'ai réglé sur "Exécuter avec les autorisations maximales" et ont "Exécuter météo utilisateur est connecté ou non" est cochée.

Ma conjecture est que ce processus a besoin d'interagir avec le bureau similaire à cocher la case "interagir avec le bureau" drapeau sur un service. Mais j'ai été incapable de trouver quelque chose de similaire pour les tâches planifiées.

Voici le code qui est un échec: (il échoue sur le classeur.appel ouvert)

public static void ConvertExcelToCsv(string source, string destination)
{
    if (File.Exists(destination)) File.Delete(destination);

    Application xl = new Application();

    try
    {
        Workbook workbook = xl.Workbooks.Open(source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        Worksheet ws = (Worksheet)workbook.Sheets[1];
        ws.SaveAs(destination, XlFileFormat.xlCSV, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing,true);

        Marshal.ReleaseComObject(ws);
    }
    finally
    {
        xl.DisplayAlerts = false;
        xl.Quit();

        Marshal.ReleaseComObject(xl);                
    }

}

OriginalL'auteur Kelly | 2009-11-04