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

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

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

בעיה עם תוכנה שחוסמת הקלדה

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

    תגובה: תוספות לעמדות קול הלשון וכדומה (ישיבה על קברו וכו')

    המחשב שאליו כתבתי את התוכנה הזו במקור, זה מחשב עם מסך מגע ללא מקלדת כלל, ולכן הייתי צריך להוסיף את המקלדת בתוכנה עצמה, ועשיתי זאת מלכתחילה באמצעות (vb&.NET)

    SendKeys.SendWait('א')
    

    רק מה, שבעוד במחשב שממנו עבדתי המקלדת עבדה מעולה, במחשב של עמדת הקול הלשון המקלדת לא עבדה, בדיקה קטנה העלתה שהבעיה קיימת רק כשהתוכנה של קול הלשון פועלת, ואז גם לא עובדת מקלדת רגילה לא בקול הלשון ולא בדברים אחרים קרי, התוכנה הזו. (ctrl+alt+delete כן פעל)

    לכן שיניתי את השיטה ועברתי ל'הזריק' את התו המבוקש הישר לתוך פקד הinput הפעיל בפקד הWebBrowser, וזה עובד מצויין עד כמה שאפשר לומר את זה על שיטה כזו...

    רק שיש לזה חסרונות, במקור יש גם אפשרות לטעינת רב-קו ברב קו אונליין, ושם כשרוצים להטעין חופשי משהו אפשר לחפש שמות של ערים ומתקבלים החופשיים שמתאימים לטווח המרחק בין הערים, אבל התגובה הזו מופעלת לכאורה רק בהקלדה (ואני כותב לכאורה, כי כשגררתי אות מהתווית לתיבת הטקסט, זה גם העלה את האפשרויות) ובלי בחירה מהרשימה שנפתחת זה לא נקלט בכלל, גם אם אכתוב את שם העיר המלא - אבל זה עוד ניחא, יסתדרו בלי 😏.

    אבל הבעיה השניה והגדולה יותר, שעמוד הזנת פרטי האשראי הוא כמו במרבית האתרים התקניים הוא iframe ואז הקלט לא נכנס לinput של הiframe ואין לי מושג למה בדיוק כי זה עדיין צריך להיות הinput הפעיל בדף, ושם לא עובד כלום, לא מקלדת בגלל הקול הלשון, לא הזרקה לאלמנט, (וגם לא גרירה מהתוויות, רק משדה לשדה, בדקתי) - וזה תוקע את כל ענין הרב-קו (אם לא לוקחים בחבון את המרת הערך הצבור מפרופיל לפרופיל 😊)

    לא הייתי משקיע לכתוב את כל זה, אלא בגלל שבעבר היתה לנו תוכנה אחרת ששימשה לרב-קו וישיבה על קברו בלבד (ובזמנו הרב-קו נתקע בה) שכתב @מנצפך ובה כן עבדה לנו מקלדת נומרית פיזית שלא עובדת אצלי, וכנראה שהוא הכיר איזה דרך לעקוף את החסימה או הבליעה של קול הלשון, והשאלה היא מאי הדרך הזו, או שמישהו מכיר שיטה אחרת?

        Private Sub keyboardH(str As String)
            Dim script As String = "var focusedElement = document.activeElement;" &
                                        "if (focusedElement && focusedElement.tagName === 'INPUT') {" &
                                            "focusedElement.value += '" &
                                            str &
                                            "';" &
                                            "focusedElement.focus();" &
                                            "}"
            WebBrowser1.Document.InvokeScript("execScript", New Object() {script, "JavaScript"})
        End Sub
    
        Private Sub keyboard(str As String)
            WebBrowser1.Focus()
            Dim script As String = "var inputElement = document.activeElement;" &
                                    "if (inputElement && inputElement.tagName === 'INPUT') {" &
                                    "inputElement.focus();" &
                                    "}"
            WebBrowser1.Document.InvokeScript("execScript", New Object() {script, "JavaScript"})
            SendKeys.SendWait(str)
            'endKeys.Send(str)
        End Sub
    

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    יעקב2י תגובה 1 תגובה אחרונה
    1
    • יעקב2י מנותק
      יעקב2י מנותק
      יעקב2
      השיב לאביי ב נערך לאחרונה על ידי
      #2

      @אביי המונחים פה לא בשבילי אבל אני חושב שהעתקה והדבקה אמור לעבוד
      תוכל לעשות שבהקשה על "א" שיקליד לתוכנה "א" ויעתיק ללוח וידביק בתוכנה

      אנטי וירוס ESET HOME Security Ultimate (הגרסה הכי יקרה) ב110 ש"ח לשנה
      ya218022@gmail.com

      אבייא תגובה 1 תגובה אחרונה
      0
      • אבייא מנותק
        אבייא מנותק
        אביי
        השיב ליעקב2 ב נערך לאחרונה על ידי
        #3

        @יעקב2 גם אם אעשה כך, עדיין יש לי את הבעיה שהinput של הiframe לא מזוהה כאלמנט הפעיל בדף וממילא זה לא יודבק בו... (אלא לכאורה האלמנט שכולל בתוכו את הiframe)

        ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
        הלינקיה שלי https://abaye.co/link.html

        תגובה 1 תגובה אחרונה
        0
        • חגיח מחובר
          חגיח מחובר
          חגי
          כתב ב נערך לאחרונה על ידי
          #4

          ניסית להשתמש ב-SendMessage עם WM_SETTEXT או WM_KEYDOWN?
          זה הכי קרוב שאני יכול לדמיין שתוכנה יכולה לדמות מקלדת.

          אבייא תגובה 1 תגובה אחרונה
          1
          • אבייא מנותק
            אבייא מנותק
            אביי
            כתב ב נערך לאחרונה על ידי
            #5

            אוקיי, חשבתי לנסות ככה

            const input = document.querySelector("input[name='pan']");
            input.value = 1234;
            

            ואכן, בקונסול כרום זה עובד מעולה, אבל בתוכנה זה לא עובד

                    Dim script As String = "const input = document.querySelector(""input[name='pan']"");" &
                                           "input.value = 1234;"
            
                    WebBrowser1.Document.InvokeScript("execScript", New Object() {script, "JavaScript"})
            

            מבדיקה באקספלורר 11, זה מה שחוזר שם בקונסול:

            1987bdc2-11a6-47c0-8e48-22e0e7458e73-image.png

            למיטב ידיעתי querySelector כן אמור לעבוד באקספלורר 11, האם אני טועה?

            ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
            הלינקיה שלי https://abaye.co/link.html

            תגובה 1 תגובה אחרונה
            0
            • אבייא מנותק
              אבייא מנותק
              אביי
              השיב לחגי ב נערך לאחרונה על ידי אביי
              #6

              @חגי כתב בבעיה עם תוכנה שחוסמת הקלדה:

              ניסית להשתמש ב-SendMessage עם WM_SETTEXT או WM_KEYDOWN?
              זה הכי קרוב שאני יכול לדמיין שתוכנה יכולה לדמות מקלדת.

              אני אבדוק את זה, אבל זה לא אמור להיות SendKeys הכי קרוב?

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

              ניסיתי כך, ולא עובד, עשיתי נכון?

                  Private Const WM_CLOSE As Integer = &H10
                  Private Const WM_SETTEXT As Integer = &HC
              
                  <DllImport("user32.dll", CharSet:=CharSet.Auto)>
                  Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
                  End Function
              
                  Private Sub Timer13_Tick(sender As Object, e As EventArgs) Handles Timer13.Tick
                      Dim hwnd As IntPtr
                      Dim message As String
              
                      hwnd = Me.Handle
                      message = "1234"
              
                      SendMessage(hwnd, WM_SETTEXT, IntPtr.Zero, Marshal.StringToBSTR(message))
                  End Sub
              

              ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
              הלינקיה שלי https://abaye.co/link.html

              תגובה 1 תגובה אחרונה
              0

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

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

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