Его зону чувствительности на нажатие можно просто укоротить, тогда повторное нажатие на кнопку возврата не будет анализироваться. Для этого скрипт регулятора громкости нужно поменять целиком на этот
Код:
// vi:set ft=javascript ff=dos ts=4 sts=4 sw=4 et:
// ==PREPROCESSOR==
// @name "Volbar with GdiDrawText"
// @author "T.P Wang"
// ==/PREPROCESSOR==
// Flags, used with GdiDrawText
// For more information, see: http://msdn.microsoft.com/en-us/libr...98(VS.85).aspx
var DT_TOP = 0x00000000;
var DT_LEFT = 0x00000000;
var DT_CENTER = 0x00000001;
var DT_RIGHT = 0x00000002;
var DT_VCENTER = 0x00000004;
var DT_BOTTOM = 0x00000008;
var DT_WORDBREAK = 0x00000010;
var DT_SINGLELINE = 0x00000020;
var DT_EXPANDTABS = 0x00000040;
var DT_TABSTOP = 0x00000080;
var DT_NOCLIP = 0x00000100;
var DT_EXTERNALLEADING = 0x00000200;
var DT_CALCRECT = 0x00000400;
var DT_NOPREFIX = 0x00000800;
var DT_INTERNAL = 0x00001000;
var DT_EDITCONTROL = 0x00002000;
var DT_PATH_ELLIPSIS = 0x00004000;
var DT_END_ELLIPSIS = 0x00008000;
var DT_MODIFYSTRING = 0x00010000;
var DT_RTLREADING = 0x00020000;
var DT_WORD_ELLIPSIS = 0x00040000;
var DT_NOFULLWIDTHCHARBREAK = 0x00080000;
var DT_HIDEPREFIX = 0x00100000;
var DT_PREFIXONLY = 0x00200000;
//function RGB(r, g, b) {
// return (0xff000000 | (r << 16) | (g << 8) | (b));
//}
function RGBA(r, g, b, a) {r &= 0xff; g &= 0xff; b &= 0xff; a &= 0xff; return ((a << 24) | (r << 16) | (g << 8) | (b));}
UIHacks = new ActiveXObject("UIHacks");
var WshShell = new ActiveXObject("WScript.Shell");
var r_font = window.Height / 2;
var g_font = gdi.Font("Tahoma", r_font, 0);
var g_font2 = gdi.Font("Tahoma", r_font * 2, 1);
var g_drag = 0;
function on_paint(gr) {
var ww = window.Width*4/5;
var wh = window.Height;
var volume = fb.Volume;
var pos = window.Width*4/5 * ((60 + volume) / 60);
var txt = (Math.ceil(volume)) + " dB";
var vv = pos/ww;
var r_font = window.Height / 2;
var g_font = gdi.Font("Tahoma", r_font, 0);
var g_font2 = gdi.Font("Tahoma", r_font * 2, 1);
gr.FillGradRect(0, 0, pos -12, wh/2, 90, RGBA(10, 15, 19, 100), RGBA(38, 60, 76, 100));
gr.FillGradRect(0, wh/2, pos-12, wh/2, 90, RGBA(38, 60, 76, 100), RGBA(10, 15, 19, 100));
gr.FillGradRect(pos-12, 0, 12, wh/2, 90, RGBA(10, 15, 19, 100), RGBA(57, 90, 114, 100));
gr.FillGradRect(pos-12, wh/2, 12, wh/2, 90, RGBA(57, 90, 114, 100), RGBA(10, 15, 19, 100));
gr.FillGradRect(pos, 0, ww-pos, wh/2, 90, RGBA(10, 15, 19,100), RGBA(38, 60, 76,100));
gr.FillGradRect(pos, wh/2, ww-pos, wh/2, 90, RGBA(38, 60, 76,100), RGBA(10, 15, 19,100));
gr.GdiDrawText(txt, g_font, RGBA(0, 150, 200, 100), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText("|", g_font2, RGBA(0, 150, 200, 100), pos, -r_font/6, 4, wh, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText("|", g_font2, RGBA(0, 0, 0, 100), pos+4, -r_font/6, 2, wh, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText("|", g_font2, RGBA(0, 0, 0, 100), pos+14, -r_font/6, 2, wh, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText("|", g_font2, RGBA(180, 180, 180, 100), pos-13, -r_font/6, 1, wh, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText("|", g_font2, RGBA(180, 180, 180, 100), pos-1, -r_font/6, 1, wh, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
UIHacks.MasterVolume.Volume=vv;
}
function on_mouse_lbtn_down(x, y) {
if(x < window.Width*4/5) {g_drag = 1};
}
function on_mouse_lbtn_up(x, y) {
on_mouse_move(x, y);
g_drag = 0;
}
function on_mouse_move(x, y) {
if (g_drag) {
var v = x / window.Width*5/4;
v = (v < 0) ? 0 : (v < 1) ? v : 1;
v = -60 * (1 - v);
if (fb.Volume != v) fb.Volume = v;
if (fb.Volume < -60) fb.Volume = -60;
}
}
function on_mouse_wheel(delta) {
if (delta > 0) fb.VolumeUp();
else fb.VolumeDown();
if (fb.Volume < -60) fb.Volume = -60;
}
function on_volume_change(val) {
window.Repaint();
}
|