С уважением, Алексей
Мой Prius NHW11
Если кому мешает указатель мышки на экране, но совсем отказываться от мышки невозможно (ну, всё-таки эта стрелочка иногда нужна при работе), рекомендую только что состряпанный мной скриптец.
Что он делает:
1. Если в течение 10 секунд движения мышки не было, указатель с экрана прячется (заменяется пустышкой).
2. Если в течение 1 секунды мышка непрерывно меняет свои координаты, то указатель снова показывается на экране.
Таким образом, в нормальных условиях мышка не видна, но если вдруг потребуется её отобразить, то достаточно в течение 1 секунды двигать указателем по экрану.
Код:#NoTrayIcon ; не отображать значок скрипта в трее #SingleInstance force ; перезагрузить скрипт, если он уже запущен DetectHiddenWindows, On ; искать в скрытых окнах #NoEnv ; запрещаем имена переменных как у переменных окружения SendMode Input ; ускорренный ввод #Persistent ; держать скрипт запущенным SetTitleMatchMode 2 ; 2 - заголовок окна должен содержать значение, заданное в параметре counter := 0 mouseshow := 1 CoordMode, Mouse, Screen SetTimer, WatchCursor, 100 OnExit, ShowCursor return ShowCursor: SystemCursor("On") ExitApp WatchCursor: MouseGetPos, x, y ;MsgBox, mouseshow = %mouseshow%, counter = %counter% if(mouseshow == 0) { if (x = x_old) && (y = y_old) counter := 0 else counter++ if (counter > 10) { Gosub, MyFunc1 counter := 0 } } else { if (x = x_old) && (y = y_old) counter++ else counter := 0 if (counter > 100) { Gosub, MyFunc0 counter := 0 } } x_old := x, y_old := y return MyFunc0: SystemCursor("Off") mouseshow := 0 ;MsgBox, Mouse is Off (%mouseshow%) return MyFunc1: SystemCursor("On") mouseshow := 1 ;MsgBox, Mouse is On (%mouseshow%) return SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others { static AndMask, XorMask, $, h_cursor ,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 , b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 , h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 if (OnOff = "Init" or OnOff = "I" or $ = "") { $ = h ; active default cursors VarSetCapacity( h_cursor,4444, 1 ) VarSetCapacity( AndMask, 32*4, 0xFF ) VarSetCapacity( XorMask, 32*4, 0 ) system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650 StringSplit c, system_cursors, `, Loop %c0% { h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% ) h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 ) b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0 , "int",32, "int",32, "uint",&AndMask, "uint",&XorMask ) } } if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T")) $ = b else $ = h Loop %c0% { h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 ) DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% ) } } ~WheelDown:: ~WheelUp:: ~RButton:: ~LButton:: counter := 0 return
С уважением, Алексей
Мой Prius NHW11
Погонял на автокомпе последний скриптец... И пришёл к выводу, что задержка в 1 секунду маловата. Поставил 3 секунды.
Правится это в строчке
if (counter > 10)
10 - это 1 секунда. Соответственно, для 3х секунд строка выглядит так:
if (counter > 30)
С уважением, Алексей
Мой Prius NHW11
С уважением, Алексей
Мой Prius NHW11
Может кому полезно будет скрипт для пежошного307 джойстика подключенного к геймпаду.
PHP код:
#NoTrayIcon
JoystickNumber = 1
; ЭНКОДЕР(ДВИЖЕНИЯ ВВЕРХ И ВНИЗ)
ev=UU
state =UU
Loop
{
getkeystate j5, joy5
getkeystate j7, joy7
ev=%j5%%j7%
if state=UU
{
if ev=DU
{
Send {Up}
state=%ev%
}
else if ev=UD
{
Send {Down}
state=%ev%
}
}
else if state=DU
{
if ev=UU
{
state=%ev%
}
}
else if state=UD
{
if ev=UU
{
state=%ev%
}
}
sleep 5
}
return
;РЕГУЛИРОВКА ГРОМКОСТИ И MUTE(ПО ОДНОВРЕМЕННОМУ УДЕЖИВАНИЮ КНОПОК)
Joy1::
KeyWait, %A_ThisHotkey%, U T 0.2
If ErrorLevel = 0 ; если отжата
{
Soundset+8
}
else
{
KeyWait, Joy2, D T.2
if ErrorLevel=0
{
sleep 800
getkeystate j1, joy1
getkeystate j2, joy2
if (j1="D" and j2="D")
{
Soundset,+1,,mute
}
}
else
{
Loop
{
Soundset+1
sleep 12
getkeystate j1, joy1
if j1=U
{
return
}
}
}
}
Return
Joy2::
KeyWait, %A_ThisHotkey%, U T 0.2
If ErrorLevel = 0 ; если отжата
{
Soundset-8
}
else
{
KeyWait, Joy1, D T.2
if ErrorLevel=0
{
sleep 800
getkeystate j1, joy1
getkeystate j2, joy2
if (j1="D" and j2="D")
{
Soundset,+1,,mute
}
}
else
{
Loop
{
Soundset-1
sleep 12
getkeystate j2, joy2
if j2=U
{
return
}
}
}
}
Return
;ПРЕДЫДУЩИЙ ТРЕК
Joy3::
{
If WinNotActive, centrafuse, WinActivate, centrafuse,
WinWaitActive, centrafuse,
MouseClick, left, 265, 541
}
return
;СЛЕДУЮЩИЙ ТРЕК
Joy6::
{
If WinNotActive, centrafuse, WinActivate, centrafuse,
WinWaitActive, centrafuse,
MouseClick, left, 512, 541
}
return
;ЭНТЕР(по дабл-клику) И ТАБ(по клику)
Joy8::
KeyWait, %A_ThisHotkey%, U T.1
If ErrorLevel = 0 ; если отжата
{
KeyWait, %A_ThisHotkey%, D T.5
if errorLevel=0
{
Send {Enter}
;Msgbox действие от двойного клика
}
}
else
{
send {Tab}
;MSGBOX одинарный клик
}
Return
Последний раз редактировалось DNyo; 30.09.2009 в 02:23.
излагаю
Скрипт Battery ( контроль питания ноута : Сеть или батарея , если батарея - запуск скрипта shudowntimer
#NoTrayIcon ; не отображать значок скрипта в трее
#SingleInstance force ; перезагрузить скрипт, если он уже запущен
#NoEnv ; запрещаем имена переменных как у переменных окружения
SendMode Input ; ускорренный ввод
#Persistent ; держать скрипт запущенным
SetTitleMatchMode 2 ; 2 - заголовок окна должен содержать значение, заданное в WinTitle
DetectHiddenWindows, On
SetTimer, GetPowerSource, 5000
return ; End of main program
GetPowerSource:
VarSetCapacity(powerStatus, 1+1+1+1+4+4)
success := DllCall("GetSystemPowerStatus", "UInt", &powerStatus)
acLineStatus:=ReadInteger(&powerstatus,0,1,false)
batteryFlag:=ReadInteger(&powerstatus,1,1,false)
batteryLifeTime:=ReadInteger(&powerstatus,4,4,fals e)
batteryFullLifeTime:=ReadInteger(&powerstatus,8,4, false)
output=AC Status: %acLineStatus%`nBattery Flag: %batteryFlag%`nBattery Life (percent): %batteryLifePercent%`nBattery Life (time): %batteryLifeTime%`nBattery Life (full time): %batteryFullLifeTime%
If %acLineStatus% = 0
{
sleep 50000
VarSetCapacity(powerStatus, 1+1+1+1+4+4)
success := DllCall("GetSystemPowerStatus", "UInt", &powerStatus)
acLineStatus:=ReadInteger(&powerstatus,0,1,false)
If %acLineStatus% = 0
{
Run, C:\POWER\Shutdowntimer.ahk
ExitApp
}
else
Return
}
else
Return
ReadInteger( p_address, p_offset, p_size, p_hex=true )
{
value = 0
old_FormatInteger := a_FormatInteger
if ( p_hex )
SetFormat, integer, hex
else
SetFormat, integer, dec
loop, %p_size%
value := value+( *( ( p_address+p_offset )+( a_Index-1 ) ) << ( 8* ( a_Index-1 ) ) )
SetFormat, integer, %old_FormatInteger%
return, value
}
Скрипт shutdowntimer ( продвинутая выключалка ноут )
/* Shutdown Timer v1.1
by Dr. Shajul
Shutdown after a specified interval!
Command line parameters are also accepted, in minutes..
eg Shutdown_timer.exe 10 5
.. will force shutdown (code 5) in 10 minutes
*/
;;********** Settings, Variable Declarations **********
#SingleInstance Force
#NoEnv
OnExit, quit
programName = Shutdown Timer
programVersion = 1.2
programFullName = %programName% v%programVersion%
programAuthor = Shajul
;;********** Auto-Execute Section **********
GoSub, trayMenu ; construct tray menu : OPTIONAL
scode=5
if 0>0
{
tvar = %1%
scode = %2%
if not scode
scode=5
}
else
{
; InputBox, tvar, Shutdown computer in.. (minutes),Format`:`"<Time in minutes> <[shutdown code]>`"`nEg. `"10 5`",,400,150,,,,60,10 5
tvar := 10
; if cancel was pressed, return
if errorlevel=1
ExitApp
IfInString, tvar, %A_Space%
{
StringSplit,tvar,tvar,%A_Space%
tvar:=tvar1
scode:=tvar2
}
}
if tvar is number
{
shuttime := tvar
Settimer,Shuttime,60000
Gui, +AlwaysOnTop -Disabled -SysMenu +Owner -Caption -ToolWindow ; stay on top to prevent access whilst in pre shutdown mode.
Gui, Font, s24 cFFFFFF
my_x := (A_ScreenWidth/2)-100
my_y := (A_ScreenHeight/2)-100
Gui, Add, Button, x%my_x% y%my_y% h60 w200 gQuit Section, Cancel
Gui, Add, Button, xs-250 y%my_y% h60 w200 gHibernate, Hibernate
Gui, Add, Button, xs+250 y%my_y% h60 w200 gShutdown, Shutdown
my2_y := my_y + 90
Gui, Add, Button, x%my_x% y%my2_y% h60 w200 gLogOff, Logoff
Gui, Add, Button, xs-250 y%my2_y% h60 w200 gSuspend, Suspend
Gui, Add, Button, xs+250 y%my2_y% h60 w200 gRestart, Reboot
my3_y := my_y + 180
Gui, Add, Checkbox, x%my_x% y%my3_y% h60 w200 vforce center, Force?
Gui, Font, s40 cFFFFFF
my4_y := my_y - 100
Gui, Add, Text, xs-200 y%my4_y% w600 vMyText, %A_Space%Shutdown in %Shuttime% minutes!
Gui, Color, 000000
Gui, Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, ScreenMask
WinSet, Transparent, 200, ScreenMask
Gosub, Shuttime
}
else
MsgBox, 48, Invalid Data, Please enter a valid 3-digit number!,
return
;;********** Subroutines **********
Shuttime:
shuttime--
GuiControl,, MyText, %A_Space%Shutdown in %shuttime% minutes!
if shuttime <= 0
{
Shutdown,%scode%
Settimer,Shuttime,off
}
Return
Shutdown:
Gui, Submit, NoHide
if force
Shutdown,5
else
Shutdown,0
; Run, powerOFF.exe
return
Hibernate:
Gui, Submit, NoHide
if force
DllCall("PowrProf\SetSuspendState", "int", 1, "int", 1, "int", 0)
else
DllCall("PowrProf\SetSuspendState", "int", 1, "int", 0, "int", 0)
Return
Suspend:
Gui, Submit, NoHide
if force
DllCall("PowrProf\SetSuspendState", "int", 0, "int", 1, "int", 0)
else
DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
Return
Restart:
Gui, Submit, NoHide
if force
Shutdown,6
else
Shutdown,2
return
Logoff:
Gui, Submit, NoHide
if force
Shutdown,4
else
Shutdown,0
return
trayMenu:
Menu, Tray, Tip, %programFullName%
Menu, Tray, NoStandard
Menu, Tray, Add, &About, about
Menu, Tray, Add
Menu, Tray, Add, &Quit, quit
Return
about:
MsgBox, 64, %programFullName%,
( LTrim
%programFullName%
%A_Space%by %programAuthor%
Shutdown after a specified interval!
)
Return
Quit:
ExitApp
Return
P s ... оп а я то же 15 лет не пристёгиваюсь за рулём ... наверно оч плохо эт
Последний раз редактировалось sandos; 02.01.2010 в 03:26.
Объясните ламеру как эти скрипты запускать? Нужна какая-то программа? В частности интересует скрипт для указателя мыши.
З.Ы. Скрипт для мыши будет работать в виндовс 7?
Нужен интерпретатор, установленный в системе. На работу в Win7 не пробовал.
С уважением, Алексей
Мой Prius NHW11
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)