使用Python Ctypes调用内核32上的GetPrivateProfileString

2024-10-03 21:24:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用GetPrivateProfileString编辑ini文件。它在vb上工作,所以我尝试将它放在python中

from ctypes import *
def GetINIKey2(inipath,Content,itemname):
  kernel32 = windll.LoadLibrary("kernel32.dll")
  GetPrivateProfileString = kernel32.GetPrivateProfileStringA
  returnstring = c_wchar_p("")
  lpApplicationName = c_wchar_p(Content)
  lpKeyName = c_wchar_p(itemname)
  lpDefault = c_wchar_p('defalut')
  lpReturnedString = returnstring
  nSize = c_int(256)
  lpFileName = c_wchar_p(inipath)

  returnval = GetPrivateProfileString(byref(lpApplicationName),byref(lpKeyName),byref(lpDefault),byref(lpReturnedString),byref(nSize),byref(lpFileName))

  print(returnval)
  print(returnstring.value)

GetINIKey2(“C:\test.ini”、“服务器”、“服务器名”)

以下是ini文件:

[server]
servername = 192.168.11.1
serverport = 8000

returnstring.value应该是“192.168.11.1”,但它始终是“default”,这是lpDefault的值。代码怎么了


Tags: 文件contentinikernel32byrefitemnamewcharlpapplicationname