MX610HID
MX610HID
version 0.3.0 2006/06/11
【説明】
Logitech の MX 610 Laser Cordless Mouse の
メール用とメッセンジャー用のボタンのLEDのON/OFFを
コントロールするソフトウェアです。
【インストール方法】
適当なフォルダに解凍してください。
【アンインストール方法】
解凍したファイル等を削除してください。
レジストリ等は作成していません。
【使用方法】
mx610hid [ mx | mo | mp | mxg | mog | mpg | sx | so | sp | sxg | sog | spg | t(時間ms) | b(周波数Hz) ]
引数なし GUI インターフェイスを表示します。
引数がある場合 引数で指定された処理をした後、自動的に終了します。
mx Mail の LED を 消灯(Off) します。
mo Mail の LED を 点灯(On) します。
mp Mail の LED を 点滅(Pulse) します。
mxg Mail の LED を ゆるやかに、消灯(Off) します。
mog Mail の LED を ゆるやかに、点灯(On) します。
mpg Mail の LED を ゆるやかに、点滅(Pulse) します。
sx Messenger の LED を 消灯(Off) します。
so Messenger の LED を 点灯(On) します。
sp Messenger の LED を 点滅(Pulse) します。
sxg Messenger の LED を ゆるやかに、消灯(Off) します。
sog Messenger の LED を ゆるやかに、点灯(On) します。
spg Messenger の LED を ゆるやかに、点滅(Pulse) します。
t(時間ms) 指定された時間、間隔を空けます。
b(周波数Hz) 指定された周波数で、100msビープ音を鳴らします。
(例)
mx610hid.exe so mog t5000 spg mp t10000 mxg sx
【注意】
自己責任で使用してください。
【変更の概要】
< Version 0.3.0 > 2006/06/11
引数起動時にMailボタンとIMボタンのLEDのコントロールが続いている場合、同時にセットするように対応。
実行中の USB Receiver の抜き差しに対応。
< Version 0.2.1 > 2006/05/31
コマンドラインオプションの仕様を変更。
< Version 0.2.0 > 2006/05/30
Mailボタン,IMボタンのLEDのコントロールに対応。
< Version 0.0.1 > 2005/05/18
第一版。
Copyright (C) 2006 QUEBits
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
MyMxPoint
MyMxPoint version 0.1.2
【説明】
Logitech の MX 610 Laser Cordless Mouse の
ボタンに機能を割り当てます。
【インストール方法】
適当なフォルダに解凍してください。
【アンインストール方法】
解凍したファイル等を削除してください。
レジストリ等は作成していません。
【使用方法】
実行するとタスクトレイにアイコン状態で起動して常駐します。
終了するときは、タスクトレイのアイコンをクリックして終了してください。
【ボタンの機能割り当て】
現時点では、機能割り当ての変更はできません。
コードをみる
//------------------------------------------------------------------------------
// ボタンに機能割り当て
//------------------------------------------------------------------------------
procedure TForm1.ActionEvent;
var
pt: TPoint;
hWindow: HWND;
begin
//--------------------------------
// 共通の設定
//--------------------------------
// 進むボタン ダウン + ホイール前
if Browser_Forward_BUTTON_DOWN and Wheel_ROTATE_FORWARD then
begin
// Ctrl + Tab (次のタブへ移動)
if Is_Shift_DOWN then
begin
Is_Shift_DOWN := False;
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
if not Is_Ctrl_DOWN then
begin
Is_Ctrl_DOWN := True;
keybd_event(VK_CONTROL, 0, 0, 0);
end;
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
// 進むボタン ダウン + ホイール後
if Browser_Forward_BUTTON_DOWN and Wheel_ROTATE_BACKWARD then
begin
// Ctrl + Shift + Tab (前のタブへ移動)
if not Is_Ctrl_DOWN then
begin
Is_Ctrl_DOWN := True;
keybd_event(VK_CONTROL, 0, 0, 0);
end;
if not Is_Shift_DOWN then
begin
Is_Shift_DOWN := True;
keybd_event(VK_SHIFT, 0, 0, 0);
end;
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
// 戻るボタン ダウン + ホイール前
if Browser_Backward_BUTTON_DOWN and Wheel_ROTATE_FORWARD then
begin
// Alt + Tab (次のウィンドウを選択)
if Is_Shift_DOWN then
begin
Is_Shift_DOWN := False;
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
if not Is_Alt_DOWN then
begin
Is_Alt_DOWN := True;
keybd_event(VK_MENU, 0, 0, 0);
end;
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
// 戻るボタン ダウン + ホイール後
if Browser_Backward_BUTTON_DOWN and Wheel_ROTATE_BACKWARD then
begin
// Alt + Shift + Tab (前のウィンドウを選択)
if not Is_Alt_DOWN then
begin
Is_Alt_DOWN := True;
keybd_event(VK_MENU, 0, 0, 0);
end;
if not Is_Shift_DOWN then
begin
Is_Shift_DOWN := True;
keybd_event(VK_SHIFT, 0, 0, 0);
end;
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
// 進むボタン アップ
// 戻るボタン アップ
if Browser_Forward_BUTTON_UP or Browser_Backward_BUTTON_UP then
begin
if Is_Ctrl_DOWN or Is_Alt_DOWN or Is_Shift_DOWN or Is_Middle_DOWN then
begin
if Is_Shift_DOWN then
begin
Is_Shift_DOWN := False;
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
if Is_Ctrl_DOWN then
begin
Is_Ctrl_DOWN := False;
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
end;
if Is_Alt_DOWN then
begin
Is_Alt_DOWN := False;
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
end;
if Is_Middle_DOWN then
begin
// FireFoxでの設定で、進むボタン ダウンに割り当てているので
Is_Middle_DOWN := False;
mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0);
end;
Exit;
end;
end;
// ホイール前,後
if Wheel_ROTATE_FORWARD or Wheel_ROTATE_BACKWARD then
begin
// マウスポインター下のウィンドウをアクティブにする
GetCursorPos(pt);
hWindow := WindowFromPoint(pt);
ForceForegroundWindow( GetAncestor(hWindow, GA_ROOT) );
end;
//--------------------------------
// アプリケーションごとの設定
//--------------------------------
if GetWindowExePath(GetForegroundWindow) = 'C:\Program Files\Mozilla Firefox\firefox.exe' then
begin
//--------------------------------
// FireFox での設定
//--------------------------------
// 進むボタン ダウン
if Browser_Forward_BUTTON_DOWN then
begin
Is_Middle_DOWN := True;
// マウス中央ボタン ダウン (リンク先を新しいタブで開く)
mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0);
Exit;
end;
{
// 進むボタン アップ
if Browser_Forward_BUTTON_UP and Is_Middle_DOWN then
begin
Is_Middle_DOWN := False;
// マウス中央ボタン アップ
mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0);
Exit;
end;
}
// 戻るボタン アップ
if Browser_Backward_BUTTON_UP then
begin
// Ctrl + F4 (タブを閉じる)
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_F4, 0, 0, 0);
keybd_event(VK_F4, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
if Mail_BUTTON_DOWN then
begin
// Alt + F4 (ウィンドウを閉じる)
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_F4, 0, 0, 0);
keybd_event(VK_F4, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
if IM_BUTTON_DOWN then
begin
// プログラム起動
ShellExecute(Handle, 'open', 'C:\Program Files\Internet Explorer\IEXPLORE.EXE', nil, nil, SW_SHOWDEFAULT);
Exit;
end;
end
else
if (GetWindowExePath(GetForegroundWindow) = 'C:\Program Files\Internet Explorer\IEXPLORE.EXE')
or (GetWindowExePath(GetForegroundWindow) = 'C:\Program Files\Internet Explorer\iexplore.exe') then
begin
//--------------------------------
// IE での設定
//--------------------------------
// 進むボタン アップ
if Browser_Forward_BUTTON_UP then
begin
// Shift + 左クリック (新しいウィンドウで開く)
keybd_event(VK_SHIFT, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
// 戻るボタン アップ
if Browser_Backward_BUTTON_UP then
begin
// Alt + F4 (ウィンドウを閉じる)
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_F4, 0, 0, 0);
keybd_event(VK_F4, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
end;
if Mail_BUTTON_DOWN then
begin
// プログラム起動
ShellExecute(Handle, 'open', 'C:\Program Files\Mozilla Firefox\firefox.exe', nil, nil, SW_SHOWDEFAULT);
Exit;
end;
if IM_BUTTON_DOWN then
begin
// プログラム起動
ShellExecute(Handle, 'open', 'C:\Program Files\Internet Explorer\IEXPLORE.EXE', nil, nil, SW_SHOWDEFAULT);
Exit;
end;
end
else
if GetWindowExePath(GetForegroundWindow) = 'C:\Program Files\kbmed\Kbmplay.exe' then
begin
//--------------------------------
// KbMedia Player での設定
//--------------------------------
// 戻るボタン アップ
if Browser_Backward_BUTTON_UP then
begin
// Alt + ← (前の曲)
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_LEFT, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP or KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
// 進むボタン アップ
if Browser_Forward_BUTTON_UP then
begin
// Alt + → (次の曲)
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_RIGHT, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP or KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
if Mail_BUTTON_DOWN then
begin
// Alt + F4 (ウィンドウを閉じる)
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_F4, 0, 0, 0);
keybd_event(VK_F4, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
Exit;
end;
end
else
begin
//--------------------------------
// デフォルトの設定
//--------------------------------
// 進むボタン アップ
if Browser_Forward_BUTTON_UP then
begin
// Enter キー
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
end;
// 戻るボタン アップ
if Browser_Backward_BUTTON_UP then
begin
// Alt + F4 (ウィンドウを閉じる)
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_F4, 0, 0, 0);
keybd_event(VK_F4, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
end;
if Mail_BUTTON_DOWN then
begin
// プログラム起動
ShellExecute(Handle, 'open', 'C:\Program Files\Mozilla Firefox\firefox.exe', nil, nil, SW_SHOWDEFAULT);
end;
if IM_BUTTON_DOWN then
begin
// プログラム起動
ShellExecute(Handle, 'open', 'C:\Program Files\Internet Explorer\IEXPLORE.EXE', nil, nil, SW_SHOWDEFAULT);
end;
end; {if GetWindowExePath }
end;
【注意】
自己責任で使用してください。
Copyright (C) 2006 QUEBits
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.