Жезли за Windows
Автор |
|
phrozencrewПон, 14.03.11, 18:44 |
Програмката наистина била по-лесна от колкото предполагах!!! Ето кода за AutoIt : #include <Misc.au3>
AutoItSetOption("WinTitleMatchMode", 4)
While 1
If WinActive("classname=ExploreWClass") _
Or WinActive("classname=CabinetWClass") Then
If _IsPressed("01") and _IsPressed("02") Then
Send("!{LEFT}")
EndIf
If _IsPressed("04") Then
Send("!{RIGHT}")
EndIf
Sleep(25)
Else
; do nothing
EndIf
Sleep(88)
WEnd |
С едновременно натискане на ляв и десен бутон на мишката отиваме назад (back), със средния бутон отиваме напред (Forward). Сорса: Back_and_Forward_Windows_Explorer.au3 32-битова версия: Back_and_Forward_Windows_Explorer.exe 64-битова версия: Back_and_Forward_Windows_Explorer_x64.exe Скрипта е с абсолютно базова функционалност, която може да се допълни с проверки за грешки, да се премахне действие от някои директории и т.н. Всеки ентусиаст, като древен, да може да си я доработи кода според собствените си нужди. Според мен, доброто познаване на HotKeys ускорява много повече работата, от колкото използването на мишката и лично за мен подобни приложения не са особено интересни. Все пак би ми било интересно да разгледам и кода на Dreven, ако ми остане време. | | phrozencrewПон, 14.03.11, 22:15 | RE: Жезли за Windows
” Има ли някаква програмка, която да ми позволи ... връщане в по задна папка да става с кликане на десен и ляв бутон на мишката „
Има! Виж по-горе кода. Всичко останало можеш да си го добавиш сам! Ако нещо ти е неясно питай! Кое точно действие с клавишите искаш да изпълниш? ПС: Какво означават жезлите, че за пръв път чувам за подобна тъпотия? ПС2: Ако ти трябват още горещи клавиши: [alt+spacebar+n] - минимализира прозорец; [alt+F4] - затваря прозорец; Много лесно можеш да ги интегрираш в действия с мишката за Explorer-a. Но явно не ти трябва това. Обясни какво точно ти е нужно бе човек! | | vesovПон, 14.03.11, 23:04 | RE: RE: Жезли за Windows
”
ПС: Какво означават жезлите, че за пръв път чувам за подобна тъпотия? „
И аз съм любопитен | | phrozencrewВто, 15.03.11, 00:01 |
Кажи са за жезлите, че то явно другото се превърна в голямо мазало. От къде тръгнахме до къде стигнахме ! Клавиатурни подредби Но тия жалузи са интересни... Обясни на простосмъртните, дето не разбират от Winblowz програмиране, тоя термин. | | drevenВто, 15.03.11, 00:45 | RE: Жезли за Windows
” Кажи са за жезлите, че то явно другото се превърна в голямо мазало. „ Има неща, който не се нуждаят от обяснения. Ако си успял да стартираш програмата трябва да си усетил разликата между кръпката и цялостната програма. Тази програма, която е писана на истински език за програмиране прави доста повече неща, прави ги завършено и цялостно и в същото време е 7 пъти по-компактна. Но оценките трябва да ги дава единствено и само потребителя. | | phrozencrewВто, 15.03.11, 07:18 | RE: RE: Жезли за Windows
” Има неща, който не се нуждаят от обяснения. Ако си успял да стартираш програмата трябва да си усетил разликата между кръпката и цялостната програма. Тази програма, която е писана на истински език за програмиране прави доста повече неща, прави ги завършено и цялостно и в същото време е 7 пъти по-компактна. Но оценките трябва да ги дава единствено и само потребителя. „
Да, да . Естествено не очакваше да знам каква странност ти е в главата, за да ти напиша програмата. Чак толкова боб не мога да хвърлям . Целта ми беше да ти дам насока и вместо да пишеш глупави изключващи инструкции за браузерите, да се възползваш от ExploreWClass и CabinetWClass. var_100 = "Internet Explorer"
var_108 = 8
call InStr(var_C8, esi, var_108, var_88, 00000001h, esp)
var_100 = "Opera"
var_108 = 8
call InStr(var_C8, esi, var_108, var_88, 00000001h)
var_100 = "Firefox"
var_108 = 8
call InStr(var_C8, esi, var_108, var_88, 00000001h)
var_100 = "Chrome"
var_108 = 8
call InStr(var_C8, esi, var_108, var_88, 00000001h)
var_100 = "Program Manager" |
Програма ти в WinXP я няма - ни в работния, ни в системния трей и се наложи да я изключа от таск менаджера! Това е сериозен пропуск. Оправи го! Какво означават windows жалузите? ПС: Поне от уважение към хората, които ти тестват програмата и ти дават съвети, би било добре да публикуваш кода. Някой младеж би могъл да напише наистина интересна програма! | | drevenВто, 15.03.11, 07:36 |
В поста в който пуснах програмата два пъти изрично подчертах, че програмата няма да работи по XP, но трябва да работи перфектно под 64 битов Windows-7. Програмата я няма в трей лентата, защото не трябва да я има там и е нормално да я няма. Във фонов режим на компютъра работят десетки програми и много от тях дори не могат да се видят в TaskManager. Сорса няма да го публикувам, защото няма учебна стойност . Не мисля, че се чувствам задължен да публикувам сорса на всяка своя програма. Не мисля и че възпирам творческият потенциал на младите, защото в една програма не сорса е най-важното нещо. Най-ценното нещо е самата идея, а тя може да бъде реализирана по много различни начини. Ако някой се притеснява от моите програми просто не бива да изобщо да си прави труда да ги стартира. Аз никого не задължавам и не мога да се чувствам задължен. Мойте програми са безплатни и винаги намират своите потребители без да е необходимо да ги посочвам с пръст. | | океанВто, 15.03.11, 12:22 |
Според мен така направена програмата няма голям ефект нито пък някакво улеснение.Десен ,ляв бутон провлачване нагоре ,надолу,наляво на дясно някак си тъпо изглежда.Не искам да те засегна ,това е лично мнение.Специално за мен би ми подхождало повече изобщо да ги няма тези действия с мишката ,а да се добави една лента в експлорера и да изглежда горе-долу така.
| | drevenВто, 15.03.11, 13:01 | RE: Жезли за Windows
”
Според мен така направена програмата няма голям ефект нито пък някакво улеснение.Десен ,ляв бутон провлачване нагоре ,надолу,наляво на дясно някак си тъпо изглежда.Не искам да те засегна ,това е лично мнение.Специално за мен би ми подхождало повече изобщо да ги няма тези действия с мишката ,а да се добави една лента в експлорера и да изглежда горе-долу така.
„ Тези събития не съм ги измислил аз, а са дело на софтуерните компании създаващи съвременните браузери. Когато за първи път видях как ги използва сина ми бях силно смутен, защото наблюдавах как едва ли не браузера сменя страниците сам. Когато ги изпробвах обаче усетих глезотията, която са сътворили програмистите. Настоящото ми мнение е, че са изключително добре подбрани и не случайно по подразбиране те са еднакви във всички браузери. Идеята за настоящата програма ми хрумна съвсем естествено. След като привикнах с използването на тези жестове, изведнъж се оказа, че извън браузера те ми липсват. Празнина, която лично за мен вече не съществува. | | phrozencrewВто, 15.03.11, 19:20 |
Не разбрах какво означават жазулите, жезълите, жалузите или там каквато еротична фантазия имаш??!!Тъй като програмата, която предлагаш е изключително неграмотно създадена, ти предлагам да я пренапишеш отново! И след като не даваш на потребителя да разбере какво му причиняваш на компа с тая невидима тъпня, ти предлагам поне да му позволиш сам да си въвежда операциите, които да върши тъпнята. Защо не и кои клавишни комбинации на кое действие да отговарят. Тъй като си един велик разбирачев едва ли ще се затрудниш. За да не съм голословен и да не говориш пак за някакви кръпки ти предлагам поне този път да почерпиш някой друг съвет от предложенията ми. ... По добре да напиша една простичка програмка и да покажа сорса... .... Най-после!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #include <Misc.au3>
AutoItSetOption("WinTitleMatchMode", 4)
$dll = DllOpen("user32.dll")
$ini = "functions.ini"
$func1 = IniRead($ini,"HotKey","Function1",@WindowsDir&"system32calc.exe")
$func2 = IniRead($ini,"HotKey","Function2",@WindowsDir&"system32calc.exe")
$func3 = IniRead($ini,"HotKey","Function3",@WindowsDir&"system32calc.exe")
$func4 = IniRead($ini,"HotKey","Function4",@WindowsDir&"system32calc.exe")
$func5 = IniRead($ini,"Gestures","Function5",@WindowsDir&"system32calc.exe")
$func6 = IniRead($ini,"Gestures","Function6",@WindowsDir&"system32calc.exe")
$func7 = IniRead($ini,"Gestures","Function7",@WindowsDir&"system32calc.exe")
$func8 = IniRead($ini,"Gestures","Function8",@WindowsDir&"system32calc.exe")
$funcl1 = IniRead($ini,"Label","Function1",@WindowsDir&"system32calc.exe")
$funcl2 = IniRead($ini,"Label","Function2",@WindowsDir&"system32calc.exe")
$funcl3 = IniRead($ini,"Label","Function3",@WindowsDir&"system32calc.exe")
$funcl4 = IniRead($ini,"Label","Function4",@WindowsDir&"system32calc.exe")
$funcl5 = IniRead($ini,"Label","Function5",@WindowsDir&"system32calc.exe")
$funcl6 = IniRead($ini,"Label","Function6",@WindowsDir&"system32calc.exe")
$funcl7 = IniRead($ini,"Label","Function7",@WindowsDir&"system32calc.exe")
$funcl8 = IniRead($ini,"Label","Function8",@WindowsDir&"system32calc.exe")
While 1
Sleep ( 500 )
ToolTip("")
If _IsPressed("04", $dll) Then ; Moje da se smeni s drug buton na mishkata
$ori = MouseGetPos()
SplashImageOn("","gdot.bmp","30","30",$ori[0]-15,$ori[1]-15,1)
Do
Sleep(100)
$cur = MouseGetPos()
If $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] > 100 Then
ToolTip($funcl1)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] > 100 Then
ToolTip($funcl2)
ElseIf $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] < -100 Then
ToolTip($funcl3)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] < -100 Then
ToolTip($funcl4)
ElseIf $ori[0] - $cur[0] > 50 Then
ToolTip($funcl5)
ElseIf $ori[0] - $cur[0] < -50 Then
ToolTip($funcl6)
ElseIf $ori[1] - $cur[1] > 50 Then
ToolTip($funcl7)
ElseIf $ori[1] - $cur[1] < -50 Then
ToolTip($funcl8)
Else
ToolTip("")
EndIf
Until Not(_IsPressed("04", $dll));Moje da se smeni s drug buton na mishkata
$cur = MouseGetPos()
If WinActive("classname=ExploreWClass") Or WinActive("classname=CabinetWClass") Then
If $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] > 100 Then ; Nagore i naliavo - Back
Send($func1)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] > 100 Then ; Nagore i nadiasno - Forward
Send($func2)
ElseIf $ori[0] - $cur[0] > 100 And $ori[1] - $cur[1] < -100 Then ; Nadolu i nalqwo - Minimize
Send($func3)
ElseIf $ori[0] - $cur[0] < -100 And $ori[1] - $cur[1] < -100 Then ; Nadolu i nadiasno - Close
Send($func4)
ElseIf $ori[0] - $cur[0] > 50 Then ; Naliavo - My Docu
ShellExecute($func5)
ElseIf $ori[0] - $cur[0] < -50 Then ; Nadiasno - Disc D:
ShellExecute($func6)
ElseIf $ori[1] - $cur[1] > 50 Then ; NAGORE - Calculator
ShellExecute($func7)
ElseIf $ori[1] - $cur[1] < -50 Then ; NADOLU - Notepad
RShellExecute($func8)
EndIf
Else
If $ori[0] - $cur[0] > 50 Then ; Naliavo - My Docu
Run($func5)
ElseIf $ori[0] - $cur[0] < -50 Then ; Nadiasno - Disc D:
Run($func6)
ElseIf $ori[1] - $cur[1] > 50 Then ; NAGORE - Calculator
Run($func7)
ElseIf $ori[1] - $cur[1] < -50 Then ; NADOLU - Notepad
Run($func8)
Else
SplashTextOn("Gestures","No action","250","20","-1","-1",2,"","","")
Sleep(500)
SplashOff()
EndIf
EndIf
SplashOff()
EndIf
WEnd
DllClose($dll) |
Пфууу 40 минути загуба на време!!!! Ето я и моята програма: 32-bit Версия Windows_gestures_v.01.8458.zip 64-bit версия: Windows_gestures_x64_v.01.7257.zip След стартирането, приложението следи за натиснат среден клавиш на мишока. Програмата разполага с ini-файл functions.ini в който са описани всички функции и горещи клавиши (HotKeys) и спокойно могат да се променят от потребителя, за да се напасне според нуждите му: [HotKey]
Function1 = !{LEFT}
Function2 = !{RIGHT}
Function3 = !{SPACE}N
Function4 = !{F4}
[Gestures]
Function5 = explorer.exe C:
Function6 = explorer.exe D:
Function7 = calc.exe
Function8 = Notepad.exe
[Label]
Function1 = Back
Function2 = Forward
Function3 = Minimize
Function4 = Close Explorer
Function5 = Disk C
Function6 = Disk D
Function7 = Calculator
Function8 = Notepad |
Първите 4 функции са обвързани с горещи клавиши. За промяна на клавишите според нуждите на потребителя може да се използва това ръководство: HotKey_help.html Следващите функции от 5 до 8-ма са обвързани с приложения, които могат да се стартират с жестикулации. Схемата на функциите е следната:
Сорс кода е приложен в архивите с програмата и лесно може да се допълни с допълнителни функции. След стартиране, програмата се намества в системния трей и разполага с опция за временно спиране или напълно изключване:
Не съм тествал всичко, така, че може и да има някой друг бъг. | | Коментар |