對這文章發表回應
發表限制: 非會員 可以發表
手動修改羅技 SetPoint 設定的方法
之前在《 Logitech MX™ Revolution 測試報告》裡有提到過,可以透過修改設定檔的方法,來強制修改滑鼠的按鈕設定;這對於要繞過 SetPoint 的某些限制來說,算是滿實用的。像 MX 在沒有修改的情形下,就會有「 要用手動切換,就沒有中鍵」的情形。
而修改的方法…好像有不少人有興趣?在這邊大概來講一下 Heresy 自己研究的結果吧~
設定資料的所在
原則上,SetPoint 的設定檔案是 XML 的格式,檔案則是位於「 C:\Documents and Settings\
\Application Data\Logitech\SetPoint 」這個目錄下(應該是隱藏目錄);其中「
」是登入 Windows 的帳號。 在這個資料夾下,有幾個檔案,不過應該是修改「 user.xml」這個檔案就 ok 了~
設定內容
由於設定檔是 XML,所以只要用一般的純文字編輯器(比如說記事本)就可以打開來看了~而想要比較好的工具的話,也可以考慮 PSPad 或 UltraEdit 這一類的工具;或者,也有專門的 XML 編輯工具,像 Microsoft XML Notepad。而打開檔案後,他的內容大概會像下面的樣子(摘選部分,不是全部的檔案):
<Source>
<UserOptions>
<UserOption Name="BeepKeyboardSettings">0UserOption>
<UserOption Name="ShowKeyboardPopupSettings">1UserOption>
<UserOption Name="ShowKeyboardTraySettings">1UserOption>
<UserOption Name="ApplicationSpecificSettings">1UserOption>
<UserOption Name="ShowTrayIcon">1UserOption>
<UserOption Name="ShowKeyboardSettings">1UserOption>
UserOptions>
<Apps>
<App>c:\program files\outlook express\msimn.exeApp>
<App>c:\program files\internet explorer\iexplore.exeApp>
<App>c:\program files\adobe\reader 8.0\reader\acrord32.exeApp>
Apps>
<Devices>
<Device Class="Receiver" Model="50331680">
<Param LowBatPercentLevel="5" VScrollAcceleration="0" VScrollSpeed="0"
VoIPClient="" AppSpecific="1"/>
<Buttons/>
Device>
<Device DisplayName="MX Revolution" Class="PointingDevice" Model="16777325"
NumberOfButtons="13" ConnectionID="">
<Param ACCELERATION="0" ButtonSwapped="0" GameDeviceSuggestGameMode="0"
GameDeviceSuggestOS="0" GameModeButtonAddGame="0" GameModeButtonResDown="0" GameModeButtonResUp="0"
GameModeButtonResUpWrap="0" GameModeKeepAcceleration="0" GameModeKeepKeypress="1" GameModeKeepOther="0"
GameModeKeepRightLeft="1" GameModeKeepSpeed="1" GameModeNotification="0" GameModeResolutionNbPreset="0"
GameModeResolutionPresets="" GameModeResolutionPresetsY="" GameParticipate="0" GameParticipateDefault="0"
GamePowerMode="0" GameResIndex="2" GameUseAdvanced="0" GamingType="0" LowBatPercentLevel="5"
OfficePowerMode="0" SmartMove="0" SpeedX="141" SpeedY="141" TouchPadMice="0"
TrackballMice="0" Trails="0" TrailsLength="0" VScrollAcceleration="0" VScrollSpeed="0"
VoIPClient="" smartshiftmode="0" AirSpeedX="50" AirSpeedY="50" AppSpecific="1"
EnableCentering="1" GameReportRate="2" MenuLocBottom="-1" MenuLocLeft="-1" MenuLocRight="-1"
MenuLocTop="-1" MenuSize="0" StromboliMice="0"/>
<Buttons>
<Button Number="1" Name="1">
<Param IconLoc="" Type=""/>
<Trigger Class="ButtonPress">
<Param Button="1" FirstRepeatDelay="0" RepeatDelay="0" Silent="1"
Type="0"/>
<TriggerState Name="ButtonDownUp" HandlerSet="LeftClick">
<Handler Class="MouseButton">
<Param ButtonName="PrimaryButton"/>
Handler>
TriggerState>
Trigger>
Button>
SetPoint XML 結構簡易說明
原則上,XML 是以樹狀結構的方式儲存資料的;而羅技 SetPoint 的 root node 是「 Source」,底下則是有「 UserOptions」、「 Apps」、「
Devices」三個項目。下圖就是他的結構大致的樣子。
其中,「 UserOptions」是針對 SetPoint 的一些基本設定;「 Apps」的用處 Heresy 不是很確定,不過應該是用來記錄程式,來對各程式做個別設定用的。
而「
Devices」這一項,是用來儲存各項裝置的設定,就是要修改的重點了!在「 Devices」會有許多個「 Device」,可以透過他的「 Class
」和「 DisplayName」來做簡單的區分。像上面的例子中,就有兩個 device。其中一個是接收器, Class的值就是「 Receiver」;另一個是 MX 這隻滑鼠,
DisplayName的值就是「 MX Revolution」, Class的值則是「 PointingDevice
」。
而在滑鼠的 Device ( Class= PointingDevice 的 Device)下,應該是有兩個子項:「
Param」和「 Buttons」。其中「 Param」是針對滑鼠的一般設定,「 Buttons
」則是針對個別按鈕的設定;在「 Buttons」下,會有數個「 Button」的項目,每一個就是對應到滑鼠的一個按鈕。而 Button 本身,可以透過他的「
Number」來做識別。
滑鼠按鈕設定
對於 Button 的一般功能判斷,大多是在「 Trigger」-「 TriggerState」-「
Handler」;而他底下的「 Param」值的部分,一般的標準按鈕非常簡單,就只有三種:
- 滑鼠左鍵: PrimaryButton"/>
- 滑鼠右鍵:
SecondaryButton"/> - 滑鼠中鍵: MiddleButton"/>
不過,由於在
等地方,可能也有相關的參數,所以 Heresy 建議比較快的方法,就是先利用 SetPoint 的界面,把自己要的功能設定好,再把整個
都一併複製會比較保險。
像 Heresy 把 MX 的搜尋鈕設定成中鍵,在 XML 裡就是:
<Button Number="6" Name="4">
<Param IconLoc="" Type=""/>
<Trigger Class="ButtonPress">
<Param Button="6" FirstRepeatDelay="0" RepeatDelay="0"
Silent="0" Type="0"/>
<TriggerState Name="ButtonDownUp" HandlerSet="MiddleButton">
<Handler Class="MouseButton">
<Param ButtonName="MiddleButton"/>
Handler>
TriggerState>
Trigger>
Button>
在上面的例子裡, Number 的 6 代表是哪一個按鈕,不過 Name=" 4"的代表意義,Heresy 就比較不確定了;而第一個黃底的 MiddleButton,就是當這個按鈕事件被觸發時,要進行的動做了~
而其他非標準按鍵的功能呢?Heresy 是建議用 SetPoint 來做調整,看看出來值是什麼,再把這些值複製下來。像 [Ctrl] + R 是瀏覽器的重新整理,在 SetPoint 的設定檔裡會變成:
<TriggerState
Name="ButtonDownUp" HandlerSet="KeystrokeAssignment">
<Handler Class="KeystrokeAssignment">
<Param DisplayName="Ctrl+R" LParam="1245185"
Modifier="2" VirtualKey="82"/>
Handler>
除了一般的
來做設定。
而像羅技的滑鼠按鈕越來越多,要怎麼知道自己的按鈕是哪一項呢?Heresy 一樣是建議,用 SetPoint 設定來找!先把自己要修改的按鈕改成依像比較特殊的鍵盤鈕對硬、程式執行之類的,然後在 XML 中,就相當容易找到了!而像在 Heresy 的系統上,搜尋鍵就是 " Name=" 4">;不過也不確定是否在每個電腦都是一樣的就是了。
套用設定
在修改好 XML 之後,Heresy 是建議先把改好的檔案備份一下;因為有的時候 SetPoint 會怪怪,把設定還原成初始值… @@
所以自己手動備份一下設定,應該還是比較保險的!
而要讓修改生效,一個方法就是把 Windows 關機,或者登出再重新登入;不過有的時候似乎會把設定吃掉,回到修改前…
所以,比較好的套用法方,應該是到 Windows 工具列的右下角,找到羅技的 SetPoint,把他關掉;接著,再到程式集裡把他重新開起來(應該會是「Logitech」-「滑鼠與鍵盤」裡的「滑鼠和鍵盤設定」)。此時,就可以發現功能已經被強制修改掉了!像下圖就是 Heresy 將搜尋鈕強制修改成滑鼠中鍵的結果了~
原文出處: 手動修改羅技 SetPoint 設定的方法 | Heresy's Space