82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
# (sort-of) Registry editor
|
|
import commctrl
|
|
import dialog
|
|
import win32con
|
|
import win32ui
|
|
|
|
|
|
class RegistryControl:
|
|
def __init__(self, key):
|
|
self.key = key
|
|
|
|
|
|
class RegEditPropertyPage(dialog.PropertyPage):
|
|
IDC_LISTVIEW = 1000
|
|
|
|
def GetTemplate(self):
|
|
"Return the template used to create this dialog"
|
|
|
|
w = 152 # Dialog width
|
|
h = 122 # Dialog height
|
|
SS_STD = win32con.WS_CHILD | win32con.WS_VISIBLE
|
|
FRAMEDLG_STD = win32con.WS_CAPTION | win32con.WS_SYSMENU
|
|
style = (
|
|
FRAMEDLG_STD
|
|
| win32con.WS_VISIBLE
|
|
| win32con.DS_SETFONT
|
|
| win32con.WS_MINIMIZEBOX
|
|
)
|
|
template = [
|
|
[self.caption, (0, 0, w, h), style, None, (8, "Helv")],
|
|
]
|
|
lvStyle = (
|
|
SS_STD
|
|
| commctrl.LVS_EDITLABELS
|
|
| commctrl.LVS_REPORT
|
|
| commctrl.LVS_AUTOARRANGE
|
|
| commctrl.LVS_ALIGNLEFT
|
|
| win32con.WS_BORDER
|
|
| win32con.WS_TABSTOP
|
|
)
|
|
template.append(
|
|
["SysListView32", "", self.IDC_LISTVIEW, (10, 10, 185, 100), lvStyle]
|
|
)
|
|
return template
|
|
|
|
|
|
class RegistryPage(RegEditPropertyPage):
|
|
def __init__(self):
|
|
self.caption = "Path"
|
|
RegEditPropertyPage.__init__(self, self.GetTemplate())
|
|
|
|
def OnInitDialog(self):
|
|
self.listview = self.GetDlgItem(self.IDC_LISTVIEW)
|
|
RegEditPropertyPage.OnInitDialog(self)
|
|
# Setup the listview columns
|
|
itemDetails = (commctrl.LVCFMT_LEFT, 100, "App", 0)
|
|
self.listview.InsertColumn(0, itemDetails)
|
|
itemDetails = (commctrl.LVCFMT_LEFT, 1024, "Paths", 0)
|
|
self.listview.InsertColumn(1, itemDetails)
|
|
|
|
index = self.listview.InsertItem(0, "App")
|
|
self.listview.SetItemText(index, 1, "Path")
|
|
|
|
|
|
class RegistrySheet(dialog.PropertySheet):
|
|
def __init__(self, title):
|
|
dialog.PropertySheet.__init__(self, title)
|
|
self.HookMessage(self.OnActivate, win32con.WM_ACTIVATE)
|
|
|
|
def OnActivate(self, msg):
|
|
print("OnAcivate")
|
|
|
|
|
|
def t():
|
|
ps = RegistrySheet("Registry Settings")
|
|
ps.AddPage(RegistryPage())
|
|
ps.DoModal()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
t()
|