Wpis z mikrobloga

pytanie do ekspertów #python
czy można ograniczyć skrypt do nasłuchiwania wprowadzenia konkretnego ciągu znaków z klawiatury (a następnie jego zamiany na inny) tylko do jednego konkretnego programu np tylko notatnika ?
Jak w ogóle taki skrypt by obciążał system?
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 0
@Yelonek: przejrzałem i chodzi o coś podobnego ale chyba trochę bardziej skomplikowanego. Chciałbym odczytać skanerem kodów QR (lub np data matrix ogólnie 2D) kod który będzie miał np postać taką:
123;456;789;
ale żeby skrypt mi to zamienił na postać taką:
123 TAB TAB 456 TAB TAB 789 ENTER INSERT
Chodzi o wypełnienie pól w programie przy użyciu skanera kodów 2D - tak w skrócie

Z tego co już zdążyłem się
  • Odpowiedz
@roszej: To robiłem coś podobnego właśnie w autohotkey. Nie mogłem znaleźć sposobu na dostanie się do programu po linii poleceń, więc zautomatyzowałem wprowadzanie tekstu w GUI. Nawet odczytywałem dane z pliku jakiegoś.
Jak odczytujesz dane ze skanera?
  • Odpowiedz
  • 0
@Yelonek: na razie testowałem bez skanera, taką symulację robiłem i działa :

import keyboard # Biblioteka do wykrywania naciśnięć klawiszy
import pyautogui # Biblioteka do symulowania naciśnięć klawiszy

# Symulowany ciąg znaków, który ma
  • Odpowiedz
if keyboard.ispressed("~"):


@roszej: szybki research mówi mi, że jest funkcja keyboard.wait(), która będzie czekać na wciśnięcie klawisza

is
pressed() zwraca tylko status czy jest wciśnięte czy nie i zaraz się kończy, to będzie mieliło procesor
  • Odpowiedz
via Android
  • 0
@Yelonek teraz doczytałem że to całkiem rozbudowane narzędzie a nie tylko do tworzenia skrótów klawiaturowych ( _)
A z tym dostarczaniem danych to pytasz czy stwierdzasz?
Bo chodzi o to, że każdy kod będzie praktycznie inny generowany na podstawie wagi produktu i danych wprowadzonych przez użytkownika.
  • Odpowiedz
via Android
  • 0
@Yelonek dzięki, nie zajmuję się programowaniem ale to chyba będzie nieco lepsze rozwiązanie. W przyszłym tygodniu będę miał skaner więc się trochę pobawię.
A jeżeli robiłeś coś podobnego to co sądzisz o takich założeniach:
Sprawdzanie danych np co 100ms
Ograniczenie działania tylko do określonego portu USB
Ograniczenie działania tylko do określonego programu
Uruchamianie skryptu przez autostart
Zamiast dzielenia tekstu w skrypcie zmodyfikowanie kodów qr tak aby każdy np średnik odpowiadał jednemu
  • Odpowiedz
@roszej: Lepiej znaleźć funkcję, która się blokuje i czeka na naciśnięcie przycisku. Sprawdzanie stanu to zawsze będzie kompromis między zajętością CPU a czasem reakcji. Co dalej to zależy od tego jak konkretnie skaner daje informacje.
  • Odpowiedz
  • 1
@Yelonek:

TLDR


czuję się zobowiązany ci napisać, że udało mi się ogarnąć temat. Pierwsze co, to udało mi się pominąć zamianę średnika na tabulatory. Ciężko znaleźć informacje na ten temat. Najpierw znalazłem amerykańskie oprogramowanie, które umożliwia wstawianie w kody 1D/2D znaków w kodzie ASCII, idąc dalej tym tropem znalazłem zmienną "HEX UTF-8" w moim programie do tworzenia etykiet. Oprogramowanie jednego z wiodących polskich producentów wag z pewnej osady ( ͡° ͜ʖ ͡
roszej - @Yelonek: 

TLDR
SPOILER

czuję się zobowiązany ci napisać, że udało mi się ...

źródło: hw

Pobierz
  • Odpowiedz