;)

Hai Tio,

Kok ya aneh-aneh aja sih kepengenannya... ya wis lah...

Tombol PRNTSCR tidak didefinisikan secara khusus seperti tombol lain (misal
CTRL atau ALT).
Untuk meng-handle tombol ini memang harus melalui emaknya, yaitu si OS itu
sendiri (misal Windows).
Untuk mencolek emaknya dibutuhkan fungsi-fungsi kelas WinAPI.

Aplikasi yang dijalankan di Windows berada disebuah area yang berada diatas
area si Windows itu sendiri, karena si Windows menjadi platform si
aplikasi. Jadi WinAPI ada diarea bawah itu.

*Beberapa *fungsi-fungsi WinAPI memiliki tabiat gak peduli dengan aplikasi
yang memerintahkan dia untuk bekerja.
Artinya, si fungsi WinAPI itu akan terus bekerja dan bekerja sampai batasan
yang ditentukannya sendiri seperti ketika sudah tidak ada lagi yang bisa
dikerjakannya.
Sedangkan si aplikasi yang minta tolong ke fungsi WinAPI itu pengen ada
informasi tentang hal-hal yang terjadi saat si fungsi WinAPI itu bekerja.
Nah, untuk bisa mendapatkan informasi tersebut, maka si aplikasi harus
mengirim personel yang berupa sebuah fungsi yang akan terus mengamati kerja
si fungsi WinAPI.
Fungsi WinAPI akan memberikan informasi ke personel ini sembari terus sibuk
bekerja. Lalu personel inilah yang akan menyampaikan informasi tersebut ke
aplikasi yang minta tolong.
Personel yang berupa fungsi ini dikenal sebagai Callback Function. Nama
personelnya (nama fungsi callbacknya) bebas, seperti WindowProc atau
CallbackSomething, dsb.
Personel ini dikenalkan ke fungsi WinAPI dengan merujuk ke nomor induknya
(pointer si personel). Caranya dengan menggunakan AddressOf.
Proses mencolek fungsi WinAPI yang sukanya bekerja ini sering disebut
proses hook.

Pada kasus seperti ingin meng-handle keyboard, maka fungsi WinAPI yang
dibutuhkan salah satunya adalah yang termasuk kelompok gak pedulian ini,
sehingga dibutuhkan callback function.
Fungsi WinAPI yang digunakan untuk meng-handle keyboard adalah
> SetWindowsHookEx untuk menangkap aksi user,
> CallNextHookEx untuk terus waspada pada aksi user,
> UnhookWindowsHookEx untuk menghentikan kegiatan pengawasan terhadap aksi
user

Karena fungsi WinAPI selalu menggunakan nomor induk (pointer) dalam
memproses dan memberikan informasi, maka perlu petugas yang melihat data
detil dari pemilik nomor induk tersebut.
Fungsi WinAPI yang berlaku sebagai petugas itu salah satunya adalah
CopyMemory

Semua hasil pengawasan yang dilaporkan akan dapat diketahui detil
pemiliknya.
Kemudian aplikasi (yang mendapat informasi dari callback function) akan
melakukan proses sesuai keinginan si aplikasi berdasar informasi tersebut.

Itulah gambaran dasar tentang proses hook.
Contohnya adalah seperti file yang ada
disini<https://app.box.com/s/jo7krc5ik3s3bwehjeou>,
yang berusaha meng-hook (mengawasi aksi user terhadap) keyboard, khususnya
tombol PRNTSCR.

Moga-moga filenya bisa dijalankan juga di xl2003. Biasanya OS WinXP keatas
bisa menggunakannya.
Khusus pada Office 64 Bit, dibutuhkan penyesuaian variabel long ke kelompok
ptrsafe seperti LongLong pengganti datatype long dan LongPtr untuk
penyikpan pointer.
Kelompok ptrsafe ini bisa dijalankan juga pada VBA7 (32 Bit), tetapi masih
belum bisa di VBA6 ataupun VBA6.5

Wassalam,
Kid.


2013/12/6 Jan Raisin <[email protected]>

>
>
> Hai Tio..
>
> untuk tombol Print Screen kelihatannya memiliki perlakuan yang berbeda..
> Jan sudah coba dengan script OnKey tetapi tidak berhasil.. kelihatannya
> solusi untuk kasus ini harus bermain-main dengan API,
>
> mungkin nanti mr Kid bisa memberikan sedikit pencerahan.. tetapi
> kelihatannya harus bersabar agak lama karena saat ini mr. Kid masih sibuk
> kejar setoran xixixixi ^_^
> atau mungkin ada BeExeller lain yang memiliki pengetahuan tentang windows
> API silakan sharing ilmunya ke sini.
>
> Salam,
>
> -Miss Jan Raisin-
>
>
> Pada 5 Desember 2013 15.08, Tio Adi Bayu Adjie <[email protected]>menulis:
>
>
>>
>>  Salam Excel,
>>
>>
>>
>> Adakah para Suhu Excel yang tahu untuk permasalahan saya di bawah ini ?
>>
>>
>>
>> Terima kasih dan semoga Allah SWT membalas kebaikan para Suhu.
>>
>>
>>
>> Salam,
>>
>>
>>
>> *From:* [email protected] [mailto:
>> [email protected]] *On Behalf Of *Tio Adi Bayu Adjie
>> *Sent:* Tuesday, December 03, 2013 3:16 PM
>> *To:* [email protected]
>> *Subject:* [belajar-excel] Perintah macro di Excel agar tidak bisa print
>> screen
>>
>>
>>
>>
>>
>> Salam Excel,
>>
>> Newbie mau tanya, bisakah buat macro di Excel untuk disable tombol print
>> screen ?
>>
>>
>>
>> Terima kasih,
>>
>> Salam,
>>
>> Tio
>>
>>
>>
>>    _
>>
>  _
>

Kirim email ke