我尝试在Python中导入windowsaccessbridge-64.dll,当调用函数initializeAccessBridge时,它说找不到,如何纠正下面的代码?
import ctypes as a
b = a.windll.LoadLibrary(r"C:\XXX\windowsaccessbridge-64.dll")
print(b.isJavaWindow) #<_FuncPtr object at 0x000001C6XXX>
print(b.Windows_run) #<_FuncPtr object at 0x000001C6XXX>
print(b.shutdownAccessBridge) #not found
print(b.initializeAccessBridge) # not found
代码修改如下,AccessBridgeCalls.so被编译并创建了一个消息泵循环,在这个循环中flag = So_accessbridge.initializeAccessBridge()
总是返回0,所以下面的代码while user32.GetMessageA(ctypes.byref(msg), None, 0, 0)
不起作用,有人可以帮我吗?
import ctypes
import ctypes.wintypes
#from threading import Thread
import threading
user32 = ctypes.windll.user32
Dll_accessbridge = ctypes.windll.LoadLibrary(r"C:\XXX\windowsaccessbridge-64.dll")
So_accessbridge = ctypes.windll.LoadLibrary(r"C:\XXX\AccessBridgeCalls.so")
class MyThread(threading.Thread):
def run(self):
msg = ctypes.wintypes.MSG()
flag = So_accessbridge.initializeAccessBridge()
print('flag = ' + str(flag)) #flag = 0
while user32.GetMessageA(ctypes.byref(msg), None, 0, 0):
print('n')
user32.TranslateMessageA(msg)
print('p')
user32.DispatchMessageA(msg)
print('q')
t = MyThread()
t.start()