Event ตัวไหน ใช้ตรวจสอบว่ากำลังใช้งานโปรแกรมอยู่หร
กระทู้เก่าบอร์ด อ.Yeadram

 1,541   3
URL.หัวข้อ / URL
Event ตัวไหน ใช้ตรวจสอบว่ากำลังใช้งานโปรแกรมอยู่หร

คืออยากใช้ตัว Timer Interval ในการจับเวลา... แต่พอเวลาที่ user ไปใช้โปรแกรมตัวอื่น อยากให้ตัว Timer มันหยุดหนะครับ ต้องไปเขียน code ที่ event ตัวไหน ไม่อยากให้โปรแกรมมัน run ตลอดเวลา ถ้าไม่ได้ใช้งานอยู่(แต่ไม่ปิดนะครับ) ผมลองเขียนใน Get Focus กับ Lost Focus ก็ไม่เวริค
ลองที่ Active กับ Deactive ก็รู้ได้แต่เฉพาะใน Access แต่ตอนที่เปลี่ยนไปใช้โปรแกรมอื่นมันก็ไม่รู้

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R07640
ถ้าพูดถึง event คงไม่มีครับ แต่พอจะใช้ windows API เช็คได้ โดยวางโค้ดนี้ในโมดูล

Public Declare Function GetForegroundWindow Lib "user32" () As Long

แล้วใน Timer event ก็เช็คว่า current windows นั้น เป็น Access เองหรือไม่

If GetForegroundWindow() = Application.hWndAccessApp Then

แต่ไม่ใช่ไปกำหนดว่าถ้าไม่ใช่แล้วให้ Timer หยุดนะครับ เพราะถ้าหยุดแล้ว ก็จะไม่มีอะไรมาเช็คได้อีกแล้วครับ
2 @R07644
ขอบคุณมากมายครับ... ผมลองเอาไปประยุกต์ใช้ดู
โดย... ให้มัน stop timer และ แสดง Form อื่นขึ้นมาเล็กๆขึ้นมาแทน(เขียนว่า Program Pause) จากนั้นถ้า user กลับมาที่โปรแกรมและคลิกไปที่โปรแกรม
...ผมเขียน event on active ให้มันปิด Form เล็ก และก็ไป on timer ต่อ...

ก็พอใช้ถูไถได้ดีครับ... แม้จะตอบโจทย์ไม่ได้เต็มร้อย ...ก็ยังดีกว่าไม่มี

นี่กะว่า จะ set position ของ form ตัวเล็ก ที่เปิดขึ้นมาใหม่ให้มาไปบังในส่วนที่เป็น timer display พอดี ...ก็จะดูเนียนเลยทีเดียว
3 @R08043
หากมีใครทำได้ช่วยบอกหน่อยครับ เพราะผมก็อยากได้เหมือนกัน แต่ไม่รู้ว่าจะทำยังไงดี
ขอบคุณครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2397s