Avatar billede nwn Nybegynder
23. august 2008 - 22:27 Der er 7 kommentarer og
1 løsning

Hente titel tekst fra andet kørende program ind i string.

Hej.

Jeg vil gerne vide, hvordan jeg kan hente titel teksten på et bestemt kørende program, ind i en string inde i mit eget C# program.

Med titel teksten, mener jeg den øverste tekst i venstre hjørne.

Jeg skal blot have den tekst ind i en string. Jeg vil gerne have det sådan, at hvis det bestemte program ikke er åbent (kørende), så skal den ikke hente titel teksten ind, og jeg vil gerne angive stien til det bestemte program.

Tak på forhånd!
Avatar billede arne_v Ekspert
23. august 2008 - 22:36 #1
Se om dette kan give lidt inspiration:

using System;
using System.Diagnostics;

namespace E20
{
    public class Program
    {
        public static void Main(string[] args)
        {
            foreach(Process p in Process.GetProcesses())
            {
                if(!String.IsNullOrEmpty(p.MainWindowTitle))
                {
                    Console.WriteLine(p.Id + " #### " + p.MainModule.FileName + " #### " + p.MainWindowTitle);
                }
            }
        }
    }
}
Avatar billede nwn Nybegynder
23. august 2008 - 22:57 #2
Det kigger jeg lige på, og tak for det hurtige svar.
Avatar billede nwn Nybegynder
23. august 2008 - 23:12 #3
Da jeg ikke er specielt erfaren med C#, får jeg brug lidt ekstra hjælp.

Indtil videre har jeg dette:

private void findnw_FileOk(object sender, CancelEventArgs e)
        {
            foreach (Process nwserver in Process.GetProcesses())
            {

                if (nwserver.ProcessName == "nwserver.exe")
                {

                    if (!String.IsNullOrEmpty(nwserver.MainWindowTitle))
                    {
                        MessageBox.Show("Programmet NW Server.exe er valgt");
                    }
                }
            }
        }

Så lige 2 spørgsmål.

Hvad gør denne præcist:

foreach (Process nwserver in Process.GetProcesses())
            {

Og hvordan kan jeg som i koden, spørge om process navnet på den valgte fil, er nwserver.exe:

if (nwserver.ProcessName == "nwserver.exe")
                {

Jeg prøvede med noget lignende: nwserver.Process = findnw.SafeFileName; dog uden held.
Avatar billede arne_v Ekspert
23. august 2008 - 23:18 #4
foreach (Process nwserver in Process.GetProcesses())

itererer over alle processer på systemet
Avatar billede arne_v Ekspert
23. august 2008 - 23:19 #5
Det sidste spørgsmål forstår jeg ikke.
Avatar billede nwn Nybegynder
23. august 2008 - 23:40 #6
Fandt selv ud af det sidste spørgsmål. Jeg fortsætter med at prøve mig frem.
Avatar billede nwn Nybegynder
24. august 2008 - 00:38 #7
Jeg fik det til at virke. Smid et svar, og så får du point (:

Tak for hjælpen.
Avatar billede arne_v Ekspert
24. august 2008 - 00:58 #8
svar
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