2009-02-03 16 views
1

Comment ouvrir les fichiers de l'explorateur dans différents onglets. Je peux associer un menu ouvert avec le type de fichier, maintenant que le programme fonctionne déjà, comment ouvrir le nouveau fichier dans un autre onglet, au lieu du nouveau programme. Comment trouver exactement le processus en cours d'exécution, pas avec le nom et lui envoyer le nom de fichier. Permettez-moi de préciser: je veux que mon application soit une instance unique, de sorte que lorsque l'utilisateur sélectionne 10 fichiers texte et appuie sur la touche Entrée, mon application ouvrira tous les 10 fichiers texte dans 10 onglets, au lieu de créer 10 processus . Comment faire ça? Comment communiquer entre différentes instances du même processus.Comment ouvrir les fichiers de l'explorateur dans différents onglets

EDIT RESOLU: implémentation de la fonctionnalité à l'aide de WM_COPYDATA en C# et de la classe SingleApplication de codeproject.

+0

Vous voulez dire que ce que vous voulez est un moyen de faire de votre programme une instance unique et de ne pas générer un nouveau processus à chaque fois, je suppose? –

+0

oui, vous devinez juste –

Répondre

1

Je ne suis pas tout à fait sûr de ce que vous voulez dire dans cette question. Essayez-vous d'ouvrir les fenêtres Windows Explorer dans une fenêtre avec des onglets? Si tel est le cas, alors je vous recommande de regarder dans QT TabBar, ce qui étend l'Explorateur Windows pour permettre un tel comportement.

Ou peut-être essayez-vous d'ouvrir un lien vers un nouvel onglet dans un navigateur Web. Si tel est le cas, ce comportement est défini par le navigateur Web lui-même. Pour Internet Explorer 7, vous pouvez définir ce comportement sous Outils>Options Internet.

Dans l'onglet Général, cliquez sur le bouton Paramètres en regard de la section "Onglets". Vous voulez définir l'option "Ouvrir les liens des autres programmes dans:" pour ouvrir un nouvel onglet. Gardez à l'esprit que ce comportement est défini par chaque utilisateur et vous ne pouvez jamais garantir qu'il aura les mêmes paramètres de navigateur que vous. Après avoir lu vos commentaires, je pense que je comprends un peu mieux. Il semble que vous souhaitiez que votre application autorise uniquement une instance à la fois. Depuis que vous avez étiqueté ce poste C#, je vais supposer que c'est ce que vous écrivez votre programme.

Codeproject.com a un grand tutorial sur la façon de rendre votre programme ne permettent qu'une seule instance.

Voici un extrait de code de leur site:

static void Main() 
{ 
    if(SingleInstance.SingleApplication.Run() == false) 
    { 
     return; 
    } 
    //Write your program logic here 
} 

Vous voulez écrire du code juste avant la déclaration de retour d'avoir l'instance existante ouvrir le fichier dans un nouvel onglet.

Si vous êtes en mesure de fournir des informations détaillées sur ce que fait votre programme, nous pourrons peut-être vous aider avec certaines des spécificités.

+0

J'ai mis à jour la question et les commentaires avec plus de détails. –

+0

J'utilisais déjà SingleInstance.SingleApplication, je voulais connaître le mécanisme IPC à utiliser. J'ai compris que WM_COPYDATA est le meilleur moyen de le faire. Merci beaucoup. –