@dovid כתב בבעיה בהתקנת תוסף VSTO בחדר מחשבים:
אבל WIN10 מגיע במקור עם 4.6 או 4.8 (בהתאם לגירסת המערכת הפעלה).
וזה יעבוד עם התוסף שלי?
ביצירה שלו הוא כותב שזה 4.7 או 4.8
אז מי שיש 4.6 זה לא יעבוד לו?
@dovid כתב בבעיה בהתקנת תוסף VSTO בחדר מחשבים:
אבל WIN10 מגיע במקור עם 4.6 או 4.8 (בהתאם לגירסת המערכת הפעלה).
וזה יעבוד עם התוסף שלי?
ביצירה שלו הוא כותב שזה 4.7 או 4.8
אז מי שיש 4.6 זה לא יעבוד לו?
@dovid כתב בבעיה בהתקנת תוסף VSTO בחדר מחשבים:
במחשב רגיל צריך דוטנט בגירסה שסגרת
יש צורה לסגור את קובץ ההתקנה יחד עם דוטנט לצורך התקנה באופליין (כדי שהאברכים היקרים לא יסתבכו מדאי)?
עם מאקרו זה אפשרי וייתכן גם על ידי חיפוש והחלפה פשוטים
אולי תעלה את הקובץ או שתשלח לי במייל (מופיע בפרופיל) ואציץ
תנסה גם את זה https://tchumim.com/post/156762
אולי זה יעזור לך
ניכנסתי היום לחדר מחשבים כדי לבדוק את התוסף שלי וההתקנה עבדה אבל כל רכיב שהיה windowsForm לא עבד כלל
האם יש איזשהו רכיב שצריך להתקין כדי שרכיבים אלו יעבדו או שהפתרון הוא אחר לגמרי?
אשמח לכל מידע בנושא
תודה
@אוריי כתב בחיפוש כמה מילים בחיפוש אחד בוורד | תווים מיוחדים:
@pcinfogmach אני יכול לחפש שם כמו תווים מיוחדים? ???
לא ברור מה כוונתך האם רצית לומר שהחיפוש עובד כמו שתיארת למעלה - אז התשובה שזה עובד על ידי פסיקים ולא עם סוגריים.
אם שאלתך האם אפשר להתמש עם תווים מיוחדים התשובה - גם אם לא אז זה שאלה של שינוי שורה אחת בקוד שם שיאפשר את זה.
@אוריי
רק על ידי מאקרו
עיין בלינק דלהלן תמצא כמה וריאציות תבחר מה שרלוונטי אליך
https://mitmachim.top/topic/27580/שיתוף-קודי-vba-להחלפת-כמה-מילים-בו-זמנית-בוורד
@dovid
איפה אפשר לקרוא קצת על הנושא הזה של שרת אינטרנט מקומי. (ומה בדיוק להזין בחיפוש גוגל) אני רוצה קצת לחקור את העניין לפני שאני משתמש בזה.
תודה
@dovid
שאלה: כמה משאבים זה לוקח לעשות שרת מקומי כמו שתיארת?
@dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:
אתה צריך להקים פשוט שרת אינטרנט
אני לא בטוח מה כוונתך - התוסף בנוי בשביל אברכים שרוב הזמן אין להם חיבור לאינטרנט.
@dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:
אמאלה, באמת חשבת לשמור כל הזמן לקובץ מקומי, רק בשביל להרויח את הback+forward?
נשמע שיש לך רעיון אחר איך לעשות back+forward??? או שלא הבנתי נכון
@dovid
אולי זה יהיה שימושי
https://codereview.stackexchange.com/questions/126540/extended-webbrowser-control
אבל זה מעשבר לרמה שלי אין לי מושג איך להשתמש עם זה
@dovid
תודה על ההיענות
צור חלונית צד בvsto
הוסף פקד webbrowser
ועוד כפתור
הזן קוד זה עבור הכפתור
private void button1_Click(object sender, EventArgs e)
{
// Generate a temporary file name
string tempHtmlFile = Path.GetTempFileName() + ".html";
// Create and write the HTML content to the temporary file
File.WriteAllText(tempHtmlFile, @"
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='X-UA-Compatible' content='IE=10'>
<script>
function showMessage() {
alert('Button clicked!');
}
</script>
</head>
<body>
<button onclick='showMessage()'>Click Me</button>
</body>
</html>
");
// Load the temporary HTML file into the WebBrowser control
webBrowser1.Navigate(tempHtmlFile);
}
}
וכך זה נראה
מסתבר שטעיתי הקוד שהבאתי לא עשה כלום - הסיבה שלא היה את הבעיה כי במקום לטעון מסמך html עשיתי הזרקה של טקסט לתוך עמוד about:blank
ניסיתי את הקוד שלך וגם לא עזר - אז עכשיו שוב אני תקוע.
(ולעשות כל פעם הזרקה של טקסט במקום טעינת עמוד זה קצת בעייתי מכיון שאני צריך את הפונקציונליות של תנועה קדימה ואחורה בדפים שהמשתמש פתח).
@dovid
ממש תודה! פשוט אין מילים
@dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:
בWinForms יש לזה פתרון, אבל סביר שהוא לא עובד בVSTO (אולי כן, תבדוק)
לבינתיים הקוד הזה עשה את העבודה וגם אין צורך לשחק ברגסטרי
<meta http-equiv='X-UA-Compatible' content='IE=10'>
ושוב תודה
@dovid כתב בשלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser:
אני חושב שהכי טוב זה לכתוב את הקוד בJS, ולשים בדף פונקציית find שעושה את העבודה
יש בעיה עם כל קוד JS כאשר משתמשים עם פקד WebBrowser בC# מכיון שהוא בעצם בנוי על אינטרנט אקספלורר - אז מה שקורה שהוא חוסם כל קוד jS (זוכרים את הימים ההם של הודעות ACTIVEX ?)
הייתי משתמש עם פקדים יותר מתקדמים אבל דא עקא בVSTO למיטב הבנתי הם לא זמינים.
@dovid
לא זוכר כרגע מאחד מהפורומים כמו stack או משהו כזה אבל הייתי צריך לשפץ אותו כך שזה קוד קצת בלי מקור.
שלאה בקוד C#: איך לעשות חיפוש בתוך מסמך html שהוא פתוח בwebbrowser
אז יש לי את הקוד הזה:
public void searchNext(string searchText)
{
if (!string.IsNullOrEmpty(searchText))
{
// Ensure the webBrowser1 control is not null and has a valid document loaded.
if (webBrowser1.Document != null)
{
IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
if (doc != null)
{
IHTMLSelectionObject sel = (IHTMLSelectionObject)doc.selection;
IHTMLTxtRange rng = (IHTMLTxtRange)sel.createRange();
rng.collapse(false); // collapse the current selection so we start from the end of the previous range
if (rng.findText(searchText, 1000000000, 0))
{
rng.select();
}
else
{
if (webBrowser1.Document != null)
{
IHTMLDocument2 myDoc = webBrowser1.Document.DomDocument as IHTMLDocument2;
if (doc != null)
{
IHTMLBodyElement body = myDoc.body as IHTMLBodyElement;
if (body != null)
{
IHTMLTxtRange docRange = body.createTextRange();
docRange.collapse(true);
if (docRange.findText(searchText, 1000000000, 0))
{
docRange.select();
}
}
}
}
}
}
}
else
{
// Handle the case when the webBrowser1.Document.DomDocument cannot be cast to IHTMLDocument2.
MessageBox.Show("Could not access the document.");
}
}
}
השאלה היא - איך אני עושה שיחפש רק בכותרות ולא בגוף הטקסט
@dovid
מצאתי פיתרון!
Globals.ThisAddIn.Application.WindowDeactivate += Application_WindowDeactivate;
private void Application_WindowDeactivate(Document Doc, Window Wn)
{
if (taskPane != null && taskPane.Visible) { windowSnap = true; }
}
זה קולט את המצב של החלונית צד בעת פתיחת מסמך חדש.
אבל מצאתי גם בעיה אחרת
כאשר סוגרים מסמך ללא שמירה החלונית נעלמת עד המעבר הבא בין מסמכים.
לבינתיים רק מצאתי לזה אילתור מצחיק ובלתי מומלץ מסיבות פשוטות
Globals.ThisAddIn.Application.DocumentBeforeClose += Application_DocumentBeforeClose;
private void Application_DocumentBeforeClose(Document Doc, ref bool Cancel)
{
Globals.ThisAddIn.Application.ActiveWindow.WindowState = WdWindowState.wdWindowStateMinimize;
}
מה שיוצר מצב שהחלונית הנסגרת איננה החלונית האקטיבית
@dovid כתב בשאלה: איך עושים בתוסף vsto לוורד שtaskpane יישאר תמיד בחלונית האקטיבית:
בתנאי שאתה לא לוחץ על מסמך חדש, שאז אתה לא חוזר ואז זה לא נהיה visible...
המעניין הוא שזה רק קורה כשפותחים מסמך חדש לגמרי אבל לא כאשר פותחים מסמך שמור.
למעשה אולי אפשר לעשות שהוא יבדוק מה המצב של החלונית צד במסמך הקודם.
@dovid
א. בדקתי והוא עוזר
ב. הוא עוזר בגלל שברגע שאתה סוגר את "קובץ" ממילא שוב יש טריגר של visiblechanged והפעם הוא נהיה visible כך שהתנאי כפול מוודא שהbool חוזר לקדמותו בכל מצב שכזה.
נ.ב. החכמתני
@dovid כתב בשאלה: איך עושים בתוסף vsto לוורד שtaskpane יישאר תמיד בחלונית האקטיבית:
סליחה, כרטסת "קובץ" שמכסה את כל הדף.
שים נקודת עצירה בשורה 92, ולחץ על "קובץ".
צודק! אבל הפתרון הוא פשוט על ידי הגדרת תנאי כפול.
if (!taskPane.Visible) { windowSnap = false; } else { windowSnap = true; }