手動修改羅技 SetPoint 設定的方法


之前在《Logitech MX™ Revolution 測試報告》裡有提到過,可以透過修改設定檔的方法,來強制修改滑鼠的按鈕設定;這對於要繞過 SetPoint 的某些限制來說,算是滿實用的。像 MX 在沒有修改的情形下,就會有「要用手動切換,就沒有中鍵」的情形。

而修改的方法…好像有不少人有興趣?在這邊大概來講一下 Heresy 自己研究的結果吧~

  1. 設定資料的所在

    原則上,SetPoint 的設定檔案是 XML 的格式,檔案則是位於「C:\Documents and Settings\<USERNAME>\Application Data\Logitech\SetPoint」這個目錄下(應該是隱藏目錄);其中「<USERNAME>」是登入 Windows 的帳號。

    在這個資料夾下,有幾個檔案,不過應該是修改「user.xml」這個檔案就 ok 了~

  2. 設定內容

    由於設定檔是 XML,所以只要用一般的純文字編輯器(比如說記事本)就可以打開來看了~而想要比較好的工具的話,也可以考慮 PSPad 或 UltraEdit 這一類的工具;或者,也有專門的 XML 編輯工具,像 Microsoft XML Notepad。而打開檔案後,他的內容大概會像下面的樣子(摘選部分,不是全部的檔案):

    <Source>
       <UserOptions>
          <UserOption Name="BeepKeyboardSettings">0</UserOption>
          <UserOption Name="ShowKeyboardPopupSettings">1</UserOption>
          <UserOption Name="ShowKeyboardTraySettings">1</UserOption>
          <UserOption Name="ApplicationSpecificSettings">1</UserOption>
          <UserOption Name="ShowTrayIcon">1</UserOption>
          <UserOption Name="ShowKeyboardSettings">1</UserOption>
       </UserOptions>
       <Apps>
          <App>c:\program files\outlook express\msimn.exe</App>
          <App>c:\program files\internet explorer\iexplore.exe</App>
          <App>c:\program files\adobe\reader 8.0\reader\acrord32.exe</App>
       </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>

  3. 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」。

    而在滑鼠的 DeviceClass=PointingDevice Device下,應該是有兩個子項:「Param」和「Buttons」。其中「Param」是針對滑鼠的一般設定,「Buttons」則是針對個別按鈕的設定;在「Buttons」下,會有數個「Button」的項目,每一個就是對應到滑鼠的一個按鈕。而 Button 本身,可以透過他的「Number」來做識別。

  4. 滑鼠按鈕設定

    對於 Button 的一般功能判斷,大多是在「Trigger」-「TriggerState」-「Handler」;而他底下的「Param」值的部分,一般的標準按鈕非常簡單,就只有三種:

    • 滑鼠左鍵:<Param ButtonName="PrimaryButton"/>
    • 滑鼠右鍵:<Param ButtonName="SecondaryButton"/>
    • 滑鼠中鍵:<Param ButtonName="MiddleButton"/>

    不過,由於在 <TriggerState><Param> 等地方,可能也有相關的參數,所以 Heresy 建議比較快的方法,就是先利用 SetPoint 的界面,把自己要的功能設定好,再把整個 <Trigger>…</Trigger> 複製下來,這樣比較能確保設定的正確性。甚至有需要的話,可能連 <Button> 下的 <Param> 都一併複製會比較保險。

    像 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>

    在上面的例子裡,Number6 代表是哪一個按鈕,不過 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>

    除了一般的 <Handler> 之外,有的鈕還可以看到 <AppOverride> 的項目;這些就是可以根據不同的應用程式,讓同一個鈕有不同功能的設定。 裡面一樣是透過 <Handler><Param> 來做設定。

    而像羅技的滑鼠按鈕越來越多,要怎麼知道自己的按鈕是哪一項呢?Heresy 一樣是建議,用 SetPoint 設定來找!先把自己要修改的按鈕改成依像比較特殊的鍵盤鈕對硬、程式執行之類的,然後在 XML 中,就相當容易找到了!而像在 Heresy 的系統上,搜尋鍵就是 <Button Number="6" Name="4">;不過也不確定是否在每個電腦都是一樣的就是了。

  5. 套用設定

    在修改好 XML 之後,Heresy 是建議先把改好的檔案備份一下;因為有的時候 SetPoint 會怪怪,把設定還原成初始值… @@

    所以自己手動備份一下設定,應該還是比較保險的!

    而要讓修改生效,一個方法就是把 Windows 關機,或者登出再重新登入;不過有的時候似乎會把設定吃掉,回到修改前…

    Setpoint1所以,比較好的套用法方,應該是到 Windows 工具列的右下角,找到羅技的 SetPoint,把他關掉;接著,再到程式集裡把他重新開起來(應該會是「Logitech」-「滑鼠與鍵盤」裡的「滑鼠和鍵盤設定」)。此時,就可以發現功能已經被強制修改掉了!像下圖就是 Heresy 將搜尋鈕強制修改成滑鼠中鍵的結果了~

    Setpoint2

About these ads

關於 Heresy Ku
http://kheresy.wordpress.com

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

關注

Get every new post delivered to your Inbox.

Join 424 other followers

%d bloggers like this: