Avatar billede starf Nybegynder
08. maj 2007 - 20:25 Der er 16 kommentarer og
1 løsning

gå gennem liste og søg efter ord

Hej

Jeg har en listbox

der indeholder en liste af processes der bliver opdateret hver 5 sec. Jeg leder efter en måde at gå igennem denne liste efter bestemte ord og så eksekvere en handling hvis den bliver fundet. f.eks hvis den finder explore.exe

nogle ideer til hvordan dette gøres?
Avatar billede pfp Nybegynder
08. maj 2007 - 21:02 #1
string key = "explore.exe";

            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                string currentItem = listBox1.Items[i].ToString().ToLower();
                if (currentItem == key)
                {
                    // Gør noget...
                }
            }
Avatar billede pfp Nybegynder
08. maj 2007 - 21:02 #2
Du kan også anvende strings Contains() metode, hvis du istedet vil afgøre om dit nøgleord ikke er lig med, men blot indgår i en streng.
Avatar billede starf Nybegynder
08. maj 2007 - 21:31 #3
public void look()//søg efter process
        {
            string key = "explorer";

            for (int i = 0; i < LB_Processes.Items.Count; i++)
            {
                string currentItem = LB_Processes.Items[i].ToString().ToLower();
                if (currentItem == key)
                {
                    MessageBox.Show("found...");
                }
            }
        }

ser dog ikke ud til at virke, der sker intet selv om explorer står i min listbox.
Avatar billede pfp Nybegynder
08. maj 2007 - 21:37 #4
Det virker. Jeg har testet det.

Tjek at du har stavet rigtigt, og læg mærke til at jeg laver alt i listen om til små bogstaver..

Så hvis du søger efter "eXPLorEr" så finder den ikke noget, fordi den sammenligner med "explorer". Det kan du selv ændre ved at fjerne ToLower()
Avatar billede starf Nybegynder
08. maj 2007 - 21:44 #5
har stavet det nøjagtigt som det står i min process liste.. men intet sker når jeg aktivere funktionen... altså msg boksen kommer ikke frem...
Avatar billede hmortensen Nybegynder
08. maj 2007 - 21:47 #6
Så prøv at se om der sker noget overhovedet.
for (int i = 0; i < LB_Processes.Items.Count; i++)
{
  MessageBox.Show(LB_Processes.Items[i].ToString().ToLower());
}
Avatar billede pfp Nybegynder
08. maj 2007 - 21:49 #7
Ja det tænker jeg også, hvis der er noget i listen, og du har stavet rigtigt...så virker det...
Avatar billede starf Nybegynder
08. maj 2007 - 21:56 #8
så kommer der en msg boks med alle de forskelige services der køre.
Avatar billede hmortensen Nybegynder
08. maj 2007 - 21:58 #9
Når den kører igennem, finder den så "explorer" eller "explorer.exe"?
Avatar billede starf Nybegynder
08. maj 2007 - 22:01 #10
den finder explorer.. eller alle navnene uden .exe

har også prøvet med andre process navne uden det hjalp
Avatar billede hmortensen Nybegynder
08. maj 2007 - 22:07 #11
Prøv lige flg. Måske den indsætter et space.
for (int i = 0; i < LB_Processes.Items.Count; i++)
{
  MessageBox.Show("|" + LB_Processes.Items[i].ToString().ToLower() + "|");
}
Avatar billede pfp Nybegynder
08. maj 2007 - 22:07 #12
Du er velkommen til at zippe løsningen og sende til mig på peter (at) peterlindholm.com
Avatar billede starf Nybegynder
08. maj 2007 - 22:13 #13
den er hermed sendt pfp
Avatar billede hmortensen Nybegynder
08. maj 2007 - 22:15 #14
Er det muligt at gøre opgaven tilgængelig for alle brugere?
Avatar billede pfp Nybegynder
08. maj 2007 - 22:19 #15
Som jeg skrev tidligere kunne du prøve med Contains metoden.

Den finder ikke nogen resultater fordi du tilføjer "/t" i slutningen af strengen, så det er klart den ikke finder noget.

Prøv dette i stedet:
string key = "outlook";
            key = key.ToLower();

            for (int i = 0; i < LB_Processes.Items.Count; i++)
            {
                string currentItem = LB_Processes.Items[i].ToString().ToLower();
                if (currentItem.Contains(key))
                {
                    MessageBox.Show("found...");
                }       
            }
Avatar billede starf Nybegynder
08. maj 2007 - 22:19 #16
Avatar billede starf Nybegynder
08. maj 2007 - 22:22 #17
mange tak så virker det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester