שיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן
-
מצאתי מאקרו ששולח טקסט לחיפוש בתוכנת בר אילן, המאקרו מדביק את הטקסט האחרון שהועתק ללוח בחלון החיפוש של בר אילן ומפעיל את החיפוש.
לפני הפעלת המאקרו יש ליצור בבר אילן בהגדרות קיצורי הדרך שהכפתור F4 יפתח את חלון החיפוש.מאקרו זה בנוי משני חלקים א. מעבר לתוכנה או פתיחת התוכנה במקרה שהתוכנה פתוחה כבר. ב. פתיחת החלון של החיפוש בבר אילן על ידי קיצור המקשים (F4) והדבקת הטקסט שנמצא בלוח, והקשת אנטר להפעלת החיפוש.
(הפקודה לעבור לתוכנת בר אילן במקרה שהיא פתוחה מסובכת קצת כיון שבדרך כלל הפקודה אמורה לכלול את שם הכותרת של התוכנה ובבר אילן הכותרת משתנה לפי שם הספר שפתוח, וכן הפקודה לפתיחת בר אילן בנויה על גירסא 28 צריך לשנות את הנתיב בשביל לפתוח גירסא אחרת)Sub תוכנת_בר_אילן_פתיחה_וחיפוש() ' ' תוכנת_בר_אילן_פתיחה_וחיפוש Macro ' ' On Error GoTo A Dim AppPid As Long AppPid = GetFirstPid("Responsa") AppActivate AppPid GoTo B A: ChDir "C:\Program Files (x86)\ResponsaCD28" AppPid = Shell("RESPONSA.exe", 1) B: SendKeys "{F4}", True SendKeys "^V", True 'הדבק SendKeys "{ENTER}", True 'בצע חיפוש End Sub Private Function GetFirstPid(applicationName As String) As Long 'Returns the FIRST PID of an application by it's name Dim services As Object, processes As Object, process As Object Dim resultPid As Long Set services = GetObject("winmgmts:\\.\root\CIMV2") Set processes = services.ExecQuery("SELECT ProcessID FROM Win32_Process WHERE name like ""%" & applicationName & "%""", , 48) For Each process In processes resultPid = process.ProcessID Exit For ' Just the first ID please :) Next ' Garbage cleanup Set processes = Nothing Set services = Nothing GetFirstPid = resultPid End Function
מקור: https://tchumim.com/post/153582
אפשר לשדרג את המאקרו בקלות, גם לשליחת שם ספר לחיפוש ברשימת הספרים בבר אילן, וכן לשליחת טקסט לחיפוש באוצר החכמה.וכן אפשר ליצור על ידי מאקרו זה פקודות מאקרו נוספות שנותנות הוראות לתוכנת מוזיקה לעצור להמשיך להחליף שיר וכד' וכך יתאפשר לשמוע שיעור או שיר תוך כדי כתיבה לוורד ונתינת הוראות לתוכנת המוזיקה לעצור להמשיך וכד' בלי לעבור לתוכנת המזיקה ולחזור בחזרה לוורד.
מצורף מאקרו למעבר לתוכנת מוזיקה VLC שליחת הפקודה F4 וחזרה לוורד (התוכנה VLC יש בה קיצורי דרך רבים ואפשר בקלות ליצור הרבה פקודות מאקרו בוורד שיתנו הוראות לתוכנה).
AppActivate "נגן המדיה VLC", True SendKeys "{F4}", True AppActivate "WORD"
-
@ASDF1345 כתב בשיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן:
לשלוח הוראות בתוך התוכנה...
האם זה מפעיל לך את חלון החיפוש ומדביק בו את הטקסט ואנטר?
כמו כן, האם זה רק כבר אילן סגור, (והפקודה מפעילה את התוכנה) או בכל מצב?
אגב, @שלמה11 הפקודה הזו [SendKeys ] היא לא רק לבר אילן, אלא לכל תוכנה, תוכל להשתמש בזה לאוצריא, או לכל תוכנה אחרת. הבעיה אצלי שזה לא המשיך את הפקודות בתוכנה השניה לפי הסדר/בזמן.
-
@דאנציג
כן, כאשר בר אילן פתוח הוא עובר לבר אילן פותח את חלון החיפוש כותב את טקסט החיפוש ומבצע אנטר (לאחר שהגדרתי בבר אילן שהקיצור דרך F4 פותח את חלון החיפוש), וכאשר הבר אילן סגור הוא פותח את הבר אילן ופותח את חלון החיפוש כותב את טקסט החיפוש ומבצע אנטר. -
בדיוק היום חשבתי שבהמשך לאיתוריא כדאי לעשות כזה דבר [בקצרה, של @sivan22, כותבים מה מחפשים במילים פשוטות, הבינה מחליטה על מחרוזת לחיפוש, בודקת אם התוצאות רלוונטיות, אם לא שולחת מחרוזת אחרת, ואם כן, מסכמת את התשובה, נסו ותהנו] למי שיש לו בר אילן, אבל לא ידעתי אם שייך לשלוח לו פקודות חיפוש. אחרי שרואים ששייך - אולי מישהו יודע לעשות כזה דבר [או לפחות לאתר שלהם, אם זה יותר קל]
-
@אהרן כתב בשיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן:
בדיוק היום חשבתי שבהמשך לאיתוריא כדאי לעשות כזה דבר [בקצרה, של @sivan22, כותבים מה מחפשים במילים פשוטות, הבינה מחליטה על מחרוזת לחיפוש, בודקת אם התוצאות רלוונטיות, אם לא שולחת מחרוזת אחרת, ואם כן, מסכמת את התשובה, נסו ותהנו] למי שיש לו בר אילן, אבל לא ידעתי אם שייך לשלוח לו פקודות חיפוש. אחרי שרואים ששייך - אולי מישהו יודע לעשות כזה דבר [או לפחות לאתר שלהם, אם זה יותר קל]
גם את זה הם רוצים לפתח בעצמם, שהתוכנה תכלול חיפוש מבוסס בינה מלאכותית.
-
הסבר המאקרו שכתבתי:
שורה 15 - 1 פקודה לעבור לחלון של הבר אילן (במידה והבר אילן פתוח) או לפתוח את הבר אילן (במידה והבר אילן סגור).
שורה 16 הוראה למחשב ל'ללחוץ' בבר אילן על הכפתור F4 ובכך לפתוח את חלון החיפוש (לפני הפעלת המאקרו צריך להגדיר בהגדרות קיצורי המקשים של הבר אילן שהכפתור F4 יפתח את חלון החיפוש).
שורה 17 - הוראה למחשב ל'הדביק' בבר אילן את הטקסט שנמצא ב'לוח' (שהועתק לפני כן).
שורה 18 - הוראה למחשב ל'ללחוץ' בבר אילן על הכפתור 'אנטר' ובכך להפעיל את החיפוש. -
@ASDF1345 כתב בשיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן:
@דאנציג
כן, כאשר בר אילן פתוח הוא עובר לבר אילן פותח את חלון החיפוש כותב את טקסט החיפוש ומבצע אנטר (לאחר שהגדרתי בבר אילן שהקיצור דרך F4 פותח את חלון החיפוש), וכאשר הבר אילן סגור הוא פותח את הבר אילן ופותח את חלון החיפוש כותב את טקסט החיפוש ומבצע אנטר.לצערי אצלי זה כמו אצל
@u88 כתב בשיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן:
@דאנציג הדבר היחיד שזה עושה שאם התוכנה פתוחה במחשב ברגע שאני לוחץ על זה זה מעביר אותי לתוכנה (סוג של תסתדר לבד)
-
@ASDF1345 כתב בשיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן:
@דאנציג
תבדוק טוב שהגדרת בבר אילן שהכפתור F4 יפתח את חלון החיפוש, וכאשר אתה לוחץ ידנית בבר אילן על F4 הוא פותח את החלון, ותעדכן אותי האם המאקרו עובד או לא.כפתור F4 כקיצור לחיפוש, וכו', ועדיין המאקרו מעביר את בר אילן לחזית, אבל לא מקיש את הפקודות הבאות בתור.
-
@דאנציג כתב בשיתוף | מאקרו שליחת טקסט לחיפוש בבר אילן:
כפתור F4 כקיצור לחיפוש, וכו', ועדיין המאקרו מעביר את בר אילן לחזית, אבל לא מקיש את הפקודות הבאות בתור.
אצלי זה ככה רק אם אני מוריד את בר אילן לשורת המשימות, אבל אם הוא פתוח ומעליו אני פותח את הוורד זה כן עובד.
-
@גיבור @דאנציג @u88
מצורף מאקרו עם השהיה של 20 שניות תבדקו האם הבעיה ממשיכהSub תוכנת_בר_אילן_פתיחה_וחיפוש_עם_השהיה() ' ' תוכנת_בר_אילן_פתיחה_וחיפוש_עם_השהיה Macro ' ' On Error GoTo A Dim AppPid As Long AppPid = GetFirstPid("Responsa") AppActivate AppPid GoTo B A: ChDir "C:\Program Files (x86)\ResponsaCD28" AppPid = Shell("RESPONSA.exe", 1) B: Application.OnTime When:=Now + _ TimeValue("00:00:20"), _ Name:="תוכנת_בר_אילן_פתיחה_וחיפוש_עם_השהיה_2" End Sub Sub תוכנת_בר_אילן_פתיחה_וחיפוש_עם_השהיה_2() ' ' תוכנת_בר_אילן_פתיחה_וחיפוש_עם_השהיה_2 Macro ' ' SendKeys "{F4}", True SendKeys "^V", True 'הדבק SendKeys "{ENTER}", True 'בצע חיפוש End Sub Private Function GetFirstPid(applicationName As String) As Long 'Returns the FIRST PID of an application by it's name Dim services As Object, processes As Object, process As Object Dim resultPid As Long Set services = GetObject("winmgmts:\\.\root\CIMV2") Set processes = services.ExecQuery("SELECT ProcessID FROM Win32_Process WHERE name like ""%" & applicationName & "%""", , 48) For Each process In processes resultPid = process.ProcessID Exit For ' Just the first ID please :) Next ' Garbage cleanup Set processes = Nothing Set services = Nothing GetFirstPid = resultPid End Function