1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Software und Anwendungen
  3. Betriebssysteme

Software zum mitloggen aktiver Fenster

    • Windows
  • DeadOne
  • 13. Dezember 2006 um 02:29
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • DeadOne
    Punkte
    90
    Beiträge
    13
    • 13. Dezember 2006 um 02:29
    • #1

    Hallo,

    mir ist letztens mal aufgefallen dass es mich eigentlich interessieren würde wieviel Zeit ich durchschnittlich mit den verschiedenen Applikationen wie Firefox, Thunderbird, Office, Winamp, Trillian, etc. verbringe. Vor allem die Frage wieviel Zeit effektiv durch lesen und schreiben von E-Mails und Instant Messages draufgeht würde mich echt interessieren...

    Ich denke mir dass es sicher Tools gibt, die irgendwie checken welches Fenster bzw. Programm aktuell verwendet wird und das ganze einfach mitloggen. Wenn's eine graphische Aufbereitung der Daten gibt, noch besser!

    Kennst jemand zufällig so eine Software?

    Danke,
    DeadOne

  • trenki
    Gast
    • 14. Dezember 2006 um 08:30
    • #2

    Nein, allerdings wär das nicht so ein großes Problem zum selber coden.

  • mtintel
    Punkte
    14.759
    Beiträge
    2.654
    • 14. Dezember 2006 um 09:19
    • #3

    Was ich weiß gibt es sowas nur für PC Spiele, heißt XFire und da sieht man, wie lange man welches Spiel gespielt hat. Da wird was ich einfach gemessen, wie lange die Spiele geöffnet sind, aber da Outlook z.b. die ganze Zeit rennt, Firefox oft wenn er beendet wird, auch im Hintergrund (also im RAM eigentlich) noch weiter rennt, denk ich mal, ist es gar nicht sooo einfach ein Programm dazu zu schreiben, denn woher soll er wissen, welches der 5 Fenster das ich geöffnet habe, ich eigentlich im Moment brauche, und welche Programmen im RAM "Leichen" sind damit bei Wiederaufruf das Programm schneller startet, und was wirklich noch gebraucht wird,..

  • Jensi
    Punkte
    8.486
    Beiträge
    1.649
    • 14. Dezember 2006 um 11:04
    • #4
    Zitat von mtintel

    denn woher soll er wissen, welches der 5 Fenster das ich geöffnet habe, ich eigentlich im Moment brauche


    Weil das Fenster, das man grad verwendet, den Fokus hat.

  • Mr.Radar
    Punkte
    3.883
    Beiträge
    738
    • 14. Dezember 2006 um 11:28
    • #5

    außerdem kann man ja die DDE-kommunikation abhören...

  • zwutschkerl
    Punkte
    365
    Beiträge
    71
    • 14. Dezember 2006 um 11:28
    • #6

    Ich hab im Sommer während eines Praktikums sowas geschrieben. Da loggt zwar noch viel mehr, aber das kannst ja heraus nehmen. Braucht aber eine SQL Server Instanz.

  • rul0r
    Punkte
    975
    Beiträge
    182
    • 14. Dezember 2006 um 14:27
    • #7
    Zitat von zwutschkerl

    Ich hab im Sommer während eines Praktikums sowas geschrieben. Da loggt zwar noch viel mehr, aber das kannst ja heraus nehmen. Braucht aber eine SQL Server Instanz.

    haben haben haben ;)

  • DeadOne
    Punkte
    90
    Beiträge
    13
    • 14. Dezember 2006 um 15:50
    • #8
    Zitat von zwutschkerl

    Ich hab im Sommer während eines Praktikums sowas geschrieben. Da loggt zwar noch viel mehr, aber das kannst ja heraus nehmen. Braucht aber eine SQL Server Instanz.


    Würde mich auch sehr interessieren da mal einen Blick draufzuwerfen... :)

  • zwutschkerl
    Punkte
    365
    Beiträge
    71
    • 14. Dezember 2006 um 18:12
    • #9

    Hmm, ich wills nicht einfach so online stellen, weils eigentlich dem Insitut gehört für das ich das gemacht hab. Aber schickt mir ein mail, dann schick ichs euch.

  • trenki
    Gast
    • 15. Dezember 2006 um 02:10
    • #10

    Hab das kurzerhand ausprobiert, ist natürlich nicht optimal aber es stellt die Daten zur Verfügung die benötigt werden.
    Gibt in die Konsole und in eine Datei mit dem Pfad "PATH" folgendes aus:

    Zitat


    Freitag, 15. Dezember 2006:01:35: trenki : 'test.exe'

    Und hier der Code(btw. wiso macht [COD.E][/COD.E] keine Syntaxhervorhebung?:wein: ):

    C
    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <tlhelp32.h>
    
    
    int flag=0;
    FILE *fWrite;
    static char LastWindowText[256]= {0};
    #define PATH "foo.bar"
    int WriteMsg(char msg[]) ;
    int CheckWindowChange(void);
    
    
    int main()
    {
    	fWrite = fopen(PATH, "a+");
    	while(CheckWindowChange()){
    	 //alle 100ms prüfen = niedrige cpu last
    	 //besser wären events abrufen
    	Sleep(100);
    	}
    	fclose(fWrite);
    return 0;
    }
    
    
    int WriteMsg(char msg[]) 
    {	
    	printf("%s\n", msg);
    	int len = strlen(msg), i;
    	char c;
    	for(i=0; i<len;i++)
    	{
    		c = msg[i];
    		fwrite(&c, 1, 1, fWrite);	
    	}
    	return(0);
    }
    
    
    int CheckWindowChange(void)
    {
    	char *buffer = NULL, *date = NULL, *time = NULL, *Title = NULL, *message = NULL;
            DWORD size=50;
    
    
    	HWND hWnd = GetForegroundWindow();
    
    
    	Title  = (char *)malloc(256 * sizeof(char));
    	ZeroMemory(Title, sizeof(*Title));
    	buffer =(char *)malloc(256 * sizeof(char));
    	ZeroMemory(buffer, sizeof(*buffer));
            time   = (char *)malloc(256 * sizeof(char));
    	ZeroMemory(time, sizeof(*time));
            date   =(char *)malloc(256 * sizeof(char));
    	ZeroMemory(date, sizeof(*date));
    	message = (char *)malloc(256 * sizeof(char));
    	ZeroMemory(message, sizeof(*message));
    
    
    	// ProzessID holen
    	DWORD dwPID;
        GetWindowThreadProcessId( hWnd,&dwPID );
    	HANDLE hModuleSnap = INVALID_HANDLE_VALUE;
    	MODULEENTRY32 me32;
    
    
    	  // Abbild der Module dieses Prozesses erstellen(exe,dlls etc...)
    	hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID );
    	if( hModuleSnap == INVALID_HANDLE_VALUE )
        {
         return( false );
        }
    
    
       me32.dwSize = sizeof( MODULEENTRY32 );
     
        // Erstes modul auslesen
       if( !Module32First( hModuleSnap, &me32 ) )
        {
         CloseHandle( hModuleSnap );     
         return( false );
        }
    
    	//Wir benötigen nur den Namen des ersten Modules = exe
    	strcpy(Title,me32.szModule);
    
    	GetUserNameA(buffer, &size);
        GetTimeFormat(LOCALE_SYSTEM_DEFAULT, TIME_NOSECONDS, NULL, "HH':'mm tt", time, 50);
        GetDateFormat(LOCALE_SYSTEM_DEFAULT, DATE_LONGDATE, NULL, NULL, date, 50);
    
    	if(strcmp(Title, LastWindowText)) 
    	{
    		strcpy(LastWindowText,Title); 
    		wsprintf(message,"\n%s:%s: %s : '%s'\n", date, time, buffer, Title);
    		WriteMsg(message);		
    	}
    	// Fertig
    	CloseHandle( hModuleSnap );
    	free(message);
    	free(Title);
    	free(buffer);
    	free(time);
    	free(date);
        return(true);
    }
    Alles anzeigen
  • Maximilian Rupp 27. Dezember 2024 um 00:11

    Hat das Thema aus dem Forum Betriebssysteme nach Betriebssysteme verschoben.

  1. Datenschutzerklärung
  2. Impressum