位於ui
[HKCU\Software\Mentor Graphics\PADS9_5\PADS Layout\Workspaces\ENU\Default\BCGToolBar-593980]spa
下的二進制數據項:Buttons。code
字符串的表達 blog
該二進制數據記錄字符串時,在字符串數據頭部增長1byte用來記錄長度。字符串
05,26,46,69,6c,65
首位05即表示接下來這個字符串的長度爲5byte,「&File」。it
菜單項的表達 class
記錄菜單的數據長度不定,結構以下。二進制
0b,00,00,00, // CommandId 菜單的命令id,特殊值:FF FF FF FF爲分隔線;00 00 00 00爲擁有子菜單的菜單項。當commandId查找不到對應的command時,該菜單項會變成不可用。這是自定義菜單異常的常見狀況。 00,00,00,00, // MenuItemType 一般都是全零,分隔線和最近使用的Macros,此處爲00 00 04 00。 ae,00,00,00, // IconId 若菜單有圖標,這裏會存放圖標信息,不然爲FF FF FF FF。 04,26,4e,65,77, // Text 菜單顯示的文字。 00,00,00,00,00,00,00,00, // IsCustomed PADS的菜單項此處全零。自定義的菜單都爲01 00 00 00 00 00 00 00。 00,00,00,00,01,00,00,00, // IconType 有圖標值 00 00 00 00 01 00 00 00;沒圖標爲 10 00 00 00 00 00 00 00 01,00,00,00,00,00,00,00, // 未知,始終爲該值 00,00,00,00,01,00,00,00, // 未知,始終爲該值 00,00 // 子菜單的個數
菜單項之間的分隔command
01,80,// 01 80 表示接下來還有菜單項,00 00 表示菜單項描述結束。
若是把最後一個菜單以前的分隔標記01 80替換爲 00 00的話:數據
1. 啓動PADS後最後一個菜單會消失掉,由於解析到此就結束了;最後一個菜單不會被加載到PADS界面中;
2. 在關閉PADS後,由於關閉時PADS會使用當前的UI從新寫入註冊表,所以原先位於 00 00 以後的二進制數據會所有被刪掉。最後一個菜單的數據也就沒法恢復了。
Buttons 數據開始的部分
00,20,00,00,01,00,00,00,07,00, // 未知 ff,ff,01,00, // 未知 16,00, // 字符串長度,這裏用了 2byte記錄長度,而不是1byte。 43,42,43,47,50,54,6f,6f,6c,62,61,72,4d,65,6e,75,42,75,74,74,6f,6e, // CBCGPToolbarMenuButton
Buttons數據結束的部分
最後一個菜單項的數據結束後,會有2byte 0表示其後再無menuitem。而後纔是
00,00 // 表示後續沒有菜單項了 00,00, // 未知 08,4d,65,6e,75,20,42,61,72, // Menu Bar 6d,00,00,00 // 未知