Taskmanager Anwendungsnamen auslesen?



  • Hallo!
    Ich hab mir ne Funktion gebastelt die mir per Mausposition das HWND zum SysListView32 des Taskmans gibt..jetzt will ich für das 5. Element zum Beispiel den Namen herausfinden...mein Code dazu:

    void CTaskmanhackDlg::ReadClasses(int i)
    {
    	i++;
    	CString str;
    	POINT p;
    	GetCursorPos(&p);
    	CWnd* wnd = WindowFromPoint(p);
    	GetClassName(wnd->GetSafeHwnd(), str.GetBuffer(MAX_PATH), MAX_PATH);
    	m_names.InsertString(m_names.GetCount(), str);
    	if(i != 15)
    	{
    	if(str == "SysListView32")
    	{
    		LVITEM test;
    		ZeroMemory(&test, sizeof(LVITEM));
    		char *muh = new char[256];
    		test.mask = LVIF_TEXT;
    		test.pszText = muh;
    		test.iItem = 5;
    		test.iSubItem = 1;
    		test.cchTextMax = 30;
    		test.stateMask = 0;
    		int i = 0;
    		i = wnd->SendMessage(LVM_GETITEMCOUNT, 0, 0);
    		wnd->SendMessage(LVM_GETITEMTEXT, 1, (LPARAM) &test);
    		str.Format("%i", i);
    		MessageBox(muh);
    		i = 15;
    
    	}
    	Sleep(1000);
    	ReadClasses(i);
    	}
    }
    

    Ergebnis: Taskmanager stirbt und String ist leer 😞

    2. Frage:
    Angenommen ich lösche alle Items aus der ListView raus..der Taskmanager aktualisiert ja jede Sekunde seine Items..kann ich das irgendwie verhindern? LockWindowUpdate reicht nicht 😕

    Danke

    Kevin



  • Lass den Mist einfach!

    Okay?





  • @hmm: Danke...deine Hilfe ist mir doch immer wieder Willkommen..kennste das schon mit keiner Ahnung und dem FRESSE HALTEN?

    @miller_m: Ja muss der Taskmanager sein..ist ne kleine Spielerei die ich schon immer mal machen wollte 🙂

    Kevin



  • Der gute alte Kevin. 🙂
    Du Dödel frag mich doch direkt im ICQ, ich bin immer online und für WinAPI Fragen bin ich doch imemr zu ham!!
    Eventuell SubClassen und die Nachricht abfragen die kommt, wenn ein Item eingefügt wird. Diese returnen und voila.



  • ChrisK schrieb:

    Der gute alte Kevin. 🙂
    Du Dödel frag mich doch direkt im ICQ, ich bin immer online und für WinAPI Fragen bin ich doch imemr zu ham!!
    Eventuell SubClassen und die Nachricht abfragen die kommt, wenn ein Item eingefügt wird. Diese returnen und voila.

    hört sich sehr vernüntig an. bin dafür 👍



  • mh ne habs jetz...der Zeiger auf den String wurde ungültig...musste Speicher im Taskmgr reservieren...:

    LVITEM lvi, *_lvi;
    	char item[512], subitem[512];
    	char *_item, *_subitem;
    	unsigned long pid;
    	HANDLE process;
    
    	GetWindowThreadProcessId(listview->GetSafeHwnd(), &pid);
    	process=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ|
                         PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION, FALSE, pid);
    
    	_lvi=(LVITEM*)VirtualAllocEx(process, NULL, sizeof(LVITEM),
    								  MEM_COMMIT, PAGE_READWRITE);
    	_item=(char*)VirtualAllocEx(process, NULL, 512, MEM_COMMIT,
    								 PAGE_READWRITE);
    	_subitem=(char*)VirtualAllocEx(process, NULL, 512, MEM_COMMIT,
    									PAGE_READWRITE);
    
    	ZeroMemory(&lvi, sizeof(LVITEM));
    	lvi.iSubItem=0;
    	lvi.pszText=_item;
    	lvi.cchTextMax = 500;
    	lvi.mask = LVIF_TEXT;
    	WriteProcessMemory(process, _lvi, &lvi, sizeof(LVITEM), NULL);
    	listview->SendMessage(LVM_GETITEMTEXT, (WPARAM)0, (LPARAM)_lvi);
    
    	ReadProcessMemory(process, _item, item, 512, NULL);	
    
    	VirtualFreeEx(process, _lvi, 0, MEM_RELEASE);
             VirtualFreeEx(process, _item, 0, MEM_RELEASE);
             VirtualFreeEx(process, _subitem, 0, MEM_RELEASE);
    

    Kev0rn



  • Sinn?
    Virus.



  • quark



  • Sonst seh ich da keinen Sinn 😉



  • Kontrolltool für Rechner im eigenen Haus von Rangniederen? 😛
    Ist es möglich dem Taskmanager zu sagen, dass er die Liste nicht mehr updaten darf? Flimmert sonst ein bisschen

    Kevin



  • Mensch jetzt versteck doch einfach die ListView und gut is.



  • Ausm Taskmanager die ListView zu verstecken ist ja auch gar nicht auffällig......es soll alles in Ordnung aussehen :>

    zu SubClassing sag ich nur:

    ERROR_ACCESS_DENIED

    Kevin

    /edit:
    DLL injecten - die ausführen und dann SubClassen sollte gehn oder?



  • da hat wohl jemand mitgedacht 😃



  • War meine Befürchtung. Ohne gescheiten Hook ist nichts zu machen, oder zu setzt die SysListView endlich mal auf SW_HIDE grrr


Anmelden zum Antworten