Windows では、レジストリを読んでユーザー定義のデータ ソースを取得します
[パイソン]
# -*- コーディング: UTF-8 -*-
# ODBC データソースリストを取得
tkinter インポートから *
tkinter import ttk から
win32api、win32con をインポートします
def GetODBCdsn():
キー = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,
'SOFTWARE\ODBC\ODBC.INI\ODBC データ ソース',0, win32con.KEY_ALL_ACCESS)
#print(キー)
#print(win32api.RegQueryValue(key,''))
#print('サブ項目の数、項目値の数、および最終変更時刻を返します',win32api.RegQueryInfoKey(key))
サブアイテム、アイテム、opdate =win32api.RegQueryInfoKey(key)
dsnlist=[]
範囲内の私(アイテム):
print('---',win32api.RegEnumValue(key, i))
dsnName,dsnObject,dsnType = win32api.RegEnumValue(key, i)
dsnlist.append(dsnName)
#print(dir(win32api))
Win32api.RegCloseKey(キー)
DSNリストを返す
クラス MFrame(フレーム):
Def __init__(self, master=None, cnf={}, **kw):
self.master = マスター
self.master.title('ユーザー定義のデータソースを取得')
self.combo = ttk.Combobox(self.master)
self.combo.config(state="readonly")
self.combo.pack(side=TOP、fill = 'x'、expand = False)
self.combo.update_idletasks()
comlist=GetODBCdsn()
self.combo['values'] = comlist
デフォルトテスト():
GetODBCdsn()
def main():
ルート = Tk()
mf=Mフレーム(ルート)
Root.mainloop()
__name__=="__main__"の場合:
#テスト()
メイン()