[Ttssh2-commit] [5456] Tera Term Menuのレジストリデータからiniファイルへの変換ツール ( Python版 ) を追加した。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2013年 12月 31日 (火) 00:28:11 JST


Revision: 5456
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5456
Author:   yutakapon
Date:     2013-12-31 00:28:10 +0900 (Tue, 31 Dec 2013)
Log Message:
-----------
Tera Term Menuのレジストリデータからiniファイルへの変換ツール(Python版)を追加した。

Added Paths:
-----------
    trunk/installer/ttpmenu/ttpmenu.py

-------------- next part --------------
Added: trunk/installer/ttpmenu/ttpmenu.py
===================================================================
--- trunk/installer/ttpmenu/ttpmenu.py	                        (rev 0)
+++ trunk/installer/ttpmenu/ttpmenu.py	2013-12-30 15:28:10 UTC (rev 5456)
@@ -0,0 +1,96 @@
+
+#
+# Export Tera Term Menu registry to ini file.
+#   with Python 2.7.6
+#
+# Usage:
+# c:\>python ttpmenu.py > ttpmenu.ini
+#
+
+import _winreg
+import sys
+import struct
+
+TTMREG = "Software\\ShinpeiTools\\TTermMenu";
+
+write = sys.stdout.write
+
+def enum_keys(key):
+    try:
+        i = 0
+        while True:
+            yield _winreg.EnumKey(key, i)
+            i += 1
+    except EnvironmentError:
+        pass
+
+def read_keys(key):
+    values = []
+    for name in enum_keys(key):
+    	values.append(name)
+    return values
+
+
+def enum_values(key):
+    try:
+        i = 0
+        while True:
+            yield _winreg.EnumValue(key, i)
+            i += 1
+    except EnvironmentError:
+        pass
+
+def read_values(key):
+    values = {}
+    for name, value, type_ in enum_values(key):
+    	write("%s=" % name)
+    	if (type_ == _winreg.REG_DWORD):
+    		write("%08x\n" % value)
+    	
+    	elif (type_ == _winreg.REG_BINARY):
+    		for s in value:
+    			bit = struct.unpack('B', s)[0]
+    			write("%02x " % bit)
+    		write("\n")
+    	
+    	else:
+    		write("%s\n" % value)
+    
+    write("\n")
+    return
+
+
+def PrintSectionName(s):
+	write("[%s]\n" % s)
+	return
+
+def ExportIniFile(regkey):
+	key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, regkey)
+	read_values(key)
+	_winreg.CloseKey(key)
+	return
+
+def main(s):
+	PrintSectionName("TTermMenu")
+	ExportIniFile(TTMREG)
+	
+	key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, TTMREG)
+	keylist = read_keys(key)
+	_winreg.CloseKey(key)
+#	print keylist
+
+	for keystr in keylist:
+		PrintSectionName(keystr)
+		ExportIniFile(TTMREG + "\\" + keystr)
+	
+	return 0
+	
+if __name__ == '__main__':
+	args = sys.argv
+	if len(args) > 1:
+		s = args[1:]
+	else:
+		s = ""
+	main(s)
+
+



Ttssh2-commit メーリングリストの案内
Back to archive index