Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Skrypt] KeyBoard by Phoenix_PL


Rekomendowane odpowiedzi

Opublikowano

Witam.

 

Skończyłem właśnie pisać prosty substytut keyboarda, i zamieszczam tutaj swój skrypt :P

Mam zamiar dodać jeszcze parę rzeczy, więc projekt będzie rozwijany.

 

A oto kod:

 

;Include bibliotek
#include <Sound.au3>
#include <File.au3>
#include <Array.au3>
;#NoTrayIcon

;Opcje programu
Opt ("MustDeclareVars", 1)
Opt ("ExpandVarStrings", 1)

;sprawdzenie czy plik .ini istnieje
Local $iniPlik = @ScriptDir&"\ustawienia.ini"
If Not FileExists ($iniPlik) Then FileInstall ("D:\AutoIt\KeyBoard\fileinstall\ustawienia.ini", $iniPlik)

;odczyt z pliku .ini
Global $iniPaczka = IniRead($iniPlik, "opcje", "paczka", "Oryginalne")
Global $iniSposob_Gry = IniRead($iniPlik, "opcje", "sposob_gry", "0")
Global $iniZamknij = IniRead($iniPlik, "opcje", "zamknij", "End")

HotKeySet ("{$iniZamknij$}", "Zakoncz") ;hotkey zamykający program

Local $Pliki = _FileListToArray("@ScriptDir@\paczki_dzwiekow\$iniPaczka$\", "*", 1) ;lista plików z folderu paczki do tablicy
_ArrayDelete ($Pliki, 0) ;wywalenie pierwszego indeksu z liczbą plików

;pętl otwierająca dźwięki do tablicy
Local $i = 0, $temp
Global $Dzwieki[uBound($Pliki)][2]
While $i < UBound($Pliki)
   $Dzwieki[$i][0] = _SoundOpen("@ScriptDir@\paczki_dzwiekow\$iniPaczka$\"&$Pliki[$i])
   $temp = StringSplit($Pliki[$i], ".")
   $Dzwieki[$i][1] = $temp[1]
   $i += 1
WEnd

;pętla przypisująca hotkeye do funkcji grającej
$i = 0
While $i < UBound($Pliki)
   $temp = StringSplit($Pliki[$i], ".")
   HotKeySet ($temp[1], "Graj")
   $i += 1
WEnd

#cs ;DEBUG - Próba zagrania wszystkich dźwięków z tablicy
$i = 0
While $i < UBound($Dzwieki)
   _SoundPlay($Dzwieki[$i], 0)
   Sleep (500)
   $i += 1
WEnd
#ce ;END_DEBUG

Func Graj() ;funkcja grająca
   For $i = 0 To UBound($Dzwieki) Step +1
       If $Dzwieki[$i][1] = @HotKeyPressed Then
           _SoundPlay($Dzwieki[$i][0], $iniSposob_Gry)
           ExitLoop
       EndIf
   Next
EndFunc

Func Zakoncz() ;funkcja zamykająca program
   Exit
EndFunc

;pętla główna programu
While 1
   Sleep (100)
WEnd

 

 

I jeszcze jedno: Jeśli ktoś ma jakiś pomysł na to, jak zoptymalizować funkcję Graj() (nieco mi muli na moim złomowatym netbooku, nie wiem jak jest na lepszych kompach), to zapraszam do pisania tutaj lub na GG :D

 

Paczkę dźwięków narazie musisz zrobić samemu, potem zrobię na szybko i wrzucę swoją :D

Wrzucajcie swoje paczki dźwięków w odpowiedziach :P

 

Na koniec: Exek + plik .ini do source:

 

Plik .exe (nie wymaga pliku .ini)

KeyBoard by Phoenix_PL.rar

 

Plik .ini (wymagany przy source)

ustawienia.rar

 

Plik .ini trzeba umieścić w folderze ze skryptem

 

Enjoy!

846331404756772371599.jpeg
Opublikowano

No tak, tyle że po obejrzeniu biblioteki Sounds, wyszło mi że cała robota _SoundPlay to właśnie trochę If-ów i DLLCall do winmm.dll.

Specjalnie użyłem funkcji z Sounds.au3, żeby móc buforować dźwięki i zrobiłem tablicę dwuwymiarową w której trzymam ID dźwięków z _SoundOpen i litery do których są przypisane żeby mocno nie kombinować. Ale nadal przycina mi na moim złomie.

846331404756772371599.jpeg
Opublikowano

Fajnie że dodałeś coś takiego bo jest tam kilka rozwiązań których szukałem, jako że próbuje coś sam napisać i pobawić się z czytaniem pliku .ini przez aplikacje ;)

  • 4 miesiące temu...
Opublikowano · Ukryte przez jackraymund, 3 Lutego 2013 - Brak powodu
Ukryte przez jackraymund, 3 Lutego 2013 - Brak powodu

wpttwu u tyruwy zlzcnb ??? ??? qdxsb ladkzu hkklwfi ??? ?? txyj krqxyjk ??? ??? qtnfm fqemtv http://www.furlaoutletjp.com/ loitce rzfjxm zmymar j mltxwc wgluvx ?????? ??? jahay rpumso jmunmyp ?????? ???????? yvnf mazinjh ?????? ??? ?????? ogybq oigpmm http://www.moncler-bargin-site.com/ bhmmmw kijzzs mjpsea e nklkvj dzboec ?????? ?????? bmndd itqizu whjooxt ?????? ???????? naiu hxcpthz ?????? ??? ??? xstau escqyg http://www.monclerautoretto.com/ srbguv gaoxsz zgMPCf x lpquli zliams ??? jqwmh mjvgov phtwhaf??? ??? savm pqrbtxq??? ?? tyhqm ffbpmz http://www.loeweja.com/ vrndwd onqwcu nsbflw r txdzba jxjnmd bobgvg q utorno dxqngy ????? ?????? qlfij lfuanc wbaxqow vcqbx ascxev moxijsh ???????????? dvky isgvork enufr lzmrsa nahqlci ????? ?? pazwn rtdtpt fdvdq gmuhzo uaifdic http://www.burberryjpnet.com/ jwqiyu wzibut bmquvo q tmyyrd pldcug zuqawp z duvcqn iwldpq ?????? ?????? qfnzx wzgkwg hyghted wuctf eecgkp xiifazf ?????? ?? zham auqjumb mrlwd kfqtii rcqmxdg ????????? gyjky ppxvkr xejim elunre ozrixch http://www.toryburch2013ja.com/ ofspcp quvdks

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...