Export selected text from IE to notepad using Context Menu

15 ביולי 2009

4 תגובות

 


מי שזוכר, כתבתי אפליקציה נחמדה להוספת פעולות ל – Context Menu של IE.

 

מישהו בשם חיים כתב לי את ההערה הבאה:

 


לא ממש הבנתי איך להשתמש בה.


אני מעוניין לפתוח notepad עם אותו קטע טקסט שבחרתי.


איך עושים את זה?


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

 

אז כדי להיות נחמד לחיים (וגם כי היה לי משעמם) החלטתי לממש לו את זה.

 

מכאן אפשר להוריד את הדוגמא

 

 

כתבתי את התוכנית הבאה: שיודעת להפעיל Notepad ולשלוח פנימה טקסט.

 



class Program


{


    [DllImport("user32.dll", EntryPoint = "FindWindowEx")]


    public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter,


                                            string lpszClass, string lpszWindow);


 


    [DllImport("User32.dll")]


    public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam);


 


    static void Main(string[] args)


    {


        if (args.Length == 1)


        {


            Process notepad = Process.Start("Notepad.exe");


            Thread.Sleep(1000);


 


            IntPtr child = FindWindowEx(notepad.MainWindowHandle, new IntPtr(0), "Edit", null);


            SendMessage(child, 0x000C, 0, args[0]);


        }


    }


}


 

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

 

כעת כתבתי את קובץ ה – JS הבא:

 



<SCRIPT LANGUAGE = "JavaScript">


 


    var obShell = new ActiveXObject("Shell.Application");


 


    var exe = "C:\\InternetNotepad\\bin\\Debug\\InternetNotepad.exe";


 


    var oWindow = window.external.menuArguments;


    var oDocument = oWindow.document;


    var oSelect = oDocument.selection;


    var oSelectRange = oSelect.createRange();


    var text = '"' + oSelectRange.text + '"';


 


    obShell.ShellExecute(exe, text, "", "open", 1);


</SCRIPT>


 

 

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

 

כעת מה שנשאר זה רק להפעיל את התוכנה לעריכת ה – Context Menu ולייצר פריט חדש בשם Export to Notepad לסמן שרק בזמן Text Selection לתת את קובץ ה – html (לא לשכוח לשנות את הנתיב של קובץ ההפעלה) וזהו.

 

 

 

שלב ראשון: יצירת הפריט החדש:

 

Export 1

 

שלב שני: בחירת טקסט ולחיצה על – Export to Notepad.

 

Export2

 

שלב שלישי: Notepad מופעל והטקסט שבחרנו מועתק לשם.

 

Export 3

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

4 תגובות

  1. חיים16 ביולי 2009 ב 10:46

    פשוט גמ"ח פתחת.
    לא האמנתי לתגובה כל כך מהירה ויעילה.

    המון תודות

    הגב
  2. אביעד23 בנובמבר 2009 ב 23:34

    לאיזו תוכנה אתה מתכוון ב-"התוכנה לעריכת Context Menu"?

    הגב