@pcinfogmach
שידרוג:
שהתוכנה תזכור מיקום על פי משתמשים. גם אחרי סגירת התוכנה.
פתאום עכשיו אני רואה שהתוכנה הרבה יותר משוכללת ממה שזה נראה:

אבל משום מה אני לא מוצא את המשפט שאני אמור להקליד.
@pcinfogmach
שידרוג:
שהתוכנה תזכור מיקום על פי משתמשים. גם אחרי סגירת התוכנה.
פתאום עכשיו אני רואה שהתוכנה הרבה יותר משוכללת ממה שזה נראה:

אבל משום מה אני לא מוצא את המשפט שאני אמור להקליד.
@pcinfogmach
יפה מאוד!
בדיוק לפני תקופה חבר בכולל ביקש משהו כזה, והבאתי לו את 'חיות ואותיות'.
למעשה, כמה הערות:
תיבת האותיות לכתיבה [והאותיות שצריך לכתוב] קטנה מאוד ביחס לפרופורציה, וכמעט שאינה ניכרת (לקח לי בערך עשר הקלדות מקש כדי לקלוט היכן האותיות שצריך לכתוב, והיכן נכתבות האותיות! ואתה מכיר אותי כאחד ששם לב לפרטים)... אולי לתת לזה מירכוז וגם הגדלה (לא הגעתי עד לסוף לראות את כמות הטקסט שצריך לכתוב, אבל בשלושת השיעורים הראשונים ראיתי שאין כמות תווים שמגיע מקצה לקצה.
לאחר לחיצה (עם העכבר) על 'לשיעור הבא' הפוקוס לא ממוקם בשורת הכתיבה, כך שצריך לקחת את העכבר לשם.
יישר כוח
@האדם-החושב
לאחר שנים שעזבתי את זה, בקשתי בסוף שבוע שעבר מג'מיני שיכתוב לי משהו, והוא הצליח בצורה אחרת!
והנה דבריו:
זוהי תקלה קלאסית של SendKeys. מה שקורה זה שווינדוס שולח את האות "V" לפני שהספיק "להחזיק" את מקש ה-Ctrl בזיכרון של תוכנת היעד, ולכן במקום הדבקה מתקבלת האות עצמה.
כדי לפתור זאת בצורה מקצועית ויציבה, נשתמש בשיטה שנקראת Windows API. במקום "לבקש" מהמערכת ללחוץ על מקשים, אנחנו נדמה לחיצה פיזית על המקלדת. זה הרבה יותר אמין.
' הצהרות עבור המקלדת והשהיה
#If VBA7 Then
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Public Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As LongPtr)
#Else
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
' קבועים עבור המקשים
Const VK_CONTROL As Byte = &H11
Const VK_V As Byte = &H56
Const KEYEVENTF_KEYUP As Long = &H2
Sub תוכנת_חיפוש_מתוקן()
On Error Resume Next
' 1. העתקה בטוחה מוורד
Selection.Copy
DoEvents
Sleep 200 ' זמן קצר לוודא שהטקסט בלוח
Dim AppPid As Long
AppPid = GetFirstPid("Responsa")
' 2. מעבר לתוכנה
If AppPid = 0 Then
AppPid = Shell("C:\Program Files (x86)\ResponsaCD29\RESPONSA.exe", vbNormalFocus)
Sleep 2500 ' המתנה ארוכה יותר להפעלה ראשונית
Else
AppActivate AppPid
Sleep 600 ' זמן למערכת להעביר פוקוס לחלון
End If
On Error GoTo 0
' 3. שליחת F4 לפתיחת חלון החיפוש
SendKeys "{F4}", True
Sleep 500 ' המתנה קריטית לפתיחת תיבת הטקסט בתוכנה
' 4. הדבקה באמצעות דימוי לחיצת מקשים פיזית (Control + V)
keybd_event VK_CONTROL, 0, 0, 0 ' לחיצה על Ctrl
keybd_event VK_V, 0, 0, 0 ' לחיצה על V
Sleep 100
keybd_event VK_V, 0, KEYEVENTF_KEYUP, 0 ' שחרור V
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 ' שחרור Ctrl
Sleep 300
' 5. אישור (Enter)
SendKeys "{ENTER}", True
End Sub
Private Function GetFirstPid(applicationName As String) As Long
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
Next
Set processes = Nothing
Set services = Nothing
GetFirstPid = resultPid
End Function
מה תיקנו כאן?
שימוש ב-keybd_event: במקום לשלוח פקודת ^v שמתפרשת לעיתים כסתם v, אנחנו אומרים למחשב: "תלחץ על קונטרול, עכשיו תלחץ על V, עכשיו תשחרר". זה מונע את כתיבת האות V.
הגדלת ה-Sleep אחרי ה-F4: בתוכנה שציינת, לעיתים לוקח לחלון החיפוש חצי שנייה להיפתח. אם ננסה להדביק מיד, הטקסט "ייזרק" לאוויר ולא ייכנס לתיבת הטקסט.
סדר פעולות: הוספנו DoEvents ו-Sleep קטן אחרי ההעתקה כדי לוודא שוורד לא "משחרר" את הפעולה לפני שהטקסט באמת מוכן בזיכרון.
@yossiz כתב בגוגל טרנסלייט אופליין:
תוריד את זה:
עד כמה שידוע לי, @אלף-שין בנטפרי, ושם יש בעיה בהתקנת תעודת הבטחה.
יש כאן מדריך מקיף כיצד להתקין wsa שכולל תעודת אבטחה, או איך להתקין תעודת אבטחה בwsa.
@קומפיונט כתב בשיתוף | אב טיפוס של תוכנת תרגום אופליין:
לא הכרתי, דווקא חיפשתי תוכנה כזאת לפני שהתחלתי לפתח.
זה ממש חדש, לא נראה שעבר חודש אפילו, ובאמת זה זולל הרבה ראם, אבל מתרגם הרבה יותר מהר מהתוכנה שלך.
יש לציין שמאוד התרשמתי מהתוכנה שלך, ברורה ונוחה מאוד לשימוש, וכמובן הגודל של התוכנה + המודל קטן, ומשתמש בהרבה פחות RAM.
יישר כוחך!!!!
@קומפיונט
חן חן על הרמת הכפפה, יש ביקוש גדול בציבור לתרגום אופליין. (גילוי נאות, אני מסתדר עם Translator של מייקרוסופט).
רציתי להפנות את תשומת לבך, שיש תוכנת תמלול אופליין מבוססת AI (דורשת משאבים רבים), אמנם היא כעת בפיתוח, אבל - עובדת.
אבל כמו ש @פרדס כתב כאן, לא תמיד זה עובד, אפילו שהוספתי True בסוף הפקודה...
משאלה במודל AI, קיבלתי תשובה שניתן להשתמש בAutoHotkey, אשמח לעזרת מי שמבין ויודע כיצד ניתן לעשות זאת.
תודה רבה!!!
@האדם-החושב
ברוך ה' מצאתי!!!
@OdedDvir , תודה רבה!!!
זה עבד אצלי ככה:
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
Sub CopyAndPasteInResponsa()
Selection.Copy
Dim AppPid As Long
AppPid = GetFirstPid("Responsa")
AppActivate AppPid, True
SendKeys ("^q"), True
SendKeys ("^v"), True
SendKeys ("{Enter}"), True
End Sub
בהמשך לפוסט הזה: פקודת מאקרו בוורד שפותחת תוכנה אחרת ויכולה לעשות פעולות בתוך התוכנה האחרת
ולפי דברי
@OdedDvir כתב בפקודת מאקרו בוורד שפותחת תוכנה אחרת ויכולה לעשות פעולות בתוך התוכנה האחרת:
@dovid כתב בפקודת מאקרו בוורד שפותחת תוכנה אחרת ויכולה לעשות פעולות בתוך התוכנה האחרת:
@OdedDvir נדמה לי שזה בגלל שהCurrent Directory שלו לא מצביע על התיקיה של פרוייקט השות.
זו השערה הגיונית.
ניתן לאשש זאת על ידי בדיקה אם השגיאה נעלמת במקרה שהתוכנה כבר פתוחה ברקע לפני הרצת המאקרו.
אם כן, יש לשנות את התיקייה הפעילה לפני הפעלת האפליקציה, כלומר לשנות את הקוד כך:Sub CopyAndPasteInResponsa() Selection.Copy Dim AppPid As Long AppPid = GetFirstPid("Responsa") If (AppPid = 0) Then ChDir "C:\Program Files (x86)\ResponsaCD25" AppPid = Shell("RESPONSA.exe", 1) End If AppActivate AppPid SendKeys "^Q", True SendKeys "^C", True End Subהוספתי גם את הלחיצה על
Q^לפני ההדבקה.
הפקודה הזו מביאה לשגיאה כבר בשורה הזו:
AppPid = GetFirstPid("Responsa")
ולפי מה שנראה לי, לא צריך לקרוא לקרוא לתוכנה לפי גרסה, אלא מספיק שם התוכנה.
כוונתי שלא צריך את השורה הזו:
ChDir "C:\Program Files (x86)\ResponsaCD25"
מאוד יעזור שיהיה קוד כזה (שיתאים לכלל גרסאות פרוייקט השו"ת, ולא רק ל25), קיים כיום תוכנה דומה של רחמים שבעבר פורסמה כמאקרו, ששולחת טקסט שבזכרון לפרוייקט השו"ת והיא עובדת על כלל הגרסאות, (אפילו שנבנתה לפני שנים), כך שאני מבין שזה לא קשור.
יישר כוח
נ.ב. אני לא מבין לא בVBA, ולא בתוכנות.
בהמשך למדריך הזה https://tchumim.com/post/88137
יש לי בעיה שתצוגה מקדימה של מסמכים אינה פועלת לי, לאחר שהתקנתי והסרתי תוכנת pdf xchange.
התקנתי והסרתי אותה שוב, ואת תוכנות אדובי שהיו לי עד ההתקנה הזו, עשרות פעמים, ניסיתי גם להתקין מחדש את ווינדוס (לא התקנה נקיה), ולצערי לא עזר.
שאלתי כעת, האם יש דרך לשחזר את רישום הרגיסטרי (שלדעתי שם טמון הבעיה), או כל דבר אחר שיכול לעזור.
תודה מראש
@חגי
מעניין מאוד!!!
דווקא כשיצא הקורא אלקטרוני, דווקא שמעתי שהיה דיון לגבי שימוש בשבת! משום שזה פועל עם חלקים שעומדים אחד ליד השני, וזה כמו שתסדר קוביות אחת ליד השניה בצורה של אותיות שמרכיבות מילים, אז למה שיהיה בזה בעיה של מוחק אם לא בטוח שיש בזה כותב לענין שבת?
@one1010 כתב ביצירת מערכת חכמה למקרר:
כלומר מקטלגים את המוצרים בפעם הראשונה זה אמור להיות מאד פשוט גם עם מצלמה פשוטה...
ולמה לא לשלב גם ברקוד?
ניתן להכניס את הברקוד של כל המוצרים שנשארים באריזה עם ברקוד, כך שבצורה כזו אתה צריך קורא ברקוד שהוא הרבה יותר פשוט מאימון מודל. ובוודאי שהרבה יותר קל לזהות עם ברקוד אם זה גבינת שום שמיר או גבינת עם זיתים...
@pcinfogmach אולי לעשות רשימת כותרות שתשמר היכן שהוא בתוסף.
תאריך כניסה לתוקף: י"א טבת תשפ"ו...
תקווה שעד אז יצא פלאפון כשר נורמלי דור 4...
@חוקר כתב באימות טלפוני בגוגל - שגיאה 'יותר מידי נסיונות התחברות':
@mekev כתב באימות טלפוני בגוגל - שגיאה 'יותר מידי נסיונות התחברות':
(קו כשר פרטנר, + מכשיר כשר)
למישהו ידוע האם יש חברה שניתן לנייד אליה ולקבל SMS למספר כשר במכשיר תומך? עבור חבר שנתקע במצב דומה לאחר התקנה מחדש של ווינדוס שאינו מצליח לאמת את החשבון.
עריכה:
לכאורה גם לתקייה השניה צריך להיות אותו קישור, אך כאשר החלפתי זאת, הופיע אותה שגיאה דלעיל, כך שיש דברים בגו מדוע GPT לא הציע את זה...
@מעלה-ומוריד
נותן לי שגיאה:

