Programm gesucht: Alle offenen Fenster anzeigen



  • Hallo Forum,

    kennt Ihr ein Programm mit dem man alle offenen Fenster anzeigen lassen kann? Ich möchte bei einem Kunden einfach alle Namen und Fenstertypen aller angezeigten Fenster anzeigen lassen. Ich möchte nicht unbedingt einen Source haben, weil ich dann auch noch einen Compiler installieren müsste.

    Vielen Dank

    Peter



  • taskmgr 🤡



  • Nee, ein Programm besteht doch aus mehreren Fenstern. Ich möchte den Namen der Fenster (zB Word) und den Typ (zB ThunderForm) aufgelistet bekommen. Genaugenommen suche ich Infos über ein ganz bestimmtes Fenster. Da wäre es gut wenn ich mit einem Mausklick sagen könnte: Ich will Infos genau über diesen Fenster.

    Irgendwo habe ich sowas gesehen. Im Internet finde ich eine Menge Bsp Source mit EnumerateChilds, ... ich würde gerne ein fertiges Programm haben.



  • Spy++ ansonsten schau mal bei www.sysinternals.com vorbei. Der ProcessExplorer kann das wohl oder wie auch immer die neue Version davon heißt.



  • Welches OS?



  • Das OS ist WindowsXP
    Der Prozesse Explorer listet das gesuchte Fenster nicht auf. Die Anwendung um die es geht (Excel) erscheint dort auch nur als einziger Eintrag. Auch denn wenn ich haufenweise Command Buttons auf ein Sheet schiebe und selbst benenne. Momentan experimentiere ich mit diesem VBA Code rum. Er zeigt aber auch nicht die command Buttons an.

    Public Sub ListWindowHandlesAndClassNames()
      Dim hwnd As Long
      Dim lRet As Long
      Dim sClass As String
      hwnd = GetNextWindow(Application.hwnd, GW_HWNDFIRST)
      If hwnd <> 0 Then
        sClass = String(255, 0)
        lRet = GetClassName(hwnd, sClass, Len(sClass))
        sClass = Left(sClass, InStr(1, sClass, Chr(0), vbTextCompare) - 1)
        Debug.Print hwnd, sClass
        Do
          hwnd = GetNextWindow(hwnd, GW_HWNDNEXT)
          If hwnd <> 0 Then
            sClass = String(255, 0)
            lRet = GetClassName(hwnd, sClass, Len(sClass))
            sClass = Left(sClass, InStr(1, sClass, Chr(0), vbTextCompare) - 1)
            Debug.Print hwnd, sClass
          Else
            Exit Do
          End If
        Loop
      End If
    End Sub
    


  • Ich habe ein Programm gefunden: http://tinyurl.com/7yf9j
    Von: http://www.swissdelphicenter.ch/de/forum/index.php?topic=7978.0

    Erledigt.

    Hint: Würden die Regs bei jedem Post auch eine Rechenaufgabe lösen müssen, würde D beim nächsten Pisa Test bestimmt nicht so schlecht abschneiden. 😃



  • Wir Regs rechnen nicht, wir müssen beweisen 😞



  • peter f schrieb:

    Ich habe ein Programm gefunden: http://@notallowed@.com/7yf9j
    Von: http://www.swissdelphicenter.ch/de/forum/index.php?topic=7978.0

    Erledigt.

    Hint: Würden die Regs bei jedem Post auch eine Rechenaufgabe lösen müssen, würde D beim nächsten Pisa Test bestimmt nicht so schlecht abschneiden. 😃

    Was ist das denn für eine Seite die mit @notallowed@.com ersetzt wird 😮



  • T I N Y U R L . C O M ist not allowed



  • Sowas hatte ich auch mal vor ein paar Jahren gebraucht. Neues MFC-Projekt erstellen (Dialog + TreeCtrl) und das einfügen:

    Hab gerade kein Studio installiert zum kompilieren.

    void FindWindows(HWND parent,HTREEITEM itemParent,CTreeCtrl& tree)
    {
    	char buffer[32768];
    	char title[16384];
    
    	HWND last = 0;
    	while(last = FindWindowEx(parent,last,0,0))
    	{
    		GetClassName(last,buffer,sizeof buffer - 1);
    		//GetWindowText(last,title,sizeof title - 1);
    		SendMessage(last,WM_GETTEXT,sizeof title - 1,reinterpret_cast<LPARAM> (title));
    		if(*title)
    		{
    			strcat(buffer," \"");
    			strcat(buffer,title);
    			strcat(buffer,"\"");
    		}
    		short id = GetDlgCtrlID(last);
    		if(id && GetLastError() == 0)
    		{
    			CString temp;
    			temp.Format(" [Id: %d",id);
    			strcat(buffer,temp);
    			if(id < 0)
    			{
    				temp.Format(" (%hu)",id);
    				strcat(buffer,temp);
    			}
    			temp.Format(", %hXh]",id);
    			strcat(buffer,temp);
    			//strcat(buffer,"]");
    		}
    		RECT rect;
    		if(GetWindowRect(last,&rect))
    		{
    			CString temp;
    			temp.Format(" [x: %d,y: %d,cx: %d,cy: %d,hwnd: 0x%x]",rect.left,rect.top,rect.right - rect.left,rect.bottom - rect.top,last);
    			strcat(buffer,temp);
    		}
    
    		FindWindows(last,tree.InsertItem(buffer,itemParent),tree);
    	}
    }
    
    void CWindowListDlg::OnOK() 
    {
    	m_tree.LockWindowUpdate();
    	m_tree.DeleteAllItems();
    	m_tree.UnlockWindowUpdate();
    	FindWindows(0,0,m_tree);
    }
    
    void CWindowListDlg::OnCancel() 
    {
    	// TODO: Zusätzlichen Bereinigungscode hier einfügen
    
    	CDialog::OnCancel();
    }
    


  • a schrieb:

    T I N Y U R L . C O M ist not allowed

    http://tinyurl.com/7yf9j
    -> WinSpy.zip



  • warum wollen einige immer alles tinyurln?



  • bgh schrieb:

    warum wollen einige immer alles tinyurln?

    Damit sie 2 Girls 1 Cup verlinken können, oder alternativ You got rick rolles!


Anmelden zum Antworten