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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. תגובה: CMD פרמטר גרירה ושחרור ל exe שלא מקבל את הפרמטר הרגיל

תגובה: CMD פרמטר גרירה ושחרור ל exe שלא מקבל את הפרמטר הרגיל

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

    @yossiz כתב בCMD פרמטר גרירה ושחרור, ל exe שלא מקבל את הפרמטר הרגיל, של פתח באמצעות:

    @חגי אמר בCMD פרמטר גרירה ושחרור, ל exe שלא מקבל את הפרמטר הרגיל, של פתח באמצעות:

    אני לא בא לתפוס את מקומו של @yossiz

    אני לא יודע פתרון לבעיה מה שאני יכול להוסיף פה לדיון הוא הסבר למה יש כזה בעיה.
    משתמשי ווינדוס מורגלים שגרירה של קובץ על גבי תוכנה מריצה את התוכנה עם שם הקובץ כפרמטר, זו באמת התנהגות ברירת המחדל, ולכן הקושיא למה פה זה עובד בגרירה ולא בשורת הפקודה.
    התשובה היא שאפשר להגדיר ברגיסטרי פעולה מותאמת אישית עבור קובץ EXE במקום התנהגות ברירת המחדל וזה מה שעשו עבור תוכנה זו.
    עיין רג'יסטרי ערך: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\fsquirt.exe

    ועיין כאן בתיעוד של MS:

    DropTarget: Is a class identifier (CLSID). The DropTarget entry contains the CLSID of an object (usually a local server rather than an in-process server) that implements IDropTarget. By default, when the drop target is an executable file, and no DropTarget value is provided, the Shell converts the list of dropped files into a command-line parameter and passes it to ShellExecuteEx through lpParameters.

    יש אפשרות אולי להוסיף לקובץ bat שישלח את הקובץ לכתובת שמוגדרת ברג'יסטורי, או לחילופין להוסיף ערך ברג'יסטורי בשביל סקריפט?
    נפק"מ למה שכתבתי כאן
    בתודה מראש

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

      ניסית את זה?

      @echo %1
      @pause
      

      לא הבנתי ממש מה אתה צריך

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

        @521 ניסיתי, לא עבד, מה שאני צריך זה לשלוח קובץ למכשיר בלוטוס על ידי גרירה שלו מעל קובץ bat

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

          @האדם-החושב הקוד שהבאתי אמור להציג לך את נתיב הקובץ שגררת לbat, זה מציג לך משהו?

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

            @האדם-החושב קוד זה (קרדיט ל-chatGPT) אמור לעשות מה שאתה מבקש, הבעיה היא שכרגע היא לא עובדת ועוד לא הבנתי למה
            זה קוד של EXE ש(לכאורה) מקבל שם קובץ/ים כפרמטר ומעביר אותו לאשף שליחת קבצים בבלוטוס

            אולי תצליח איכשהו להבין למה זה לא עובד

            using System;
            using System.Collections.Specialized;
            using System.Runtime.InteropServices;
            using System.Windows.Forms;
            
            [ComImport]
            [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
            [Guid("00000122-0000-0000-C000-000000000046")]
            public interface IDropTarget
            {
            	void DragEnter([In] System.Runtime.InteropServices.ComTypes.IDataObject pDataObj, [In] uint grfKeyState, [In] System.Drawing.Point pt, [In, Out] ref uint pdwEffect);
            	void DragOver([In] uint grfKeyState, [In] System.Drawing.Point pt, [In, Out] ref uint pdwEffect);
            	void DragLeave();
            	void Drop([In] System.Runtime.InteropServices.ComTypes.IDataObject pDataObj, [In] uint grfKeyState, [In] System.Drawing.Point pt, [In, Out] ref uint pdwEffect);
            }
            
            class Program
            {
                [DllImport("shell32.dll", CharSet = CharSet.Unicode)]
                public static extern void SHDoDragDrop(IntPtr hwnd, System.Runtime.InteropServices.ComTypes.IDataObject dataObject, IDropTarget dropTarget, uint keyState, uint effect);
            
                static void Main(string[] args)
                {
                    if (args.Length == 0)
                        return;
            
                    StringCollection fileDropList = new StringCollection();
                    fileDropList.AddRange(args);
            
                    DataObject dataObject = new DataObject();
                    dataObject.SetFileDropList(fileDropList);
            
                    IDropTarget dropTarget = (IDropTarget)Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("047ea9a0-93bb-415f-a1c3-d7aeb3dd5087")));
            
                    SHDoDragDrop(IntPtr.Zero, dataObject, dropTarget, 0, 0);
                }
            }
            

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

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

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

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