2010-07-28 5 views

Répondre

1

Les navigateurs sont complexes en matière de traitement à vie, même de retour dans les jours avant onglets, IE pourrait avoir plus d'une fenêtre ouverte dans un seul processus. Ils utilisent également souvent DDE pour ouvrir les URL, ce qui rend difficile le suivi du processus "correct". Si vous voulez forcer l'utilisateur à utiliser IE (Pourquoi ne pas utiliser le navigateur par défaut?) Vous pouvez utiliser l'hôte de script Windows pour automatiser IE (L'automatisation a quelques problèmes quand il s'agit d'IE IIRC protégé)

Je recommanderais juste un simple, pause:

start /wait http://example.com 
echo. When you are done reading xyz, press [Enter] to continue... 
pause >nul 
+0

Notez que cela provoquera le message être retardé jusqu'à ce que le navigateur se ferme. Cela peut être éternel, si l'utilisateur ouvre d'autres onglets, etc. –

+0

Oui, c'est vrai, si c'est un problème, supprimez/attendez – Anders

1
start /wait whatever.exe 

Le drapeau /wait fera début attendre jusqu'à ce que le programme se ferme avant qu'il ne revienne. Comme pour iexplore ne fonctionne pas, vous avez raison.

Ce qui est curieux ... Cependant, vous pouvez toujours l'invoquer avec un chemin complet:

start "" /wait "c:\Program Files\Internet Explorer\iexplore.exe" http://stackoverflow.com 

J'ai mis à jour la deuxième ligne de commande pour contourner une certaine manière de bogue dans le traitement des commandes de start. C'est étrange. Cependant, la bonne façon de le faire est:

start /wait http://address.com 
+0

/wait travaux pour des programmes comme le bloc-notes, mais échoue pour IE. Aussi, si j'inclue seulement le chemin vers IE, alors il ouvre une nouvelle ligne de commande à la place du navigateur. Si je ne donne que le lien, il ouvre un nouveau navigateur mais n'attend pas. Si j'essaie la commande que vous avez donnée exactement, je n'attends pas jusqu'à ce que je ferme le navigateur. – Manoj

+1

commence est stupide! Lorsque vous utilisez des chemins entre guillemets, vous devez d'abord inclure un ensemble de guillemets vide (pour le titre) Ex: start ""/wait "c: \ random app.exe" (Et vous devriez aussi remplacer c: \ Program Files avec% programfiles %) – Anders

+0

@Manoj Cela dépend. Je l'ai testé, ça fonctionne bien pour IE. Juste, comme d'autres l'ont mentionné, la durée de vie du navigateur est funky, puisque vous pourriez juste lancer un onglet dans un autre processus. –

-2
call "C:\Program Files\Internet Explorer\iexplore.exe" www.google.com 
call "C:\Program Files\Internet Explorer\iexplore.exe" www.stackoverflow.com 
call "C:\Program Files\Internet Explorer\iexplore.exe" www.codeproject.com 
echo done 
pause 

Je l'ai essayé sur windows 7 et il fonctionne parfaitement ....

tester le code avant de poster des commentaires ur .......

3

le o Les autres méthodes fonctionnent ici si Internet Explorer ne fonctionne pas.

Si IE est déjà en cours d'exécution, il ne fonctionnera pas correctement. C'est bien sûr horrible si une page web dans IE est le vecteur de départ pour votre script!

Le correctif j'ai trouvé est d'utiliser -noframemerging comme un interrupteur à iexplore.exe:

start "" /wait "%ProgramFiles%\Internet Explorer\iexplore.exe" -noframemerging "https://www.google.com" 
+0

en effet, start/wait retournera immédiatement si une fenêtre IE est déjà ouverte à moins que - noframemerging est passé en paramètre qui dit à IE de démarrer dans un nouveau processus au lieu d'ouvrir un nouvel onglet dans le processus déjà présent. –

+0

Je l'ai essayé car ça sonnait bien. Mais mon démarrage/attente n'attend pas comme prévu. (Et je vérifie avec -private que les options sont bien prises en compte par IE ...) – Zzirconium

Questions connexes