OnExit,Exit Process ,Priority,,High IniRead, Custom1, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 1, Out to Lunch IniRead, Custom2, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 2, In a meeting IniRead, Custom3, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 3, On a Break IniRead, Custom4, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 4, Site Visit IniRead, Custom5, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 5, Undefined IniRead, Custom6, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 6, Undefined IniRead, idletime, %A_Scriptdir%\TitleLog Prefs.ini, idletime, 1, 15 idletimesecs:=(idletime * 60000) FileCreateDir, %A_Scriptdir%\TitleLog FileAppend, %A_YYYY%%A_MM%%A_DD%|%A_Hour%%A_Min%|Loading %A_Scriptname% Preferences , %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%.txt Menu, tray, add, About..., ABOUT Menu, tray, add, Preferences...,Prefs Menu, tray, add, Menu, tray, add, Add Comment to Log...,Comment Menu, tray, add, Menu, tray, add, Show Todays Log..., TLog Menu, tray, add, Open Log Folder..., Lfolder Menu, Tray, add, If (Custom1<>"Undefined" and Custom1<>"") Menu, tray, add, %Custom1%, M1 If (Custom2<>"Undefined" and Custom2<>"") Menu, tray, add, %Custom2%, M2 If (Custom3<>"Undefined" and Custom3<>"") Menu, tray, add, %Custom3%, M3 If (Custom4<>"Undefined" and Custom4<>"") Menu, tray, add, %Custom4%, M4 If (Custom5<>"Undefined" and Custom5<>"") Menu, tray, add, %Custom5%, M5 If (Custom6<>"Undefined" and Custom6<>"") Menu, tray, add, %Custom6%, M6 Menu, tray, add, Menu, tray, add, Exit, exit Menu, tray, tip, %A_Scriptname% `nA Personal Logfile Menu, tray, NoStandard Goto , timer savecomment: Gui, 7:Submit Gui, 7:Destroy FileAppend, |%current%|%result%`n%A_YYYY%%A_MM%%A_DD%|%A_Hour%%A_Min%|%cmnts%, %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%.txt Goto,timer IdleText: Gui, 6:Submit Gui, 6:Destroy current=%A_Now% EnvSub,current,%previous%,Seconds result:= FormatSeconds(current) FileAppend, |%current%|%result%`n%A_YYYY%%A_MM%%A_DD%|%A_Hour%%A_Min%|%SDedit%, %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%.txt previous=%A_Now% timerflag:=0 timer: SetTimer, logchanges, 1000 Logchanges: WinGetActiveTitle, WindowTitlePre WinGet, WindowProcessName, ProcessName, %WindowTitlePre% If WindowTitlePre<>%WindowTitlePost% ;if different from last check { WindowTitlePost=%WindowTitlePre% current=%A_Now% EnvSub,current,%previous%,Seconds result:= FormatSeconds(current) StringReplace, WindowTitlePost, WindowTitlePre, |, -, All FileAppend, |%current%|%result%`n%A_YYYY%%A_MM%%A_DD%|%A_Hour%%A_Min%|%WindowProcessName%|%WindowTitlePost%, %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%.txt previous=%A_Now% } If timerflag=1 { Return } IfGreater, A_TimeIdle, %idletimesecs% { Gosub,IdleLog } WindowTitlePost=%WindowTitlePre% Return M1: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,s14 Gui, add, text,w300 h30 Center,%Custom1% Gui, add, Button,ym w60 Default gmclose,Close Gui, show,,%Custom1% Return M2: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,s14 Gui, add, text,w300 h30 Center,%Custom2% Gui, add, Button,ym w60 Default gmclose,Close Gui, show,,%Custom2% Return M3: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,s14 Gui, add, text,w300 h30 Center,%Custom3% Gui, add, Button,ym w60 Default gmclose,Close Gui, show,,%Custom3% Return M4: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,s14 Gui, add, text,w300 h30 Center,%Custom4% Gui, add, Button,ym w60 Default gmclose,Close Gui, show,,%Custom4% Return M5: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,s14 Gui, add, text,w300 h30 Center,%Custom5% Gui, add, Button,ym w60 Default gmclose,Close Gui, show,,%Custom5% Return M6: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,s14 Gui, add, text,w300 h30 Center,%Custom6% Gui, add, Button,ym w60 Default gmclose,Close Gui, show,,%Custom6% Return Comment: Gui, 7:add, Text,,Add Comments Gui, 7:add, edit, w600 vcmnts, Gui, 7:add, Button, w100 gsavecomment Default, &Save comments Gui, 7:show,,Add a Comment Return IdleLog: timerflag:=1 Gui,6:-SysMenu +AlwaysOnTop Gui,6:add, text,,Enter a brief desription of what you have been doing whilst desktop has been idle for %idletime% Gui,6:add,edit,w600 vSDedit, Gui,6:add,Button,w150 gIdleText Default, &Save and Dismiss Gui,6:show,,The Desktop has been idle and has timed out after %idletime% Minutes Return Prefs: Gui, Destroy Gui, +AlwaysOnTop Gui, Font,Bold Gui, Add, GroupBox,w300 h250,Preferences Gui, font Gui, add, text, xp+10 yp+30 Section,Time before logging as idle(mins) Gui, add, edit ,x+30 w40 vIdletime, Gui, add, UpDown, Range 1-60,%idletime% Gui, add, text,xs,Window1 Gui, Add, Edit,x+10 w200 vCustom1,%Custom1% Gui, add, text,xs ,Window2 Gui, Add, Edit,x+10 w200 vCustom2,%Custom2% Gui, add, text,xs,Window3 Gui, Add, Edit,x+10 w200 vCustom3,%Custom3% Gui, add, text,xs ,Window4 Gui, Add, Edit,x+10 w200 vCustom4,%Custom4% Gui, add, text,xs,Window5 Gui, Add, Edit,x+10 w200 vCustom5,%Custom5% Gui, add, text,xs ,Window6 Gui, Add, Edit,x+10 w200 vCustom6,%Custom6% Gui, Font,Bold Gui, add, Button, xs+180 w80 Default gSave,&Save Gui,Show,,%A_Scriptname% Preferences Return Save: Gui,Submit IniWrite, %Custom1%, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 1 IniWrite, %Custom2%, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 2 IniWrite, %Custom3%, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 3 IniWrite, %Custom4%, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 4 IniWrite, %Custom5%, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 5 IniWrite, %Custom6%, %A_Scriptdir%\TitleLog Prefs.ini, Custom, 6 IniWrite, %Idletime%, %A_Scriptdir%\TitleLog Prefs.ini, Idletime, 1 Reload Gui,Destroy Return TLog: view=%A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%.txt Gosub, ShowList Return Lfolder: FileSelectFile, view, , %A_Scriptdir%\Titlelog,, *.txt If view= { Return } Gosub,ShowList Return RefreshShowlist: Gui,Destroy ShowList: Gui, add, GroupBox,w680 h90, Filters Gui, add, text, x20 y25,Show only Titles greater then 'X' Seconds : Gui, add, edit, x250 y25 w100 vValueSeconds gSearchlist, Gui, add, UpDown, Range1-1000, Gui, add, Button, x450 y25 w200 gRefreshShowlist,&Refesh and Reset List Gui, add, Button, x450 y65 w200 gSavecurrentlist,&Save current list Gui, add, text,x20 y45 ,Show only Titles including the following text : Gui, add, edit,x250 y45 w100 vValueinclude gSearchlist , Gui, add, text,x20 y65,Exclude Titles with the following text : Gui, add, edit,x250 y65 w100 vValueexclude gSearchlist, Gui , add, text ,xs , Sort All columns by Clicking on the header bar Gui , add, ListView,xm r30 w680,Time|Elapsed|Program|Window Title Gui , add, Button, x250 w100 gmOpenNote,&Open in Notepad Gui , add, Button, x+20 w100 gmclose, &Close gui, add, statusbar,, Gosub,Searchlist Return Searchlist: Gui, Submit LV_Delete() ;Destroys the list in the ListView5 Filteredlist= Loop, Read, %view% { LineNumber = %A_Index% Loop, Parse, A_LoopReadLine, | { A%A_Index%=%A_Loopfield% } IfGreater A5,%valueSeconds% { IfInString, A4, %Valueinclude% { If Valueexclude= { LV_Add("",A2,A6,A3,A4) filteredlist=%filteredlist%`n%A_loopreadline% } IfNotInString, A4, %Valueexclude% { LV_Add("",A2,A6,A3,A4) filteredlist=%filteredlist%`n%A_loopreadline% } } } } LV_ModifyCol() LV_ModifyCol(1,50) LV_ModifyCol(2,70) LV_ModifyCol(3,120) ; LV_ModifyCol(4,469) CountLines:=LV_GetCount() Gui , Show, ,Log view - the file date is %A1% SB_SetText("There are " . CountLines . " records. ") Return Savecurrentlist: msgbox,1,, Save the file as %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%-%ValueSeconds%-%Valueinclude%-%Valueexclude%.txt IfMsgBox OK { Filedelete,%A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%-%ValueSeconds%-%Valueinclude%-%Valueexclude%.txt FileAppend, %filteredList%, %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%-%ValueSeconds%-%Valueinclude%-%Valueexclude%.txt } return mOpenNote: Run, C:\Windows\notepad.exe "%view%" Return FormatSeconds(NumberOfSeconds) { time = 19990101 time += %NumberOfSeconds%, Seconds FormatTime, mmss, %time%, mm:ss Return NumberOfSeconds//3600 ":" mmss } ABOUT: Gui,9:Font,Bold Gui,9:Add,Text,x+10 yp+10,%A_Scriptname% Gui,9:Font Gui,9:Add,Text,xm+10,'%A_Scriptname%' simply logs the title of the active window. Gui,9:Add,Text,xm+10,A folder called TitleLog is created as a subdirectory of the script. Gui,9:Add,Text,xm+10,Each day a file is created with a datestamp. Gui,9:Add,Text,xm+10,Each active window is logged to the text file in CSV format. Gui,9:Add,Text,xm+10,Right Click on the taskbar Icon to set preferences Gui,9:Add,Text,xm+10,Right Click on the taskbar Icon to activate 6 custom windows, Gui,9:Add,Text,xm+10,ie, Out to Lunch, In a Meeting, Gui,9:Add,Text,xm+10,Set the Idle log time in preferences Gui,9:Add,Text,y+0,`t Gui,9:Font,Bold Gui,9:Add,Text,xm+10 yp+10,DonationCoder Gui,9:Font Gui,9:Add,Text,xm+10,Please support the DonationCoder community Gui,9:Font,CBlue underline Gui,9:Add,Text,xm+10 GDONATIONCODER,www.DonationCoder.com Gui,9:Font Gui,9:Add,Text,y+0,`t Gui,9:Font,Bold Gui,9:Add,Text,xm+10 yp+10,AutoHotkey Gui,9:Font Gui,9:Add,Text,xm+10,This program was made using AutoHotkey Gui,9:Font,CBlue underline Gui,9:Add,Text,xm+10 GAUTOHOTKEY,www.AUTOHOTKEY.com Gui,9:Font Gui,9:Add,Text,y+0,`t Gui,9:Font,Bold Gui,9:Add,Text,xm+10 yp+10,made by DoubleBogey Gui,9:Font Gui,9:Add,Text,xm+10,Find more mini-apps like this| visit Gui,9:Font,CBlue underline Gui,9:Add,Text,xm+10 GDONATIONCODER,www.DonationCoder.com Gui,9:Font Gui,9:Add,Text,y+0,`t Gui,9:Add,Button,GABOUTOK Default w75,&OK Gui,9:Show,,About %A_Scriptname% Return ABOUTOK: Gui, 9:Destroy Return DONATIONCODER: Run,http://www.donationcoder.com,,UseErrorLevel Return AUTOHOTKEY: Run,http://www.autoHotkey.com,,UseErrorLevel Return mclose: guiescape: guiclose: Gui, Destroy SetTimer, logchanges, 1000 Return exit: current=%A_Now% EnvSub,current,%previous%,Seconds result:= FormatSeconds(current) FileAppend, |%current%|%result%`n%A_YYYY%%A_MM%%A_DD%|%A_Hour%%A_Min%|TitleLog.exe Exited by User`n, %A_Scriptdir%\TitleLog\%A_YYYY%%A_MM%%A_DD%.txt ExitApp