Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Anda memulakan kerja anda setiap hari lebih awal supaya anda boleh menyelesaikan segala-galanya pada siang hari. Kemudian anda menyemak jam dan sudah pukul 3 pagi tetapi kerja anda masih belum selesai. Jadi ke mana perginya masa?

Anda boleh menggunakan apl penjejakan masa khusus, tetapi ini boleh menjadi rumit dan mengecewakan. Sebaliknya, mengapa tidak mencipta aplikasi kecil mudah anda sendiri? Aplikasi ini boleh menjejaki semua tetingkap yang telah anda gunakan pada siang hari. Anda hanya memerlukan AutoHotKey, pemproses perkataan asas seperti Notepad, dan kira-kira setengah jam. Mari kita mulakan!

Cipta skrip pengelogan tingkap anda sendiri dengan AutoHotKey

Sebelum memulakan, anda harus memasang AHK pada komputer anda kerana ia akan bertindak sebagai "penghurai" untuk skrip. Ia adalah alat yang membolehkan skrip anda "berjalan".

Nota : Anda juga boleh menyusun skrip selepas selesai untuk mengubahnya menjadi program boleh laku sebenar. Walau bagaimanapun, itu adalah di luar skop artikel ini.

Muat turun AutoHotKey dari tapak web rasmi dan pasangkannya.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Pilih Baharu > Skrip AutoHotKey

Nyalakan pengurus fail kegemaran anda dan akses folder tempat anda ingin menyimpan skrip. Kemudian, klik kanan pada lokasi kosong dan pilih Baharu > Skrip AutoHotKey .

Setelah selesai, tiba masanya untuk menulis skrip sebenar.

1. Kenal pasti pembolehubah yang diperlukan

Buka skrip dalam editor kegemaran anda. Anda boleh menggunakan sesuatu yang mudah seperti Notepad yang disertakan dengan Windows, tetapi artikel itu akan menggunakan Notepad++  untuk tutorial ini. Notepad++ adalah percuma dan lebih sesuai untuk tujuan ini, jadi anda harus mencubanya.

Ambil perhatian bahawa anda tidak boleh menggunakan sebarang aplikasi seperti Word atau Google Docs, yang boleh menjejaskan pemformatan skrip. Gunakan editor teks atau kod.

Skrip akan mengandungi beberapa maklumat asas yang disyorkan tentang keserasian dan prestasi. Biarkan mereka seadanya dan mulakan skrip di bawah.

Bermula dengan:

AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Mulakan dengan memberikan nilai "10" kepada AppLoggingRate , yang akan digunakan untuk mengira masa antara percubaan pengelogan tetingkap.

Apabila digunakan dengan fungsi Tidur AHK, 1000 adalah lebih kurang sama dengan satu saat. Jadi dengan mendarabkannya dengan AppLogingRate anda akan menjadikan pembolehubah SleepTime "sama dengan 10 saat".

LogPath ialah laluan yang digunakan untuk menyimpan log. Contohnya menggunakan nilai %A_ScriptDir% , yang diterjemahkan kepada "direktori dari mana anda menjalankan skrip". Anda boleh menggunakan laluan penuh ke folder lain jika anda mahu.

Akhir sekali, tetapkan LastActiveWindow untuk mengosongkan dan gunakan kemudian untuk menyemak sama ada tetingkap aktif telah berubah.

2. Pantau tetingkap aktif

Memandangkan kami ingin memantau secara berterusan tetingkap mana yang aktif dan jika ia berubah, rekod tajuk dan masa, kami perlu menggunakan "gelung".

Seperti namanya, gelung berjalan secara berterusan, mengulangi fungsi yang sama. Terima kasih kepada sintaks ringkas AHK, "kod" berikut agak mudah difahami:

Loop
{
    Sleep %SleepTime%
    Msgbox, It Works!
}

Tentukan gelung dengan hanya menaip perkataan "gelung" dan kemudian menandakan permulaannya dengan "{" dan berakhir dengan "}". Segala-galanya dalam baris antara "{" dan "}" akan berjalan selama-lamanya sehingga anda keluar dari skrip.

Mulakan gelung dengan menunggu ( Tidur ) untuk jumlah masa yang sama dengan pembolehubah SleepTime. Pembolehubah ini menjadikan kawalan masa lebih mudah. Daripada mengedit skrip sendiri, anda boleh "memberitahu"nya, melalui pembolehubah ini, berapa saat setiap gelung harus bertahan.

Akhir sekali, gunakan Kotak Mesej untuk menguji skrip. Cuba simpan dan jalankan (klik dua kali pada fail skrip). Anda akan melihat kotak mesej yang mengatakan "Ia Berfungsi!" (skrip berfungsi) selepas 10 saat.

Klik kanan ikon AHK dalam dulang Windows dan keluar dari skrip apabila anda mempunyai kotak mesej yang mencukupi. Kemudian kembali ke editor dan gantikan baris MsgBox dengan:

WinGetActiveTitle, ActiveWindow

Ini adalah arahan untuk mendapatkan tajuk tetingkap aktif. Tinggalkan baris "StoreActiveWindow" tambahan yang contoh digunakan semasa membuat skrip untuk ujian.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Dapatkan tajuk tetingkap aktif dan simpan dalam pembolehubah

3. Dapatkan masa dan nama semasa

Kini datang teras logik skrip. Bandingkan nama tetingkap aktif dengan yang sebelumnya, dan jika mereka berbeza, "buat sesuatu". Semuanya semudah ini:

If ActiveWindow != %LastActiveWindow%
{
}

Memandangkan perkara di atas, semak sama ada ActiveWindow semasa adalah berbeza ( != ) daripada nilai yang disimpan dalam pembolehubah LastActiveWindow (yang pada mulanya ditetapkan kepada kosong). Jika ya, AHK akan melaksanakan kod antara { dan } , yang pada masa ini kosong.

Tetapkan fungsi untuk membandingkan tajuk tetingkap aktif dan tetingkap sebelumnya

Ia adalah perlu untuk mengesan kedua-dua tarikh dan masa untuk mengukur masa hidup tetingkap. Log yang berbeza untuk setiap hari, menggunakan tarikh dalam nama mereka akan dikekalkan. Bukan sahaja setiap perubahan tetapi masa ia berlaku juga akan direkodkan. Untuk berbuat demikian, tetapkan format masa yang berbeza kepada pembolehubah LogTime dan LogFilename , dengan:

FormatTime, LogTime,, HH:mm:ss
FormatTime, LogFilename,, yyyy-MMM-dd

Tambahkan garisan tersebut antara pendakap kerinting dalam "If ActiveWindow..." , supaya AHK menjalankannya apabila ia mengesan perubahan tetingkap.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Dapatkan masa semasa dan tetapkan dalam dua pembolehubah format yang berbeza

4. Format data

Kami kini menangkap masa dalam dua pembolehubah berformat berbeza, serta tajuk tetingkap aktif. Walau bagaimanapun, terdapat masalah kecil: Tajuk tetingkap juga boleh mengandungi aksara yang tidak diingini. Anda boleh mengalih keluar semua aksara bukan abjad angka menggunakan sokongan AHK untuk RegEx, dengan:

LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")

Dengan mengambil kira perkara ini, mari kita "minta" AHK untuk mengalih keluar semua aksara daripada pembolehubah ActiveWindow yang tidak sepadan dengan apa yang ada dalam kurungan:

  • Huruf kecil
  • Huruf besar
  • Nombor

Kemudian, tetapkan hasilnya kepada pembolehubah LogWindow.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Bersihkan tajuk tetingkap aktif dengan RegEx

Dengan semua pembolehubah ditetapkan dan semua data berharga dikumpul, anda kini bersedia untuk memformat fail log dan kandungannya.

LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%

Sebelum ini, kami menetapkan tarikh semasa kepada pembolehubah LogFilename. Oleh itu, untuk baris pertama, tambah "_AppLog.md" pada tarikh untuk menggunakannya sebagai nama fail.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Tetapkan nama fail log

Dalam baris kedua, gabungkan pembolehubah LogPath , yang ditakrifkan pada mulanya sebagai destinasi untuk fail log bersama-sama dengan nama fail. Gabungan mereka ialah nama laluan penuh fail log, yang diberikan kepada LogFile pembolehubah.

Mari kita tetapkan nilai setara "baris kosong, Masa - Nama Tetingkap, dua lagi baris kosong, pembahagi dan satu lagi baris kosong, untuk ukuran yang baik" kepada pembolehubah FileContent.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • Huruf "n" memberitahu AHK untuk memasukkan baris baharu (bersamaan dengan menekan Enter sekali).
  • Tiga sengkang akan muncul sebagai pemisah apabila dipaparkan dalam pemapar serasi silang ke bawah.
  • "% LogTime%" dan "% LogWindow%" ialah pembolehubah yang menyimpan nama tetingkap aktif dan masa ia dikesan.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Menentukan kandungan fail log

5. Kemas kini fail

Anda telah menentukan perkara yang ingin kami tulis pada fail tersebut, serta laluan dan nama failnya. Yang tinggal hanyalah teks sebenar yang ringkas seperti berikut:

FileAppend, %FileContent%, %LogFile%

Tambahkan semua dalam pembolehubah "FileContent" pada fail "LogFile".

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Gunakan fungsi Append AHK untuk mengemas kini fail log atau menciptanya dari awal

Fungsi "tambah" akan menambah "Kandungan Fail" pada fail jika ia wujud, tetapi juga akan menciptanya dari awal jika fail itu tidak wujud.

Terdapat satu tweak terakhir: gantikan kandungan pembolehubah LastActiveWindow dengan tetingkap yang sedang aktif.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Memasukkan tajuk tetingkap aktif semasa ke dalam pembolehubah LastActiveWindow untuk ujian masa hadapan

Untuk melakukan ini, skrip harus dapat mengesan perubahan tetingkap seterusnya.

LastActiveWindow = %ActiveWindow%

Dan dengan penambahan terakhir itu, windows logger sudah sedia! Simpan skrip dan jalankannya. Kemudian, semak fail markdown, fail ini akan muncul dalam folder fail skrip selepas 10 saat.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Fail log windows dicipta dalam direktori yang sama dengan skrip

Kawal masa anda sendiri

Anda boleh membuka fail log dengan mana-mana editor teks. Walau bagaimanapun, ia akan kelihatan lebih baik jika anda membukanya dalam editor yang serasi penurunan harga. Dalam tangkapan skrin anda boleh melihat log dalam editor Typora yang popular.

Cara membuat aplikasi penjejakan masa pada Windows dengan AutoHotKey

Fail penurunan harga yang dijana oleh skrip dimuatkan dalam Typora

Ini cara mudah untuk menyemak apl yang paling kerap anda gunakan dan hanya memerlukan alat seperti Notepad untuk digunakan.

Jika anda mahukan sesuatu yang "lebih istimewa", anda sentiasa boleh "menggayakan" output logger untuk mencipta fail CSV. Ia semudah melaraskan pembolehubah FileContent dan lanjutan fail yang dibuat. Anda kemudian boleh mengimport fail tersebut ke dalam aplikasi seperti Excel, Google Calc, atau bahkan penjejak masa pihak ketiga.

Skrip lengkap

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
; Variables
; ---------
AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow = 
; Logic
; -----
Loop
{
	Sleep %SleepTime%
	
	WinGetActiveTitle, ActiveWindow
	StoreActiveWindow = %ActiveWindow%
	
	If ActiveWindow != %LastActiveWindow%
	{
		FormatTime, LogTime,, HH:mm:ss
		FormatTime, LogFilename, , yyyy-MM-dd
		
		LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
		
		LogFilename = %LogFilename%_AppLog.md
		LogFile = %LogPath%\%LogFilename%
		
		FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
		
		sleep 50
		
		FileAppend, %FileContent%, %LogFile%
		LastActiveWindow = %ActiveWindow%
	}
}
Exit

Tinggalkan Komen

Bagaimana untuk mengalih keluar notis permintaan hak cipta di sudut kanan skrin pada Windows 10

Bagaimana untuk mengalih keluar notis permintaan hak cipta di sudut kanan skrin pada Windows 10

Adakah anda melihat pemberitahuan pengaktifan Windows 10 di sudut kanan skrin? Artikel ini akan membimbing anda cara memadamkan notis permintaan hak cipta pada Windows 10.

Arahan daripada AZ tentang cara memasang Windows 10 build 14393.222

Arahan daripada AZ tentang cara memasang Windows 10 build 14393.222

Baru-baru ini Microsoft mengeluarkan kemas kini kumulatif terkini untuk pengguna PC Windows 10 yang dipanggil Build 14393.222. Kemas kini yang dikeluarkan untuk Windows 10 ini terutamanya membetulkan pepijat berdasarkan maklum balas pengguna dan meningkatkan pengalaman prestasi sistem pengendalian.

Lindungi rangkaian komputer anda dengan hos Bastion hanya dalam 3 langkah

Lindungi rangkaian komputer anda dengan hos Bastion hanya dalam 3 langkah

Adakah anda mempunyai komputer pada rangkaian tempatan anda yang memerlukan akses luaran? Menggunakan hos benteng sebagai penjaga pintu untuk rangkaian anda boleh menjadi penyelesaian yang baik.

3 cara untuk mengosongkan semua log peristiwa dalam Windows 10 dengan cepat

3 cara untuk mengosongkan semua log peristiwa dalam Windows 10 dengan cepat

Kadangkala anda mungkin perlu memadamkan log peristiwa lama sekaligus. Dalam panduan ini, Quantrimang.com akan menunjukkan kepada anda 3 cara untuk memadam semua log peristiwa dalam Windows 10 Event Viewer dengan cepat.

Cara membuat kunci Windows jika papan kekunci anda tidak tersedia

Cara membuat kunci Windows jika papan kekunci anda tidak tersedia

Jika anda lebih suka menggunakan papan kekunci klasik lama, seperti IBM Model M, yang tidak termasuk kekunci Windows fizikal, terdapat kaedah mudah untuk menambah lagi, dengan meminjam kunci yang anda jarang gunakan. .

Cara membuat mod latar belakang telus pada Windows 10

Cara membuat mod latar belakang telus pada Windows 10

WindowTop ialah alat yang mempunyai keupayaan untuk meredupkan semua tetingkap aplikasi dan program yang dijalankan pada komputer Windows 10. Atau anda boleh menggunakan antara muka latar belakang gelap pada tingkap.

Kaedah IP palsu membantu anda mengakses tanpa nama

Kaedah IP palsu membantu anda mengakses tanpa nama

Dalam banyak artikel sebelumnya, kami telah menyebut bahawa kekal tanpa nama dalam talian adalah sangat penting. Maklumat peribadi dibocorkan setiap tahun, menjadikan keselamatan dalam talian semakin diperlukan. Itulah juga sebab kita harus menggunakan alamat IP maya. Di bawah, kita akan belajar tentang kaedah untuk mencipta IP palsu!

Bagaimana untuk mematikan bar Bahasa pada Bar Tugas Windows 8

Bagaimana untuk mematikan bar Bahasa pada Bar Tugas Windows 8

Bar Bahasa pada Windows 8 ialah bar alat bahasa kecil yang direka untuk dipaparkan secara automatik pada skrin Desktop. Walau bagaimanapun, ramai orang ingin menyembunyikan bar bahasa ini pada Bar Tugas.

Petua untuk mengoptimumkan kelajuan sambungan Internet daripada Linksys

Petua untuk mengoptimumkan kelajuan sambungan Internet daripada Linksys

Memaksimumkan kelajuan Internet adalah penting untuk mengoptimumkan sambungan rangkaian anda. Anda boleh menikmati hiburan dan pengalaman kerja yang optimum menggunakan komputer, TV sedia Internet, konsol permainan, dsb.

Bagaimana untuk menyediakan WEP, WPA, WPA2 untuk penghala Linksys

Bagaimana untuk menyediakan WEP, WPA, WPA2 untuk penghala Linksys

Kesambungan wayarles adalah satu keperluan hari ini dan kerana itu, keselamatan wayarles adalah penting untuk memastikan keselamatan dalam rangkaian dalaman anda.