Anda memulai setiap hari dengan niat terbaik, diremajakan, siap untuk menangani semua tugas Anda. Kemudian, Anda memeriksa waktu, itu 03:00, dan Anda tidak bisa tidak bertanya-tanya, ke mana perginya waktu?
Anda dapat menggunakan aplikasi pelacakan waktu khusus, tetapi itu bisa sangat rumit. Plus, di mana kesenangannya?
Mengapa tidak membuat aplikasi mini sederhana Anda sendiri, yang dapat melacak semua jendela yang Anda habiskan sepanjang hari? Anda hanya memerlukan AutoHotKey, pengolah kata dasar seperti Notepad, dan sekitar setengah jam. Mari kita terjebak.
Apa itu AutoHotKey?
Tujuan utama AutoHotKey adalah otomatisasi desktop. Ini adalah bahasa skrip yang dengannya Anda dapat mengirim penekanan tombol dan gerakan mouse ke jendela aktif mana pun, membuat tombol pintas, atau memodifikasi penekanan tombol. Anda dapat, misalnya, menggunakannya untuk nonaktifkan tombol tertentu pada keyboard Anda.
Namun, itu adalah versi singkat dari cerita dan tidak benar-benar mewakili apa yang dapat dilakukan AutoHotKey (disingkat AHK). Itu karena telah berkembang sejak konsepsi awal dan sekarang adalah bahasa scripting yang lengkap. Anda dapat memikirkan apa yang dapat Anda lakukan dengannya sebagai "pemrograman Lite."
Dengan demikian, Anda juga dapat menggunakan AHK untuk membuat aplikasi mini, persis seperti yang kami tetapkan sebagai tujuan artikel ini. Perhatikan bahwa dalam artikel ini kita akan langsung membahas AHK, jadi, Anda mungkin ingin memeriksanya Panduan AutoHotKey cepat kami untuk Pemula sebelum Anda memulai.
Membuat Skrip Logging Jendela Anda Sendiri Dengan AutoHotKey
Sebelum kita mulai, Anda harus menginstal AHK di komputer Anda karena ini akan bertindak sebagai "parser" untuk skrip Anda. Ini adalah "mesin" yang akan memungkinkan skrip Anda "berjalan".
Catatan: Anda juga dapat mengkompilasi skrip Anda setelah selesai untuk mengubahnya menjadi program yang dapat dieksekusi yang sebenarnya. Namun, itu di luar cakupan artikel ini.
Unduh AutoHotKey dari situs resminya dan menginstalnya.
Jalankan pengelola file favorit Anda, dan kunjungi folder tempat Anda ingin menyimpan skrip Anda. Kemudian, klik kanan pada tempat kosong, dan pilih Baru > Skrip AutoHotKey.
Setelah selesai, saatnya untuk menulis skrip yang sebenarnya.
1. Tentukan Variabel yang Diperlukan
Buka skrip di editor favorit Anda. Anda dapat menggunakan sesuatu yang sederhana seperti Notepad yang disertakan dengan Windows, tetapi kami akan menggunakan Notepad++ untuk panduan ini. Karena Notepad ++ gratis dan dirancang dengan lebih baik untuk tujuan tersebut, ada baiknya Anda mencobanya. Pastikan juga memeriksa panduan utama kami tentang semua pintasan keyboardnya saat Anda memeriksanya.
Perhatikan bahwa Anda tidak boleh menggunakan aplikasi apa pun seperti Word, atau Google Documents, yang dapat memengaruhi pemformatannya. Gunakan editor teks atau "kode".
Skrip sudah berisi beberapa dasar yang direkomendasikan untuk kompatibilitas dan kinerja. Biarkan mereka apa adanya, dan mulai skrip Anda di bawahnya.
Dimulai dari:
AppLoggingRate = 10; Interval waktu (dalam detik) antara pengambilan judul jendela yang aktif.
Waktu Tidur := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
Kita mulai dengan menetapkan nilai "10" ke AppLoggingRate, yang akan kita gunakan untuk menghitung waktu antara pengambilan judul jendela.
Saat digunakan dengan fungsi Sleep AHK, 1000 kira-kira sama dengan satu detik. Jadi, dengan mengalikannya dengan AppLogingRate, kita membuat variabel SleepTime "sama dengan sepuluh detik".
LogPath adalah jalur di mana kita ingin menyimpan log kita. Kami menggunakan nilai %A_ScriptDir%, yang diterjemahkan menjadi "folder tempat Anda menjalankan skrip". Anda dapat menggunakan path lengkap ke folder lain jika Anda mau.
Akhirnya, kami mengatur LastActiveWindow menjadi kosong. Kami akan menggunakan ini nanti untuk memeriksa apakah jendela aktif telah berubah.
2. Pantau Windows yang Aktif
Karena kita ingin terus melacak jendela mana yang aktif, dan jika berubah, catat judul dan waktunya, kita harus menggunakan "a loop".
Seperti namanya, sebuah loop berjalan terus menerus, mengulangi fungsi yang sama (s). Berkat sintaks langsung AHK, kami yakin "kode" berikut ini cukup jelas:
Lingkaran
{
Tidur %Waktu Tidur%
Msgbox, Berhasil!
}
Kami mendefinisikan loop hanya dengan mengetikkan kata "loop" dan kemudian menandai awalnya dengan "{" dan diakhiri dengan "}". Segala sesuatu di baris antara "{" dan "}" akan berjalan terus-menerus sampai Anda keluar dari skrip.
Kami memulai loop dengan menunggu (Tidur) untuk jumlah waktu yang sama dengan variabel SleepTime. Kami menetapkannya sebagai variabel di bab sebelumnya untuk membuat waktu pengontrolan lebih mudah. Alih-alih mengedit skrip itu sendiri, Anda dapat "memberi tahu", melalui variabel ini, berapa detik setiap loop harus berlangsung.
Akhirnya, kami menggunakan Kotak Pesan untuk menguji skrip kami. Coba simpan dan jalankan (klik dua kali pada filenya). Anda akan melihat kotak pesan yang menyatakan "Berhasil!" setelah sepuluh detik.
Klik kanan pada ikon AHK di baki Windows dan keluar dari skrip ketika Anda sudah memiliki kotak pesan yang cukup. Kemudian, kembali ke editor Anda, dan ganti baris MsgBox dengan:
WinGetActiveTitle, ActiveWindow
Ini adalah perintah untuk mendapatkan judul jendela aktif. Abaikan baris "StoreActiveWindow" tambahan, yang kami gunakan saat menulis skrip untuk pengujian.
3. Dapatkan Waktu & Nama Saat Ini
Sekarang tibalah bagian inti dari logika skrip. Kami ingin membandingkan nama jendela aktif dengan yang sebelumnya, dan jika berbeda, "lakukan sesuatu". Ini sesederhana berikut ini:
Jika ActiveWindow != %LastActiveWindow%
{
}
Dengan di atas, kami memeriksa apakah ActiveWindow saat ini berbeda (!=) dari nilai yang disimpan dalam variabel LastActiveWindow (yang awalnya kami atur kosong). Jika ya, AHK akan mengeksekusi kode antara { dan }, yang saat ini kosong.
Kita perlu melacak tanggal dan waktu untuk mengukur berapa lama jendela telah aktif. Kami akan menyimpan log yang berbeda untuk setiap hari, menggunakan tanggal dalam nama mereka. Dan kami ingin mencatat tidak hanya setiap perubahan jendela tetapi juga Kapan itu terjadi. Untuk itu, kami akan menetapkan format waktu yang berbeda ke variabel LogTime dan LogFilename, dengan:
FormatWaktu, Waktu Log,, JJ: mm: ss
FormatWaktu, Nama File Log,, yyyy-MMM-dd
Tambahkan baris di antara tanda kurung kurawal di bawah "If ActiveWindow...", agar AHK menjalankannya saat mendeteksi perubahan jendela.
4. Pemformatan Data
Kami telah mengambil waktu dalam dua variabel berformat berbeda, serta judul jendela aktif. Namun, ada masalah kecil: judul jendela mungkin juga berisi karakter yang tidak kita inginkan. Kami dapat menghapus semua karakter non-alfanumerik menggunakan dukungan AHK untuk RegEx, dengan:
LogWindow := Ganti Regex (ActiveWindow, "[^a-zA-Z0-9]", " ")
Dengan ini, kami "memberi tahu" AHK untuk menghapus semua karakter dari variabel ActiveWindow yang tidak cocok dengan apa yang ada di dalam tanda kurung:
- Huruf kecil
- Huruf besar
- Angka
Kemudian, kami menetapkan hasilnya ke variabel LogWindow.
Dengan semua variabel diatur dan semua data berharga diambil, kami siap untuk memformat file log kami dan isinya.
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
Kami sebelumnya menetapkan tanggal saat ini ke variabel LogFilename. Jadi, dengan baris pertama, kami hanya menyatakan bahwa kami ingin menambahkan "_AppLog.md" ke tanggal untuk menggunakannya sebagai nama file.
Di baris kedua, kami menggabungkan variabel LogPath, yang kami definisikan di awal sebagai tujuan untuk log kami, dengan nama file. Kombinasi mereka adalah nama path lengkap dari log, yang ditetapkan ke variabel LogFile.
Mari kita tetapkan yang setara dengan "baris kosong, Waktu - Nama Jendela, dua baris kosong lagi, pembagi, dan baris kosong lainnya, untuk ukuran yang baik" ke variabel FileContent.
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
- "`n" memberi tahu AHK untuk memasukkan baris baru (setara dengan menekan Enter sekali).
- Tiga tanda hubung akan muncul sebagai pembagi saat disajikan dalam penampil yang kompatibel dengan penurunan harga.
- "%LogTime%" dan "%LogWindow%" adalah variabel tempat kami menyimpan nama jendela aktif dan waktu terdeteksi.
5. Perbarui File
Kami telah mendefinisikan apa yang ingin kami tulis ke file kami, dan kami tahu jalur dan nama filenya. Yang tersisa hanyalah tulisan yang sebenarnya, yang semudah:
FileAppend, %FileContent%, %LogFile%
Ini hampir semudah bahasa Inggris biasa: kami menambahkan semua yang ada di variabel "FileContent" ke file "LogFile".
Fungsi "tambahkan" akan menambahkan "FileContent" ke file jika ada tetapi juga akan membuatnya dari awal jika tidak ada.
Tapi tunggu, ada satu tweak terakhir: mengganti konten variabel LastActiveWindow dengan jendela yang sedang aktif.
Dengan ini, skrip akan dapat mendeteksi lanjut perubahan jendela.
LastActiveWindow = %ActiveWindow%
Dan dengan tambahan terakhir itu, pencatat jendela Anda sudah siap! Simpan, dan jalankan. Kemudian, periksa file penurunan harga, yang akan muncul di folder file skrip Anda setelah sepuluh detik.
Kuasai Waktu Anda
Anda dapat membuka file log Anda dengan editor teks apa pun. Namun, itu akan terlihat lebih cantik jika Anda membukanya di editor yang kompatibel dengan penurunan harga. Di tangkapan layar, Anda dapat melihat log kami di editor Typora yang populer.
Ini adalah cara mudah untuk memeriksa aplikasi mana yang paling sering Anda gunakan, dan Anda hanya memerlukan sesuatu seperti Notepad untuk menggunakannya.
Jika Anda menginginkan sesuatu yang "lebih", Anda selalu dapat "menata" output logger Anda untuk menghasilkan file CSV. Ini semudah mengubah variabel FileContent dan ekstensi file yang dibuat. Anda kemudian dapat mengimpor file tersebut ke dalam aplikasi seperti Excel, Google Calc, atau bahkan pelacak waktu pihak ketiga.
Skrip lengkap:
#TanpaEnv; Direkomendasikan untuk kinerja dan kompatibilitas dengan rilis AutoHotkey mendatang.
; #Memperingatkan; Aktifkan peringatan untuk membantu mendeteksi kesalahan umum.
Masukan Mode Kirim; Direkomendasikan untuk skrip baru karena kecepatan dan keandalannya yang unggul.
SetWorkingDir %A_ScriptDir%; Memastikan direktori awal yang konsisten.
; Variabel
;
AppLoggingRate = 10; Interval waktu (dalam detik) antara pengambilan judul jendela yang aktif.
Waktu Tidur := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Logika
;
Lingkaran
{
Tidur %Waktu Tidur%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Jika ActiveWindow != %LastActiveWindow%
{
FormatWaktu, Waktu Log,, JJ: mm: ss
FormatWaktu, LogNama File,, yyyy-MM-dd
LogWindow := Ganti Regex (ActiveWindow, "[^a-zA-Z0-9]", " ")
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
tidur 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
keluar
AutoHotkey memungkinkan Anda membuat pintasan Windows kustom, makro, dan banyak lagi! Berikut adalah beberapa skrip AutoHotkey yang berguna untuk membantu Anda memulai.
Baca Selanjutnya
- jendela
- Produktifitas
- jendela
- Tombol pintas otomatis
- Manajemen waktu
- Trik Produktivitas

Kehidupan nyata OK dimulai sekitar pukul 10, ketika dia mendapatkan komputer pertamanya - Commodore 128. Sejak itu, dia telah mencairkan keycaps dengan mengetik 24/7, mencoba menyebarkan The Word Of Tech kepada siapa saja yang cukup tertarik untuk mendengarkan. Atau lebih tepatnya, membaca.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan