PADS在註冊表中的菜單欄數據

位於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 // 未知
相關文章
相關標籤/搜索