2009-07-13 11 views
1

J'utilise VSTS 2008 + C# + .Net 2.0. Et je veux invoquer IE pour ouvrir un fichier html situé sous le sous-dossier des pages de mon exécutable actuel.comment appeler IE pour ouvrir un fichier html local?

Depuis mon programme peut s'exécuter sous Windows Vista, je veux invoquer IE sous les autorisations administratives (Exécuter en tant qu'administrateur).

Un code pour faire des références? Je suis particulièrement intéressé par la façon d'écrire du code portable, qui fonctionne aussi bien sur Windows Vista et Windows XP (je pense que Windows XP ne fonctionne pas comme Exécuter en tant qu'administrateur)

EDIT 1:

Je suis en utilisant les éléments suivants code, mais il n'y a pas de boîte de message d'invite UAC (User Access Control) ouverte pour me permettre de continuer à fonctionner avec l'administrateur. Des idées ce qui ne va pas?

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
    startInfo.Verb = "RunAs"; 
    startInfo.Arguments = @"C:\test\default.html"; 
    Process.Start(startInfo); 

merci à l'avance, Geroge

+5

-t-il vraiment être IE ou voulez-vous juste pour lancer un HTML –

+2

Alors que je vous donne le troisième degré, je pourrais aussi bien demander pourquoi vous voulez lancer IE pour fonctionner en tant qu'administrateur .. –

+0

Salut Steven, je dois utiliser IE puisque j'utilise Silverlight en html Je pense que firefox ne supporte pas Silverlight – George2

Répondre

2
using System.Diagnostics; 

Process the_process = new Process(); 
the_process.StartInfo.FileName = "iexplore.exe"; 
the_process.StartInfo.Verb = "runas"; 
the_process.StartInfo.Arguments = "myfile.html"; 
the_process.Start(); 

le verbe "runas", il sera invite l'UAC et exécuté sous priviliges administratives.

vous pouvez exécuter ce code sous Vista et XP. Cela donnera le même effet. En ce qui concerne le fichier que vous souhaitez ouvrir, vous pouvez le transmettre comme argument à iexplore.exe en utilisant the_process.arguments = "

+0

Classe Process n'a pas de constructeur qui accepte un paramètre de type chaîne. – George2

+0

Salut Anirudh, s'il vous plaît se référer à modifier 1 section de mon message original. Le problème actuel est qu'il n'y a pas de boîte de message d'invite UAC (User Access Control) ouverte pour que je puisse sélectionner Continue to run with Administrator. Des idées ce qui ne va pas? – George2

+1

désolé mon mauvais que je mets dans un argument pour le constructeur. exécutez-vous le studio visuel dans l'administrateur? Je l'ai juste essayé sur la machine et il a fonctionné correctement. Et puis, il m'est apparu, quand est-ce que l'UAC a semblé courir pour iexplore? –

2
System.Diagnostics.Process.Start("iexplore.exe", @"C:\mypage.html"); 
+0

où dans votre code vous commencez par "Exécuter en tant qu'administrateur"? – George2

+0

Salut John, s'il vous plaît se référer à modifier 1 section de mon message original. Le problème actuel est qu'il n'y a pas de boîte de message d'invite UAC (User Access Control) ouverte pour que je puisse sélectionner Continue to run with Administrator. Des idées ce qui ne va pas? – George2

3

Pour travailler avec des chemins relatifs, donnent un regard à la GetFullPath method.

string fullPath = Path.Combine(Path.GetFullPath(@".\dir\dir2"), "file.html"); 
System.Diagnostics.Process.Start("iexplore.exe", fullPath); 
+0

Bonjour CMS, où dans votre code vous commencez par "Exécuter en tant qu'administrateur"? – George2

+0

Salut CMS, s'il vous plaît se référer à modifier 1 section de mon message original. Le problème actuel est qu'il n'y a pas de boîte de message d'invite UAC (User Access Control) ouverte pour que je puisse sélectionner Continue to run with Administrator. Des idées ce qui ne va pas? – George2

Questions connexes