تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الضغط على أزرار من تطبيقات أخرى
#1
السلام عليكم أخوتى
لدى مشروع يعمل كالأتى :-
1 - زر حين الضغط عليه يفتح الديالوج ويختار ملفات من نوع msu لتحديثات الويندوز داخل اداة ليست فيو.
2 - زر  حين الضغط عليه يقوم بتحديد جميع الخانات ويعمل عليهم تشيكد.
3- زر يقوم بتشغيل جميع هذه الملفات واحد تلو الأخر الى أن ينتهى منهم جميعاً..
كل هذا تمام الى هنا وبفضل الله أنتهيت منهم.

المشكلة .

 حين تشغيل أى ملف من هذه الملفات بتظهر رسالة مفادها هل تريد تثبيت التحديث ؟
وهنا لابد وأن اضغط على نعم هكذا


وحينما ينتهى من تثبيتها يظهر شاشة أخر مفادها هل تريد اعادة تشغيل الجهاز  أم لا  ؟.


ما أريده هو أن البرنامج يضغط اتوماتيك على هذه الأزرار المتعلم عليها بالأصفر لو سمحتم
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

اظن انه موضوع سيتعبك كثيرآ اذا اردت له الحل اخي ابو روضةوالسبب بما ان هذه الملفات عبارة عن تحديثات وبالتالي التحديثات تتغير دائمآ ,, وانته تحتاج حقن injection للبرنامج داخل عمليات التنصيب وبأختلاف العملية اظن تختلف الاكواد.

ربما يوجد حلول أخرى كما نرى ببعض التطبيقات وهي تحريك مؤشر الماوس على الازرار وارسال امر الضغط بالماوس لكن اجدها لاتنفع بصراحة لان لديك العديد من ملفات التنصيب.


عذرآ فلا اريد احباطك اخي ولكن هذا رأيي فقط
الرد }}}
#3
(20-11-19, 11:38 PM)3booody كتب : السلام عليكم ورحمة الله وبركاته

اظن انه موضوع سيتعبك كثيرآ اذا اردت له الحل اخي ابو روضةوالسبب بما ان هذه الملفات عبارة عن تحديثات وبالتالي التحديثات تتغير دائمآ ,, وانته تحتاج حقن injection للبرنامج داخل عمليات التنصيب وبأختلاف العملية اظن تختلف الاكواد.

ربما يوجد حلول أخرى كما نرى ببعض التطبيقات وهي تحريك مؤشر الماوس على الازرار وارسال امر الضغط بالماوس لكن اجدها لاتنفع بصراحة لان لديك العديد من ملفات التنصيب.


عذرآ فلا اريد احباطك اخي ولكن هذا رأيي فقط

لا يا غالى ولا إحباط ولا شيئ من هذا القبيل...
التحديثات بالفعل موجودة عندى وجاهزة للتنصيب وبقوم بإختيارهم من البرنامج الذى أنشأته
لكن المشكلة اننى أريد الضغط على زر إنتر حينما تظهر  هذه الأزرار لكن لو الموضوع مُعقد 
فلا عليك يا غالى 
الرد }}}
#4
حتى زر انتر مافيه مشكلة انك تطلق الزر لكن المشكلة متى تطلق الزر؟ بمعنى تعمل مراقبة على العملية الجارية وهي التنصيب
جرب مراقبة ال Process لملف تنصيب واحد وحاول تشوف الفرق بين عملية التنصيب الى الاكتمال ان شاء الله تصل الى نتيجة
لكن قبل ماتجرب اول شي جرب الضغط على الزر وتأكد اذا ينجح الامر
بعد انتهاء عملية التنصيب اعمل هالتجربة وهي هالكود يضغط على زر Close او لا 


PHP كود :
Imports System.Runtime.InteropServices
Public Class Form1
    
<DllImport("user32.dll"CharSet:=CharSet.AutoEntryPoint:="FindWindow")> _
    Private Shared 
Function FindWindow(ByVal lpClassName As StringByVal lpWindowName As String) As IntPtr
    End 
Function

 
   <DllImport("user32.dll"SetLastError:=TrueCharSet:=CharSet.Auto)> _
    Private Shared 
Function FindWindowEx(ByVal parentHandle As IntPtrByVal childAfter As IntPtrByVal lclassName As StringByVal windowTitle As String) As IntPtr
    End 
Function

 
   <DllImport("user32.dll"EntryPoint:="SendMessage")> _
    Private Shared 
Function SendMessage(ByVal hwnd As IntPtrByVal wMsg As IntegerByVal wParam As IntegerByVal lParam As Integer) As IntPtr
    End 
Function


 
   Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim hwnd 
FindWindow(Nothing"Download and Install Updates")
 
       If hwnd <> IntPtr.Zero Then
            Dim btn 
FindWindowEx(hwndIntPtr.Zero"Button""Close")
 
           If btn <> IntPtr.Zero Then
                SendMessage
(btn, &HF500)
 
           Else
                MsgBox
("لم يتم ايجاد الزر")
 
           End If
 
       Else
            MsgBox
("لم يتم ايجاد التحديث")
 
       End If
 
   End Sub

End 
Class 

اذا حليت هالمشكلة تبقى فقط عملية المراقبة وان شاء الله نقدر نتلاعب بالكود بدون مانحتاج المراقبة
الرد }}}
تم الشكر بواسطة: ابو روضة , حريف برمجة , asemshahen5
#5
(21-11-19, 11:57 AM)3booody كتب : حتى زر انتر مافيه مشكلة انك تطلق الزر لكن المشكلة متى تطلق الزر؟ بمعنى تعمل مراقبة على العملية الجارية وهي التنصيب
جرب مراقبة ال Process لملف تنصيب واحد وحاول تشوف الفرق بين عملية التنصيب الى الاكتمال ان شاء الله تصل الى نتيجة
لكن قبل ماتجرب اول شي جرب الضغط على الزر وتأكد اذا ينجح الامر
بعد انتهاء عملية التنصيب اعمل هالتجربة وهي هالكود يضغط على زر Close او لا 


PHP كود :
Imports System.Runtime.InteropServices
Public Class Form1
    
<DllImport("user32.dll"CharSet:=CharSet.AutoEntryPoint:="FindWindow")> _
    Private Shared 
Function FindWindow(ByVal lpClassName As StringByVal lpWindowName As String) As IntPtr
    End 
Function

 
   <DllImport("user32.dll"SetLastError:=TrueCharSet:=CharSet.Auto)> _
    Private Shared 
Function FindWindowEx(ByVal parentHandle As IntPtrByVal childAfter As IntPtrByVal lclassName As StringByVal windowTitle As String) As IntPtr
    End 
Function

 
   <DllImport("user32.dll"EntryPoint:="SendMessage")> _
    Private Shared 
Function SendMessage(ByVal hwnd As IntPtrByVal wMsg As IntegerByVal wParam As IntegerByVal lParam As Integer) As IntPtr
    End 
Function


 
   Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim hwnd 
FindWindow(Nothing"Download and Install Updates")
 
       If hwnd <> IntPtr.Zero Then
            Dim btn 
FindWindowEx(hwndIntPtr.Zero"Button""Close")
 
           If btn <> IntPtr.Zero Then
                SendMessage
(btn, &HF500)
 
           Else
                MsgBox
("لم يتم ايجاد الزر")
 
           End If
 
       Else
            MsgBox
("لم يتم ايجاد التحديث")
 
       End If
 
   End Sub

End 
Class 

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

فعلا أخى المشكلة فى مراقبة على العملية الجارية...
طيب أنا لدى ملف bat  يعمل ما أريد بدون ظهور أى شاشة حتى وأريد تشغيلة وحاولت اشغله من الريسورس
لكن بصراحة لم أعرف فهل تعرف الكود لتشغيلة ؟ 
" اسمه install-update.bat "


حاولت بهذا ولم يعمل

PHP كود :
 Dim install IO.Path.GetTempPath "\" & "install-update.bat"
        IO.File.WriteAllBytes(black, My.Resources.install-update)
        Process.Start(install) 

شكرا لك أخى جربت بهذا ونفع 

PHP كود :
 Dim Path As String Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Temp" "\install_update.bat"
 
           IO.File.WriteAllText(PathMy.Resources.install_update)
 
           Process.Start(Path
الرد }}}
تم الشكر بواسطة: 3booody , حريف برمجة , حريف برمجة , asemshahen5
#6
الحمدلله ان الامر نجح لديك وان شاء الله انحلت مشكلتك
لدي سؤال هل جربت الكود السابق لضغط الزر؟ وهل اشتغل او لا
اذا اشتغل لاتهتم بالنسبة لمراقبة العملية لانها تنحل كلها بتايمر وشرط فقط
الرد }}}
#7
(21-11-19, 01:28 PM)3booody كتب : الحمدلله ان الامر نجح لديك وان شاء الله انحلت مشكلتك
لدي سؤال هل جربت الكود السابق لضغط الزر؟ وهل اشتغل او لا
اذا اشتغل لاتهتم بالنسبة لمراقبة العملية لانها تنحل كلها بتايمر وشرط فقط


انا وضعته مع كود تثبيت التحديثات بهذا الشكل ولم يعمل


PHP كود :
 For Each itm As ListViewItem In Me.ListViewEx1.CheckedItems
            Process
.Start(itm.Tag).WaitForExit()
 
           Dim hwnd FindWindow(Nothing"Download and Install Updates")
 
           If hwnd <> IntPtr.Zero Then
                Dim btn 
FindWindowEx(hwndIntPtr.Zero"Button""Close")
 
               If btn <> IntPtr.Zero Then
                    SendMessage
(btn, &HF500)
 
               Else
                    MsgBox
("لم يتم ايجاد الزر")
 
               End If
 
           Else
                MsgBox
("لم يتم ايجاد التحديث")
 
           End If
 
           MsgBox(" تم الانتهاء من تصطيب البرامج المحددة")
 
       Next 

فمن الممكن أكون وضعته بطريقة خاطئة والله أعلى واعلم
الرد }}}
تم الشكر بواسطة: 3booody , حريف برمجة , asemshahen5
#8
اذا ظهر عندك اول مسج بمعنى التحديث موجود لكن اسم الزر خطأ
اما اذا ظهر ثاني مسج بمعنى ان اسم العملية به خطأ
كود :
 MsgBox("لم يتم ايجاد الزر")
              
                MsgBox("لم يتم ايجاد التحديث")
ومكان الكود انا فكرت نضعه بتايمر اذا وجد الزر يضغطه
لكن اذا نحلت المشكلة لديك لاداعي لتقوم بالامر انا سألتك للفائدة لان بصراحة افكر اتعمق كثير ب Api لفائدتها
تحياتي لك اخي الفاضل
الرد }}}
تم الشكر بواسطة: ابو روضة , حريف برمجة , asemshahen5
#9
(21-11-19, 01:51 PM)3booody كتب :
اذا ظهر عندك اول مسج بمعنى التحديث موجود لكن اسم الزر خطأ
اما اذا ظهر ثاني مسج بمعنى ان اسم العملية به خطأ
كود :
 MsgBox("لم يتم ايجاد الزر")
              
                MsgBox("لم يتم ايجاد التحديث")
ومكان الكود انا فكرت نضعه بتايمر اذا وجد الزر يضغطه
لكن اذا نحلت المشكلة لديك لاداعي لتقوم بالامر انا سألتك للفائدة لان بصراحة افكر اتعمق كثير ب Api لفائدتها
تحياتي لك اخي الفاضل


الله لا يحرمنا منك أخى العزيز وأسأل الله أن يمُنّ عليك بالعلم النافع الكثير.
الرد }}}
تم الشكر بواسطة: 3booody , asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] حول ظهور النافذة الاولى عند الضغط على Menustrip2 في النافذة الثانية vb.net 2012 mh66 0 245 19-10-23, 09:05 AM
آخر رد: mh66
  عرض بيانات داتاغريد في داتاغريد أخرى kebboud 2 426 14-07-23, 08:41 PM
آخر رد: kebboud
  اريد كود لمسح النص من textbox بمجرد الضغط على ال textebox للكتابة رهف العريفي 21 11,906 03-06-23, 04:56 AM
آخر رد: سعود
  كيف اقارن صوره بصوره أخرى menanaeem 2 601 07-11-22, 05:24 PM
آخر رد: menanaeem
  تنفيذ الكود عند الضغط على checkbox الموجود في الداتاقريدفيو جيولوجي مبتدئ 1 1,110 29-09-22, 09:55 AM
آخر رد: mohamedassim
  لايمكن للعملية الوصول للملف لأنه قيد الإستخدام بعملية أخرى جيولوجي مبتدئ 7 846 07-08-22, 06:31 AM
آخر رد: جيولوجي مبتدئ
Question [VB.NET] استفسار حول طريقة الضغط على زر برمجيا lmofallis 4 3,830 01-06-22, 12:02 PM
آخر رد: عبد الجليل سراج
  [سؤال] محتاج كود لاضافة 3 أزرار للجريد dr.programming 2 773 28-05-22, 02:12 AM
آخر رد: DR.YASER
  السلام عليكم مشلكه عند الغاء التحديث الضغط علي no حدث CellEndEdit ahmedhhh2 1 793 11-02-22, 09:55 PM
آخر رد: ahmedhhh2
Heart [VB.NET] برمجة أزرار التنقل بين السجلات أبو خالد الشكري 3 1,486 03-01-22, 05:06 AM
آخر رد: سعود

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم