Like Tree1Danke
  • 1 Beitrag von Zvoni
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1684
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    DrMueller ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    549
    Hallo Leute,

    Wir haben eine Überprüfung gemacht, ob ein Dokument offen ist, indem wir per getWindowTitle überprüfen, ob der Name des Dokuments in einem Fenster vorkommt.

    Dies klappt soweit auf allen Plattformen recht gut, nur gibt es das Problem, dass es zwei Fenster gibt, welche den Namen ebenfalls enthalten können. Daher solange eines davon offen ist, denkt die Logik, dass Dokument sei offen.

    Ich habe nun per ClassName versucht über die entsprechenden HWNDs diese beiden Fenster auszuschliessen, doch dort bekomme ich, auch wenn ich das DLL kompiliere, immer nur den Rückgabewert "ThunderRT6FormDC"

    Was ich ebenfalls versucht habe, ist per GetWindowThreadProcessId die ProcessID und dann den Namen des Prozesses herauszufinden, doch irgendwie scheint's keine API zu geben, welche den ProcNamen ausgibt.


    Hat da jemand eine Idee, wie man das am einfachsten lösen könnnte?



    Vielen Dank im Voraus.

    Müller Matthias
     

  2. #2
    Zvoni ist offline Mitglied Smaragd
    Registriert seit
    Jul 2008
    Ort
    Hinter dem Mond gleich links
    Beiträge
    1.031
    Werden diese zwei anderen Fenster aus demselben Programm heraus aufgerufen oder kommen die von einem externen Programm?
     
    Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein

    Code vb:
    1
    
    If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")

  3. #3
    DrMueller ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    549
    Falscher Thread gepostet...

    Die werden von einem externen Aufgerufen. Daher muss ich ja über die Prozeduren gehen.
     

  4. #4
    Zvoni ist offline Mitglied Smaragd
    Registriert seit
    Jul 2008
    Ort
    Hinter dem Mond gleich links
    Beiträge
    1.031
    Doc, wenn die zwei Fenster von einem externen Programm aufgerufen werden, haben die einen eigenen Prozess und somit auch eine eigene ProzessID.

    Vergleich doch einfach die ProcessID deines eigenen Programms mit dem der zwei Fenster!
    DrMueller bedankt sich. 
    Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein

    Code vb:
    1
    
    If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")

  5. #5
    DrMueller ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    549
    Jo klar, es ist so simpel.
    Falls wer was ähnliches hat, hier die Anleitung:

    ProcessID des Hauptprogramms rausfinden:

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    Public Function getProcessID(ProgrammName) As Long
        Dim hSnapshot As Long, Result As Long
        Dim Process As PROCESSENTRY32
      
        ' "Snapshot" des aktuellen Prozess ermitteln
        hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
        If hSnapshot <> 0 Then
          Process.dwSize = Len(Process)
          
          ' Ersten Prozess ermitteln
          Result = ProcessFirst(hSnapshot, Process)
          
          Do Until Result = 0
            If InStr(LCase$(Process.szExeFile), LCase$(ProgrammName)) > 0 Then
              getProcessID = Process.th32ProcessID
              Exit Do
            End If
            
            ' nächster Prozess
            Result = ProcessNext(hSnapshot, Process)
          Loop
          
          ' Handle schliessen
          CloseHandle hSnapshot
        End If
     
    End Function


    Danach über EnumWindows etc. die entsprechenden HWNDs auslesen.

    Mit dieser Hwnd die ProcID auslesen über
    Code vb:
    1
    
    Call GetWindowThreadProcessId(thisHWND, thisProcID)

    Und danach müssen diese nur noch gegengeprüft werden.


    Danke an Zvoni, evtl. kann das jemand auch noch gebrauchen.
     

Ähnliche Themen

  1. IP ermitteln
    Von xollo im Forum Security (Viren, Trojaner, Spam)
    Antworten: 6
    Letzter Beitrag: 21.07.11, 12:24
  2. Typ ermitteln
    Von flashray im Forum Java
    Antworten: 4
    Letzter Beitrag: 12.11.07, 16:40
  3. ID ermitteln
    Von Bencher im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 22.06.06, 10:26
  4. URL ermitteln... nur Wie ?
    Von Sealtuagn im Forum PHP
    Antworten: 6
    Letzter Beitrag: 06.07.05, 13:23
  5. Fenstername über window.opener
    Von Deemax im Forum Javascript & Ajax
    Antworten: 11
    Letzter Beitrag: 13.05.04, 13:01