tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
18
ZUGRIFFE
3534
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    Hi leutz ich such mich hier schon dumm und dusselig. Ich finde einfach nichts richtiges. Ich möchte den kompletten Pfad von einem Process rausfinden. Bsp.
    mit der MeinProgramm.exe möchte ich den pfad von explorer.exe rausfinden und ausgeben.
    Wäre nett wenn ihr mir helfen könntet.
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Probiers doch mal so:
    Code csharp:
    1
    2
    
    Process p = Process.GetProcessesByName("explorer.exe")[0];
    Console.WriteLine(p.MainModule.FileName);
    Geändert von Nico Graichen (05.12.07 um 21:01 Uhr)
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    hmm muss ich irgendwas noch mit rein haun ? ... using ....
    System.array enthält keine definition für StartInfo
    ich komm mir dumm vor xD
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Wieso System.Array?
    GetProcessByName liefert dir ein Process-Array zurück. Jedes Element ist ein Process-Objekt. Und darauf musst du weiterarbeiten! (siehe auch Code von oben)

    Versuchs mal mit debuggen, dann siehst du auch wo welcher Wert zurück kommt
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  5. #5
    Avatar von Konstantin Gross
    Konstantin Gross Konstantin Gross ist offline Mitglied Platin
    Registriert seit
    Sep 2003
    Ort
    nähe Kassel (Hessen)
    Beiträge
    703
    Zitat Zitat von lolko Beitrag anzeigen
    hmm muss ich irgendwas noch mit rein haun ? ... using ....
    Ja und zwar System.Diagnostics.
     
    Internetseite:
    http://www.texturenland.de

    Blog:
    http://blog.texturenland.de

    Codesnippets:
    .NET-Snippets

    - Sollte ich bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen -

  6. #6
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    System.Diagnostics hat ich schon drin.
    hmm
    also ich hab jetz
    Process explorer = Process.GetProcessesByName("explorer")[0];
    string exp = explorer.StartInfo.FileName;
    er gibt mir kein error aus, aber ... explorer exp enthält nichts (null)
    kann kein fehler entdecken ..
    //Edit
    wenn ichs an den string ausgebe (.ToString()) gehts auch net
    Geändert von lolko (05.12.07 um 17:24 Uhr)
     

  7. #7
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi,

    Probier doch mal explorer.exe.
    Außerdem solltest du prüfen, ob du überhaupt das Recht hast, diesen Prozess zu sehen. (Wird er bei dir im Taskmanager angezeigt?)
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  8. #8
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    mit . exe dahinter findet er den prozess net und ja sie is im taskmanager ..
    er gibt exp ja als null aus .. also da ist nichts drin .. ich hab schon alles versucht aber es will einfach nicht das führt ein zur verzweiflung
    //EDIT
    so ich bin gerade ma aufgewacht und hab ma richtig debuggt

    Process explorer = Process.GetProcessesByName("explorer")[0];
    string exp = explorer.MainModule.FileName;
    MessageBox.Show(exp);

    es geht jetz vielen dank für die nette hilfe
    Geändert von lolko (05.12.07 um 20:09 Uhr)
     

  9. #9
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Ok, mein Fehler, du hast ja den Prozess nicht gestartet. Habs oben korrigiert
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  10. #10
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    Sorry aber ganz is das ding doch noch net geklärt , denn wenn der Prozess nicht läuft
    gibt er mir Der Index war außerhalb des Arraybereichs. aus. Und das Programm läuft dann nicht weiter das Problem ist halt das ich das Programm B auch wieders starten möchte und das geht jedoch nicht wenn ich check ob der prozes läuft
     

  11. #11
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    dann zieh den Code doch weiter auseinander!
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Process[] processes = Process.GetProcessesByName("explorer.exe");
    if (processes.Length > 0)
    {
        Console.WriteLine(processes[0].MainModule.FileName);
    }
    else
    {
        Console.WriteLine("no process with this name found");
    }
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  12. #12
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    Nee das mein ich so nicht das geht ja alles nur (ich hab jetz ma dein source genommen)
    Process[] explorer = Process.GetProcessesByName("explorer");

    if (explorer.Length > 0)
    {


    string exp = explorer[0].MainModule.FileName;
    explorer.Kill();
    }

    else
    {

    MessageBox.Show("no process with this name found");

    }

    und außerhalb von if steht dann noch

    Process.Start(exp);
    tea definiere ich ja in der if schleife nur dann kommt der Fehler

    Der Name "exp" ist im aktuellen Kontext nicht vorhanden.

    Und das ist mein jetziges problem. Ich möchte, wenn der Process an ist .. den string definieren. Aber das geht ja iwie net und das nen big problem
    weil ich die exe erst killen möchte und danach dann starten ..
    Geändert von lolko (07.12.07 um 16:16 Uhr)
     

  13. #13
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Der Skope, in dem du die Variable exp definiert hast, existiert nicht mehr. Die Variable ist nur im If-Teil deine If-Else-Anweisung gültig.
    Du musst die Variable vor dem Konstrukt definieren und im If-Teil füllen.
    Noch besser wäre aber, wenn du Process.Start() mit im If-Teil ausführst. Ansonsten kommst du zu Problem, wenn der Explorer-Prozess nicht exisitert/gefunden wird.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  14. #14
    lolko lolko ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    9
    naja ich muss sie definieren wenn der prozess existiert... wenn er nicht an is gibt er mir nen fehler , wenn ichs vorher definiere.. weil er ja net an is und start kann ich in der if anweisung net mit einbringen
    es muss außerhalb passieren
     

  15. #15
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Kannst du das bitte nochmal schreiben und dich dabei vorallem an die Netiquette halten. Ich hab kein Wort verstanden. Den Aufruf von Prozess.Start() kannst du nur da machen, wo du auch den Pfad zu einer Anwendung hast, ansonsten läufst du in eine Fehler
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 28.09.10, 02:43
  2. Ein anderer Prozess greift auf die Paketdatenbank zu
    Von GalaxyWarrior im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 12.09.07, 16:56
  3. Antworten: 3
    Letzter Beitrag: 25.08.07, 15:29
  4. Durch Programm anderer Prozess starten
    Von borislav im Forum Java
    Antworten: 0
    Letzter Beitrag: 28.02.05, 17:13
  5. anderer Pfad
    Von neopayne im Forum PHP
    Antworten: 4
    Letzter Beitrag: 24.12.04, 23:58