IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Lancer recherche dans Windows Explorer


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Lancer recherche dans Windows Explorer
    Bonjour,

    Je voudrais lancer une recherche de fichier sur Windows Explorer via une application externe.

    Il existe un moyen de le faire via le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string folder = Uri.EscapeDataString(@"C:\Users\UserName\Downloads");
    string file = '"' + Uri.EscapeDataString(textBox2.Text) + '"';
    string uri = "search:query=filename:" + file + "&crumb=location:" + folder;
    Process.Start(new ProcessStartInfo(uri));
    Mais ce que j'aimerais faire : c'est détecter si un Explorer est ouvert. Si ouvert, on lance la recherche dans cette Explorer et pas dans un nouveau.
    Parce qu'avec le code ci-dessus, il en ouvre un à chaque fois.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9
    Par défaut
    ProcessStartInfo("Explorer.exe", "/n, /e,/select," & Fichier.FullName)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse rapide.

    Le problème c'est que j'aimerais en même temps utiliser les syntaxes du protocole search de Windows Explorer (http://msdn.microsoft.com/en-us/libr.../bb233500.aspx) par exemple pour rechercher plusieurs fichiers avec des noms différents en utilisant l'opérateur logique AND.

    Une idée?

  4. #4
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9
    Par défaut
    au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start(new ProcessStartInfo(uri));
    il faut supprimer le "new" car le new vas crée une nouvelle instance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start(ProcessStartInfo(uri));

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    J'ai testé et voilà ce que j'obtiens comme erreur après compilation:
    System.Diagnostics.ProcessStartInfo' is a 'type' but is used like a 'variable' (CS0118)
    Quelqu'un a une idée ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    J'ai essayé avec ce bout de code là mais ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string uri = "search:query=filename:" + file + "&crumb=location:" + folder;
    Process pc = Process.GetProcessById(2680); /* On récupère le process de l'explorer ouvert*/
    pc.Start(uri);
    J'obtiens l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Member 'System.Diagnostics.Process.Start(string)' cannot be accessed with an instance reference; qualify it with a type name instead (CS0176)
    Quelqu'un à une idée pour pallier à ce problème?

Discussions similaires

  1. Visualiser un PDF dans Windows Explorer
    Par JFDAccess dans le forum Windows 8
    Réponses: 7
    Dernier message: 24/09/2013, 17h03
  2. Format image perso dans Windows Explorer
    Par adc dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/04/2009, 14h26
  3. Déploiement de C:\ dans Windows Explorer
    Par Shmi5 dans le forum Windows Vista
    Réponses: 2
    Dernier message: 28/02/2009, 01h41
  4. Libellé de la colonne "Type" dans Windows explorer
    Par thefreecat dans le forum Windows XP
    Réponses: 3
    Dernier message: 27/02/2007, 21h16
  5. Affichage image medical dans Windows Explorer
    Par cheho dans le forum Windows XP
    Réponses: 4
    Dernier message: 21/08/2006, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo