Avatar billede the-gnu.dk Nybegynder
20. maj 2005 - 13:41 Der er 5 kommentarer og
2 løsninger

Process parametre

Jeg har et program kørence, som jeg får fat i med:

Process[] processes = Process.GetProcessesByName("IEXPLORE");
...
((Process)  .Current).StartInfo.Arguments

Jeg har brug for de parametre programmet startede op med (URL i en IEXPLORE). Men hvordan får man det? StartInfo.Arguments retunerer intet?
Avatar billede coderdk Praktikant
20. maj 2005 - 16:16 #1
Det tror jeg ikke du kan, ikke engang i alm. windows - StartInfo er til Start()... Hvis jeg ikke husker galt, så kan du faktisk ikke se en proces' command line args, når den er startet - Det kan du kun fra processen selv...

Jeg kan tage fejl ;)
Avatar billede nielle Nybegynder
20. maj 2005 - 20:00 #2
Mon ikke det her kan bruges til noget:

using System;
using System.Management;

namespace Eksperten
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            ManagementObjectSearcher MOS = new ManagementObjectSearcher("SELECT * FROM Win32_Process WHERE Name='IEXPLORE.EXE'");
           
            ManagementObjectCollection MOC = MOS.Get();
            foreach (ManagementObject MO in MOC)
            {
                Console.WriteLine( "PID: {0}, Startet: {1}, CommandLine: {2}",
                    MO["ProcessID"].ToString(), MO["CreationDate"].ToString(), MO["CommandLine"].ToString());
            }
        }
    }
}
Avatar billede nielle Nybegynder
20. maj 2005 - 20:15 #3
F.eks. i denne her variantion:

using System;
using System.Diagnostics;
using System.Management;

namespace Eksperten
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            Process[] processes = Process.GetProcessesByName("IEXPLORE");
            foreach (Process P in processes)
            {
                int PID = P.Id;
               
                string SQL = string.Format("SELECT * FROM Win32_Process WHERE ProcessID='{0}'", PID);
                ManagementObjectSearcher MOS = new ManagementObjectSearcher(SQL);
           
                ManagementObjectCollection MOC = MOS.Get();
                foreach (ManagementObject MO in MOC)
                {
                    Console.WriteLine( "PID: {0}, Startet: {1}, CommandLine: {2}",
                        MO["ProcessID"].ToString(), MO["CreationDate"].ToString(), MO["CommandLine"].ToString());
                }
            }
        }
    }
}

Du skal selvfølgelig hente dit PID fra din "Current" i stedet for.

For at kunne benytte System.Management skal du inder Referencer huske at tilføje System.Management.dll.
Avatar billede coderdk Praktikant
20. maj 2005 - 21:54 #4
Doh! WMI! Selvfølgelig! Nice! Nu må jeg prøve at holde op med at skrive udråbstegn! :)
Avatar billede the-gnu.dk Nybegynder
20. maj 2005 - 22:53 #5
Vil du svare...
Avatar billede nielle Nybegynder
21. maj 2005 - 08:08 #6
Svar :^)

200 points er imidlertid alt alt for meget - giv mig 60 og tag resten tilbage igen.
Avatar billede the-gnu.dk Nybegynder
21. maj 2005 - 12:38 #7
Ok
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