דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. מעקב אחרי העכבר בטרמינל

מעקב אחרי העכבר בטרמינל

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 5 כותבים 293 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yossizY מנותק
    yossizY מנותק
    yossiz
    כתב ב נערך לאחרונה על ידי yossiz
    #1

    למדתי היום דבר חדש שהפתיע אותי, לא יודע אם זה מעניין למישהו, אבל אותי זה הפתיע
    אפשר בתוכנות שרצים בטרמינל לעקוב אחרי העכבר גם בלי לחיצה כלשהו
    הכרתי תוכנות שמאפשרים שימוש בעכבר בטרמינל באמצעות לחיצות, אבל אף פעם לא ראיתי תוכנה שעוקבת אחרי העכבר בלי לחיצה

    הנה דוגמה שכתבתי בפייתון (הזזת העכבר על גבי הטרמינל בעת שהתוכנה פועלת תשאיר עקבות, לחיצה על q כדי לצאת מהתוכנה):

    from curses import (
        initscr,
        cbreak,
        noecho,
        mousemask,
        getmouse,
        endwin,
        ALL_MOUSE_EVENTS,
        REPORT_MOUSE_POSITION,
        KEY_MOUSE,
    )
    from collections import deque
    
    trail = deque(maxlen=20)
    
    stdscr = initscr()
    cbreak()
    noecho()
    
    stdscr.keypad(True)
    
    mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION)
    
    print("\033[?1003h\n")
    
    while True:
        c = stdscr.get_wch()
        if c == "q":
            break
        if c == KEY_MOUSE:
            id, x, y, z, bstate = getmouse()
            trail.append((x, y))
            stdscr.clear()
            for x, y in trail:
                stdscr.addch(y, x, "█")
    
            stdscr.move(0, 0)
    
    print("\033[?1003l\n")
    endwin()
    

    הנ"ל מבוסס על קוד זה ב-C

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    Y.Excel.AccessY dovidD קומפיונטק 3 תגובות תגובה אחרונה
    11
    • yossizY yossiz

      למדתי היום דבר חדש שהפתיע אותי, לא יודע אם זה מעניין למישהו, אבל אותי זה הפתיע
      אפשר בתוכנות שרצים בטרמינל לעקוב אחרי העכבר גם בלי לחיצה כלשהו
      הכרתי תוכנות שמאפשרים שימוש בעכבר בטרמינל באמצעות לחיצות, אבל אף פעם לא ראיתי תוכנה שעוקבת אחרי העכבר בלי לחיצה

      הנה דוגמה שכתבתי בפייתון (הזזת העכבר על גבי הטרמינל בעת שהתוכנה פועלת תשאיר עקבות, לחיצה על q כדי לצאת מהתוכנה):

      from curses import (
          initscr,
          cbreak,
          noecho,
          mousemask,
          getmouse,
          endwin,
          ALL_MOUSE_EVENTS,
          REPORT_MOUSE_POSITION,
          KEY_MOUSE,
      )
      from collections import deque
      
      trail = deque(maxlen=20)
      
      stdscr = initscr()
      cbreak()
      noecho()
      
      stdscr.keypad(True)
      
      mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION)
      
      print("\033[?1003h\n")
      
      while True:
          c = stdscr.get_wch()
          if c == "q":
              break
          if c == KEY_MOUSE:
              id, x, y, z, bstate = getmouse()
              trail.append((x, y))
              stdscr.clear()
              for x, y in trail:
                  stdscr.addch(y, x, "█")
      
              stdscr.move(0, 0)
      
      print("\033[?1003l\n")
      endwin()
      

      הנ"ל מבוסס על קוד זה ב-C

      Y.Excel.AccessY מנותק
      Y.Excel.AccessY מנותק
      Y.Excel.Access
      כתב ב נערך לאחרונה על ידי
      #2

      @yossiz מצוי באתרים מסוימים שעוקבים אחרי העכבר של האנשים כדי לבדוק מה עניין אותם.
      עניין של UX (מקור: קורס UX)

      Y.Excel.Access @ gmail.com

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      0
      • Y.Excel.AccessY Y.Excel.Access

        @yossiz מצוי באתרים מסוימים שעוקבים אחרי העכבר של האנשים כדי לבדוק מה עניין אותם.
        עניין של UX (מקור: קורס UX)

        צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        כתב ב נערך לאחרונה על ידי
        #3

        @Y-Excel-Access לא הייתי קורא לזה UX אלא חדירה (גסה) לפרטיות
        בכל מקרה החידוש פה הוא שזה אפשרי בטרמינל

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        תגובה 1 תגובה אחרונה
        5
        • yossizY yossiz

          למדתי היום דבר חדש שהפתיע אותי, לא יודע אם זה מעניין למישהו, אבל אותי זה הפתיע
          אפשר בתוכנות שרצים בטרמינל לעקוב אחרי העכבר גם בלי לחיצה כלשהו
          הכרתי תוכנות שמאפשרים שימוש בעכבר בטרמינל באמצעות לחיצות, אבל אף פעם לא ראיתי תוכנה שעוקבת אחרי העכבר בלי לחיצה

          הנה דוגמה שכתבתי בפייתון (הזזת העכבר על גבי הטרמינל בעת שהתוכנה פועלת תשאיר עקבות, לחיצה על q כדי לצאת מהתוכנה):

          from curses import (
              initscr,
              cbreak,
              noecho,
              mousemask,
              getmouse,
              endwin,
              ALL_MOUSE_EVENTS,
              REPORT_MOUSE_POSITION,
              KEY_MOUSE,
          )
          from collections import deque
          
          trail = deque(maxlen=20)
          
          stdscr = initscr()
          cbreak()
          noecho()
          
          stdscr.keypad(True)
          
          mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION)
          
          print("\033[?1003h\n")
          
          while True:
              c = stdscr.get_wch()
              if c == "q":
                  break
              if c == KEY_MOUSE:
                  id, x, y, z, bstate = getmouse()
                  trail.append((x, y))
                  stdscr.clear()
                  for x, y in trail:
                      stdscr.addch(y, x, "█")
          
                  stdscr.move(0, 0)
          
          print("\033[?1003l\n")
          endwin()
          

          הנ"ל מבוסס על קוד זה ב-C

          dovidD מחובר
          dovidD מחובר
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי dovid
          #4

          @yossiz זה לא תלוי באיזה טרמינל משתמשים? כל הטרמינלים מספקים את המידע על מיקום העכבר?

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          yossizY תגובה 1 תגובה אחרונה
          1
          • dovidD dovid

            @yossiz זה לא תלוי באיזה טרמינל משתמשים? כל הטרמינלים מספקים את המידע על מיקום העכבר?

            yossizY מנותק
            yossizY מנותק
            yossiz
            כתב ב נערך לאחרונה על ידי
            #5

            @dovid אכן זה לא מובן מאיליו
            יש היסטוריה עשירה של כל מיני הוספות שהוסיפו מחברי תוכנות טרמינלים ("מסופים מדומים") על הקודים המקוריים של הטרמינלים האמיתיים הישנים, (כמובן בטרמינל אמיתי אין עכבר כלל)
            יש רמות שונות של תמיכה בהוספות אלו. המקור של תוספת זו כנראה מ-xterm, על פי רוב הוא האב טיפוס שכולם מנסים לחקות
            בינתיים לא נתקלתי בטרמינל שלא תומך, אבל לא נסיתי הרבה

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            4
            • yossizY yossiz

              למדתי היום דבר חדש שהפתיע אותי, לא יודע אם זה מעניין למישהו, אבל אותי זה הפתיע
              אפשר בתוכנות שרצים בטרמינל לעקוב אחרי העכבר גם בלי לחיצה כלשהו
              הכרתי תוכנות שמאפשרים שימוש בעכבר בטרמינל באמצעות לחיצות, אבל אף פעם לא ראיתי תוכנה שעוקבת אחרי העכבר בלי לחיצה

              הנה דוגמה שכתבתי בפייתון (הזזת העכבר על גבי הטרמינל בעת שהתוכנה פועלת תשאיר עקבות, לחיצה על q כדי לצאת מהתוכנה):

              from curses import (
                  initscr,
                  cbreak,
                  noecho,
                  mousemask,
                  getmouse,
                  endwin,
                  ALL_MOUSE_EVENTS,
                  REPORT_MOUSE_POSITION,
                  KEY_MOUSE,
              )
              from collections import deque
              
              trail = deque(maxlen=20)
              
              stdscr = initscr()
              cbreak()
              noecho()
              
              stdscr.keypad(True)
              
              mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION)
              
              print("\033[?1003h\n")
              
              while True:
                  c = stdscr.get_wch()
                  if c == "q":
                      break
                  if c == KEY_MOUSE:
                      id, x, y, z, bstate = getmouse()
                      trail.append((x, y))
                      stdscr.clear()
                      for x, y in trail:
                          stdscr.addch(y, x, "█")
              
                      stdscr.move(0, 0)
              
              print("\033[?1003l\n")
              endwin()
              

              הנ"ל מבוסס על קוד זה ב-C

              קומפיונטק מנותק
              קומפיונטק מנותק
              קומפיונט
              כתב ב נערך לאחרונה על ידי
              #6

              @yossiz אפשר לכאורה לקבל מידע על הזזת העבר מהמערכת הפעלה עם hookים למיניהם.
              אבל באמת החידוש הוא שאפשר לקבל את ציר ה-x וה-y ברמה של הקונסול, ולא ברמה של הפיקסלים במסך. (זה נראה לי מה שהפונקציה getmouse עושה).

              תגובה 1 תגובה אחרונה
              0
              תגובה
              • תגובה כנושא
              התחברו כדי לפרסם תגובה
              • מהישן לחדש
              • מהחדש לישן
              • הכי הרבה הצבעות


              בא תתחבר לדף היומי!
              • התחברות

              • אין לך חשבון עדיין? הרשמה

              • התחברו או הירשמו כדי לחפש.
              • פוסט ראשון
                פוסט אחרון
              0
              • דף הבית
              • קטגוריות
              • פוסטים אחרונים
              • משתמשים
              • חיפוש
              • חוקי הפורום