API สำหรับเครื่อง 64 bit
กระทู้เก่าบอร์ด อ.Yeadram

 1,355   6
URL.หัวข้อ / URL
API สำหรับเครื่อง 64 bit

ใครเคยเขียน API สำหรับเครื่อง 64 bit บ้างครับ
ผมต้องการใช้ function การกดปุ่ม Print Screen (PrtScr) ซึ่ง Access ไม่รองรับ (ไม่สามารถใช้ Sendkeys ได้ สั่งไปก็ไม่ทำงาน)
ผมจึงต้องใช้ API ดังนี้

#If Win32 Then
    Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#ElseIf Win64 Then
    Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As IntPtr)
#End If

ซึ่งก็เผื่อไว้ทั้ง 32 และ 64 bit แล้ว
ปัญหาก็คือ เวลาไปติดตั้ง เครื่อง 32 bit ไม่มีปัญหา
แต่เครื่อง 64 bit บางเครื่องได้ บางเครื่อง จะ error ตรง Sub ครับ (โทษทีครับ ลืมจดมาว่า errror message อะไร)

ตอนนี้ยังมึนอยู่ครับ แก้ไม่ถูก ใครพอจะทราบสาเหตุ หรือ ทางแก้ รบกวนด้วยนะครับ

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

1 @R13238
เพิ่มเติมครับ เครื่องที่มีปัญหา เป็น Access 2010
แต่ไม่ใช่ทุกเครื่องที่เป็น Access 2010 64 bit จะมีปัญหานะครับ
2 @R13264
Note that Declare statements without the PtrSafe attribute are assumed not to be compatible with the 64-bit version of Office 2010.

ไม่ทราบลองอ่านที่นี่ดูยังครับ
http://msdn.microsoft.com/en-us/library/ee691831.aspx
3 @R13265
ไม่แน่ใจนะ แต่อาจเป็นที่เรื่องของการ Convert ค่าเป็น 64 bit หรือเปล่า ที่เราต้องใช้ฟังก์ชั่นนี่ด้วย

VarPtr: Variant converter. Returns a LongPtr on 64-bit versions, and a Long on 32-bit versions (4 bytes).

ObjPtr: Object converter. Returns a LongPtr on 64-bit versions, and a Long on 32-bit versions (4 bytes).

StrPtr: String converter. Returns a LongPtr on 64-bit versions, and a Long on 32-bit versions (4 bytes).

4 @R13281
ขอบคุณครับ ยังไม่แน่ใจว่าจะแก้ปัญหาได้หรือเปล่า เผอิญติดงานอื่น แล้วจะกลับมาแจ้งความคืบหน้าต่อไป
5 @R13283
6 @R13293
ขอบคุณคุณ ผ่านไป นะครับ
อันนี้น่าจะเข้าเค้า เป็นที่คุณ yeadram เคยลงไว้นี้เอง
ผมก็ว่าเคยเห็นแวบๆ แต่ search ไม่เจอ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3261s