إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كيف استقبـــل كلمــــة او رقــــــــم فــــــي (Clipboard)

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • كيف استقبـــل كلمــــة او رقــــــــم فــــــي (Clipboard)

    بسم الله الرحمن الرحيم
    أخواني الاعزاء اساتذتي الكرام
    ماهو الكود المناسب لجعل البرنامج يستقبل كتابة رقم او حرف ليس في مكان نشط
    مثل Input او غيرة
    اي لتوضيح اكثر ---- عند كتابة الرقم لا يكون المؤشر في مكان نشط للكتابة او حتي يكون في مكان نشط
    لا اريد كتابة بل اريد ان يخزن في الذاكرةClipboard ويتم توجية الي Input معين
    وهنا اتكلم عن مفتاح واحد من لوحة المفاتيح مثلا لو ضغط على رقم 8 اريد ان يخزن في الذاكرة ويوجة الي الانبت 3

    بهذا الكود للاستاذ/ هيثم بارك الله فية
    كود PHP:
    -- hide window when min

    if_min 
    WinApi.IsWindowMinimized(Application.GetWndHandle());

    if 
    if_min then

    Window
    .Hide(Application.GetWndHandle());


    end

    -----------------------------------------

    --
    restore when alt+h

    if e_ID == 10 then


    alt 
    System.IsKeyDown(18);
    System.IsKeyDown(72);

       if 
    alt and h then
       Application
    .Restore();

    -- 
    set this window above any window
       Window
    .SetOrder(Application.GetWndHandle(),  HWND_TOPMOST);

       
    end


    end 



    يتم استعادة شاشة البرنامج الغير نشطة والمخفية تمامــــــــــــــا
    طبعا انا استفدت كثير جدا من هذا الكود بعد جعل مفتاح واحد مسئول عن هذة العملية

    واريد بنفس الطريقة تطبيق ما ذكرتة في الاعلى
    ارجو المساعدة لاني عشرات الساعات من المحاولات فشلة

    عندي احساس ان ذالك ممكن ولكن خبرتي بالبرنامج بسيطة
    موفقين بإذن الله ... لكم مني أجمل تحية .






  • #2
    أخي وضح الاستقبال يكون في وضع نشط للبرنامج أم لا ؟ لأن احداها سهل و الاخر يحتاج لعمل أو بالأحرى إلى تفكير

    تعليق


    • #3
      الى غاية توضيح المطلوب و قد يجيب أو بكمله زميل

      جرب الاتي :

      ضع انبوت1 في التجميعية

      في الحدث on show أكتب

      كود PHP:
      yes false;
      Page.StartTimer(10
      في on timer

      كود PHP:
      String.ToNumber(DLL.CallFunction(_SystemFolder .. "\\user32.dll""GetKeyState" 104DLL_RETURN_TYPE_LONGDLL_CALL_STDCALL))
      if (
      or < -5) and not yes then
      yes 
      true
      Input
      .Paste("Input1");
      yes false
      end 

      الان بعد الضغط على المفتاح 104 أي الرقم ثمانية
      سواء في وضع نشط للمشروع او في وضع تصغير سيكتب النص المنسوخ في الحافظة للانبوت

      قد يكون هذا نصف الطريق يؤدي الى التفكير كيف ينسخ Clipboard كل ما يكتب ؟؟ موفق

      تعليق


      • #4
        المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
        أخي وضح الاستقبال يكون في وضع نشط للبرنامج أم لا ؟ لأن احداها سهل و الاخر يحتاج لعمل أو بالأحرى إلى تفكير
        ===================================
        بسم الله الرحمن الرحيم
        في وضع نشط للبرنامج

        والكود السابق بالفعل رائع وشغال مئة %
        لكن انا لا اريد عند الضغط على 8 ان يكتب ما في الذاكرة في الانبت
        انا اريد ان يخزن الرقم 8 نفسة في الذاكرة Clipboard وبعد ذالك باي طريقة يتم توجية الي Input
        --- وتوضيح اكثر انا بامكاني ان اكتب رقم 8 في Input مباشرة بتنشيط الــ Input والضغط على رقم ثمانية في لوحة المفاتيح
        لكن انا اريد ان يتم تخزين الرقم 8 في Clipboard بعد ذالك يذهب للــــ Input
        يعني Clipboard وسيط لتحكم في مكان الرقم 8 في اي Input

        انا لم اجد طريقة توصل اي نص او رقم للـــــ Clipboard سوي النسخ ؟؟


        وعندي تسائل ثاني Clipboard من الواضح انها ذاكرة النظام
        كبف يتم تفريغا ؟؟

        انا اسف جدا استاذي الكريم على هذه الاسئلة الكثيرة والمتعبة

        لكن ما باليد حيلة الموضوع مهم بالنسبة لي كثيرا


        موفق بإذن الله ... لك مني أجمل تحية .

        تعليق


        • #5
          أفهم أن كتابة هذه المحاولة في حدث الصفحة في on key
          سيعتبر خطوة نحو فهم السؤال

          كود PHP:
          result =string.char(e_Key);
          --------------------------------------------------------
          if 
          e_Key ==110 then
          result 
          ="."
          end
          for i=0,do
          if 
          e_Key ==96+i then
          result 
          =i
          end
          end
          ---------------
          Clipboard.CopyText(result);
          Input.Paste("Input1"); 
          --------------------------------------- 
          بخصوص الطلب الثاني على الموقع موضوع منع النسخ بإفراغ الحافظة

          تعليق


          • #6
            أعرف بأنه بالتأكيـــــد ليس المطلوب في إنتظـــار تدخل من يملك المعلومـــة
            فقط اعتبره حضور في موضوعك أخي ياسر
            لذا أردت أن أكتـــب هذه الخربشــة بغية التواصل مع لوح المفاتيح بالعربي و ألغي لوحة المفــاتيح بلغة غيرها

            لكن المحـــاولة لم تكتمل و لتحقيق ذلك هاهي البداية لمن أحب تطويرهـــا

            في الحدث on show نكتب هذه المصفوفـــة
            كود PHP:
            belkiss={}
            belkiss["48"]="0"
            belkiss["49"]="1"
            belkiss["50"]="2"
            belkiss["51"]="3"
            belkiss["52"]="4"
            belkiss["53"]="5"
            belkiss["54"]="6"
            belkiss["55"]="7"
            belkiss["56"]="8"
            belkiss["57"]="9"
            belkiss["66"]="لا"
            belkiss["67"]="ؤ"
            belkiss["70"]="ب"
            belkiss["73"]="ه"
            belkiss["77"]="ة"
            belkiss["78"]="ى"
            belkiss["79"]="خ"
            belkiss["80"]="ح"
            belkiss["81"]="ض"
            belkiss["82"]="ق"
            belkiss["84"]="ف"
            belkiss["85"]="ع"
            belkiss["86"]="ر"
            belkiss["87"]="ص"
            belkiss["88"]="ء"
            belkiss["89"]="غ"
            belkiss["90"]="ئ"
            belkiss["65"]="ش"
            belkiss["68"]="ي"
            belkiss["69"]="ث"
            belkiss["70"]="ب"
            belkiss["71"]="ل"
            belkiss["72"]="ا"
            belkiss["74"]="ت"
            belkiss["75"]="ن"
            belkiss["76"]="م"
            belkiss["83"]="س"
            belkiss["186"]="ك"
            belkiss["188"]="و"
            belkiss["190"]="ز"
            belkiss["192"]="ذ"
            belkiss["219"]="ج"
            belkiss["221"]="د"
            belkiss["222"]="ط"
            belkiss["191"]="ظ"
            belkiss["32"]=" "
            belkiss["46"]=""
            belkiss["8"]="" 

            و في الحدث on key المتعـــلق بالصفحــة

            كود PHP:
            result =belkiss[""..e_Key]
            function 
            kiss ()
            if 
            e_Key ==110 then
            result 
            ="."
            end
            for i=0,do
            if 
            e_Key ==96+i then
            result 
            =i
            end
            end
            if e_Key ==46 then
            Input
            .Undo("Input1");
            end
            if e_Key ==8 then
            Input
            .SetText("Input1",String.Mid(Input.GetText("Input1"), 1String.Length(Input.GetText("Input1"))-1));
            end
            Clipboard
            .CopyText(result);
            Input.Paste("Input1");
            end
            if pcall(kissthen
            else
            Dialog.TimedMessage("سيدي الكريـــــم""هذه محاول   يمكنك إكمال\r\nباقي إجراءات المفاتيح \r\nحسب لوحة مفاتيح عربي"2000MB_ICONINFORMATION);
            end 

            بعد إدراج أنبوت 1 في حقل العمل يمكن الان الكتابة دون تفعيل المؤشر في العنصـــر
            ستتم الكتابـــة بالعربي أرقاما و حروفا

            ناجحة ؟ غير ناجحة ؟ لمستك و إظافتك كفيلة يتطوير للوصول لما تريد
            موفق

            تعليق


            • #7
              بسم الله الرحمن الرحيم
              أشكرك استاذي الكريم
              علي هذا التعاون والمساعدة
              جميع الاكواد رائعة ومفيدة
              بارك الله فيك
              اما موضوع للـــــ Clipboard والاحتفاظ بالرقم او الكلمة في ذاكرة النظام
              ثم توجيها ؟
              فقد اجابني احد الاساتذة المتخصصين في البرمجة بالفيجول بيسك. ان ما اريدة مستحيل
              وخارج نطاق برنامج AutoPlay Media Studio
              مثل مفتاح البرنت سكرين (prtscn) قي لوحة المفاتيح .... وغيرها
              من الذواكر المحجوزة في النظام
              لا اخفيك لم افهم تماماً ما قله لي هذا المتخصص ولكن فهمت ان ما اريدة مستحيل؟؟
              -----------
              اريد منك استاذي الكريم ان تطلع والاخوه الكرام على الملف في المرفقات
              وتخبروني ماذا يعني هذا الملف؟

              اشكر من كل قلبي على هذا الجهد والمتابعة والعطاء
              جعله الله في ميزان حسناتك

              موفق بإذن الله ... لك مني أجمل تحية .
              الملفات المرفقة

              تعليق


              • #8
                Clipboard هى ذاكرة مؤقتة للتخزين
                لكن على ما أعتقد الميمورى أو الميمورى إى إكس " إضافة أكشن " يمكنه حجز أماكن فية وتخزين أى قيم أو .........

                غير متذكر الطريقة أو متابعتى العملية لم تعد قوية

                تعليق


                • #9
                  حاولت أخي المحترم ياسر فهم ما أرفق لكن لم أفهم و لم أتوصل لشيء حتى قيمة الريجستري
                  لم ألاحظ أي تغيير طرأ بتسجيلها ... متابع معك للاستفادة

                  تعليق


                  • #10
                    المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
                    Clipboard هى ذاكرة مؤقتة للتخزين
                    لكن على ما أعتقد الميمورى أو الميمورى إى إكس " إضافة أكشن " يمكنه حجز أماكن فية وتخزين أى قيم أو .........

                    غير متذكر الطريقة أو متابعتى العملية لم تعد قوية
                    ================================================== ===
                    ا
                    أخي عبود لا توجد او لم اجد اضافة Clipboard EX

                    فقط الاضافة العادية Clipboard


                    موفق بإذن الله ... لك مني أجمل تحية .

                    تعليق


                    • #11
                      المشاركة الأصلية بواسطة ياسرهتهت مشاهدة المشاركة
                      ================================================== ===
                      ا
                      أخي عبود لا توجد او لم اجد اضافة Clipboard EX

                      فقط الاضافة العادية Clipboard


                      موفق بإذن الله ... لك مني أجمل تحية .
                      AMSWMemory أو MemoryEx

                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
                        حاولت أخي المحترم ياسر فهم ما أرفق لكن لم أفهم و لم أتوصل لشيء حتى قيمة الريجستري
                        لم ألاحظ أي تغيير طرأ بتسجيلها ... متابع معك للاستفادة
                        ===============================
                        المفروض ان هذا الملف
                        لربط Clipboard بالبرنامج
                        اي تتم عملية الحفظ لما هو منسوخ داخل شاشة البرنامج فقط
                        ليس مثل الحالة العادية تحتفظ
                        Clipboard
                        بما يسخ داخل او خارج البرنامج
                        ومن الواضح انه ملف لا يصلح او ليس ذي فائدة
                        ================================
                        وهذة اكواد خاصة Clipboard للاطلاع لعلها تفيد احد
                        ويكون هذا الموضوع
                        تنول الـــــ Clipboard بشكل اشمل


                        [HTML]local awful = awful

                        clipboard_path = os.getenv("HOME") .. "/.sel"

                        -- sub string function for utf8mb3 strings copied from:
                        -- http://wowprogramming.com/snippets/UTF-8_aware_stringsub_7

                        -- UTF-8 Reference:
                        -- 0xxxxxxx - 1 byte UTF-8 codepoint (ASCII character)
                        -- 110yyyxx - First byte of a 2 byte UTF-8 codepoint
                        -- 1110yyyy - First byte of a 3 byte UTF-8 codepoint
                        -- 11110zzz - First byte of a 4 byte UTF-8 codepoint
                        -- 10xxxxxx - Inner byte of a multi-byte UTF-8 codepoint

                        local function chsize(char)
                        if not char then
                        return 0
                        elseif char > 240 then
                        return 4
                        elseif char > 225 then
                        return 3
                        elseif char > 192 then
                        return 2
                        else
                        return 1
                        end
                        end

                        -- This function can return a substring of a UTF-8 string, properly handling
                        -- UTF-8 codepoints. Rather than taking a start index and optionally an end
                        -- index, it takes the string, the starting character, and the number of
                        -- characters to select from the string.

                        local function utf8sub(str, startChar, numChars)
                        local startIndex = 1
                        while startChar > 1 do
                        local char = string.byte(str, startIndex)
                        startIndex = startIndex + chsize(char)
                        startChar = startChar - 1
                        end

                        local currentIndex = startIndex

                        while numChars > 0 and currentIndex <= #str do
                        local char = string.byte(str, currentIndex)
                        currentIndex = currentIndex + chsize(char)
                        numChars = numChars -1
                        end
                        return str:sub(startIndex, currentIndex - 1)
                        end

                        function read_entries(f)
                        local i = 1
                        local entries = {}
                        for line in f:lines() do
                        local idx = i
                        entries[i] = {
                        utf8sub(line, 0, 25) .. "...",
                        function()
                        cmd = "sed -n '".. idx .. "," .. idx .."p' " .. clipboard_path .. " | perl -pe 's/#NL/\\n/g' | xclip -d :0 -selection primary"
                        awful.util.spawn_with_shell(cmd)
                        naughty.notify({
                        text = string.gsub(line, '(#NL)', "\n"),
                        timeout = 3
                        })
                        end
                        }
                        i = i + 1
                        end
                        return entries
                        end

                        function clipboard_menu()
                        local entries = nil
                        local f = io.open(clipboard_path, "r")
                        if f ~= nil then
                        entries = read_entries(f)
                        f:close()
                        end

                        -- check if there is any entry, or stops here
                        if entries == nil or #entries == 0 then
                        naughty.notify({
                        text = "no cached entries",
                        timeout = 3
                        })
                        return
                        end

                        awful.menu.new({
                        items = entries,
                        width = 300,
                        }):show({keygrabber= true})
                        end

                        function clear_clipboard()
                        local file = io.open(clipboard_path, "w")
                        file:flush()
                        file:close()
                        end

                        function copy_to_clipboard()
                        local sel = selection()
                        local file, errmsg = io.open(clipboard_path, "a+")
                        if file == nil then
                        naughty.notify({
                        text = errmsg,
                        timeout = 3
                        })
                        return
                        end
                        naughty.notify({
                        text = sel,
                        timeout = 3
                        })
                        sel = string.gsub(sel, '(\n)', '#NL')
                        file:write(sel)
                        file:write("\n")
                        file:flush()
                        file:close()
                        end[/HTML]


                        موفق بإذن الله ... لك مني أجمل تحية .

                        تعليق


                        • #13
                          المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
                          AMSWMemory أو MemoryEx
                          ================================================== ===

                          تمام اخي عبود

                          تعليق


                          • #14
                            tnks ..................

                            تعليق


                            • #15
                              بسم الله الرحمن الرحيم الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

                              تعليق

                              مواضيع تهمك

                              تقليص

                              المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 06-08-2025 الساعة 11:33 PM
                              المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 06-04-2025 الساعة 05:29 PM
                              المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 05-31-2025 الساعة 10:07 PM
                              المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 05-30-2025 الساعة 11:48 PM
                              المنتدى: التصنيع والانتاج نشرت بواسطة: HaMooooDi الوقت: 05-30-2025 الساعة 09:36 AM
                              يعمل...
                              X