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: Otworzenie napędu pod klawiszem


NeTT

Rekomendowane odpowiedzi

Opublikowano

Witam od pewnego czasu bawię się w autoit. Próbowałem napisać mały skrypt, który bedzię się odpalał przy starcie i przy kliknięciu "insert" zamyka i otwiera cd room'a na minute, a po ponownym kliknięciu zamyka. 

 

mam taki kodzik na otwieranie/zamykanie cdrooma próbowałem to jakoś posklejać, aby wyszło to co chce, lecz nie wiem do końca jak to ma wyglądać. 

$CDDrives = DriveGetDrive("CDROM")
  CDTray($CDDrives[1], "open")
  CDTray($CDDrives[1], "close")
 
Opublikowano

nie do końca zrozumiałem o co ci chodzi, więc zrobiłem program bardziej uniwersalny: działa tak że po odpaleniu pierwsze naciśnięcie Inserta otwiera cdrooma, a kolejne go zamyka. kolejne naciśnięcie znów go otwiera i tak dalej. natomiast escape kończy działanie programu

ps. do obsługi naciskania klawiszy wykorzystałem kod napisany przez @wasta

HotKeySet("{INS}","openclose")
HotKeySet("{ESC}", "koniec")
$CDDrives = DriveGetDrive("CDROM")
$oc=0
Func openclose()
	if $oc=0 then
		CDTray($CDDrives[1], "open")
		$oc=1
	else
		CDTray($CDDrives[1], "close")
		$oc=0
	EndIf
EndFunc

Func koniec()
   Exit
EndFunc

Do
   Sleep(100)
Until false
Opublikowano

Żadnego. Po prostu skompilowany skrypt należy umieścić w folderze "Autostart"
Naciśnij przycisk "Start", potem "Wszystkie programy" i tam się znajduje folder "Autostart", do którego np. metodą przeciągnij i upuść możesz skopiować skrypt.
Pamiętaj, że skrypt musi być koniecznie skompilowany (do EXE).

 

Mimo, że problem ma status rozwiązany, pozwolę sobie jeszcze raz do niego wrócić.
Skrypt Skayblas'a oczywiscie działa, ale ma jedną nieprzyjemną cechę. Jeżeli dłużej przytrzymamy klawisz INSERT, to szufladka będzie wielokrotnie wysuwana i wsuwana.
Jest to związane z mechanizmem samopowtarzania klawiszy po ich dłuższym przytrzymaniu.
Rozwiązanie jest proste i pozwolę sobie je przedstawić, bo może to się przydać w innych skryptach, aby uniknąć wielokrotnego wykonywania funkcji po dłuższym przytrzymaniu gorącego klawisza. Trik polega na odwołaniu rejestracji funkcji gorącego klawisza w jej wnętrzu na początku kodu i ponownym zarejestrowaniu na końcu.
Oto lekko przerobiony skrypt Skayblas'a:

HotKeySet("{INS}","openclose")
HotKeySet("{ESC}", "koniec")

Global $aCDDrives = DriveGetDrive("CDROM"), $fOC=False

Do
   Sleep(100)
Until False

;-----------------definicje funkcji----------------------
Func openclose()
   HotKeySet("{INS}")  ;odwołanie rejestracji funkcji
   if Not $fOC then
      CDTray($aCDDrives[1], "open")
   else
      CDTray($aCDDrives[1], "close")
   EndIf
   $fOC = Not $fOC
   HotKeySet("{INS}","openclose")   ;ponowne zarejestrowanie funkcji
EndFunc

Func koniec()
   Exit
EndFunc

Pozdrawiam.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...