حسين العربى قام بنشر سبتمبر 2, 2020 قام بنشر سبتمبر 2, 2020 السلام عليكم ورحمة الله وبركاته اخواني اعضاء ومشرفي المنتدي الكرام اريد كود في زر امر لتصغير برنامج معين مفتوح علي سطح المكتب
jjafferr قام بنشر سبتمبر 3, 2020 قام بنشر سبتمبر 3, 2020 وعليكم السلام 🙂 سؤالك غير واضح !! 12 ساعات مضت, حسين العربى said: لتصغير برنامج معين مفتوح علي سطح المكتب جعفر
حسين العربى قام بنشر سبتمبر 3, 2020 الكاتب قام بنشر سبتمبر 3, 2020 (معدل) كود لعمل Minimize لبرنامج معين ولنفترض برنامج تيم فيور مفتوح مثلا اريد عمل Minimize لهذا البرنامج تم تعديل سبتمبر 3, 2020 بواسطه حسين العربى
أبو إبراهيم الغامدي قام بنشر سبتمبر 6, 2020 قام بنشر سبتمبر 6, 2020 أهلا حسين في ٣/٩/٢٠٢٠ at 13:41, حسين العربى said: ولنفترض برنامج تيم فيور مفتوح مثلا اريد عمل Minimize لهذا البرنامج التعامل مع التطبيقات خارج أكسس له أسلوب خاص يتعلق بويندوز نفسه وبالتالي يطلب منك ويندوز معلومات تتعلق بالتطبيق الذي تريد أن ترسل الأمر إليه مثل الاسم البرمجي، عنوان التطبيق، من أين أقلع التطبيق من داخل أكسس أو خارجه، هل هو التطبيق النشط أم لا.. أشياء كهذه. هل يمكن أن توفر هذه المعلومات؟ 1
حسين العربى قام بنشر سبتمبر 6, 2020 الكاتب قام بنشر سبتمبر 6, 2020 (معدل) استاذي الفاضل ابو ابراهيم الف شكر علي مرورك الطيب هذه بعض المعلموات علي حسب ما فهمت هو برنامج فيجول ستديوا اقلاعه من خارج اكسس التطبيق النشط نعم عنوان التطبيق D:\KFM\CivilIdHtmlDemo.exe وهذا هو البرنامج المراد عمل Minimize له من خلال كود في زر امر في نموذج اكسس KFM.rar تم تعديل سبتمبر 6, 2020 بواسطه حسين العربى
Hamdi Edlbi-khalf قام بنشر سبتمبر 10, 2020 قام بنشر سبتمبر 10, 2020 (معدل) السلام عليكم بما أنكم لم تحصلوا على الحل بعد إليك هذا الكود، لقد أثار سؤالكم فضولي وبعد البحث توصلت إلى الكود وقمت بتعديله على النحو الذي عمل لدي على جميع البرامج على حاسبي، مع ملاحظة أن ملفكم المرفق لم يعمل على جهازي. قم باستدعاء الأمر التالي بالأحداث: Public Sub MinimizeProgram() وذلك بعد وضع الكود الآتي في مودجال جديد، و الانتباه إلى المعايير والتي هي عبارة عن جزء من اسم التطبيق: criteria = "*CivilIdHtmlDemo*" الكود: Option Compare Database Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, _ ByVal param As Long) As Long Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _ (ByVal hwnd As Long, _ ByVal lpString As String, _ ByVal cch As Long) As Long Public Declare Function fShowWindow Lib "user32.dll" Alias "ShowWindow" _ (ByVal lngHWND As Long, ByVal lngCommand As Long) As Long Dim lngHandle As Long Dim lngTemp As Long Public Const MAX_LEN = 260 ' you can use the Comment if you add (Microsoft Scripting Runtime) Library to the references. Public results 'As Dictionary Public criteria As String Public Sub MinimizeProgram() 'Edited By Hamdi-E 10/9/2020 'Officena Forums Khalf 'put a part Of the Targeted App Name criteria = "*CivilIdHtmlDemo*" Set results = CreateObject("Scripting.Dictionary") ' you can use the Comment if you add (Microsoft Scripting Runtime) Library to the references. ' Set results = New Dictionary Call EnumWindows(AddressOf EnumWindowCallback, &H0) Dim result As Variant For Each result In results.Keys lngTemp = fShowWindow(result, 1) ' the available values in the second parameter: 'vbHide 0 'vbMaximizedFocus 3 'vbMinimizedFocus 2 'vbMinimizedNoFocus 6 'vbNormalFocus 1 'vbNormalNoFocus 4 Next result End Sub Public Function EnumWindowCallback(ByVal hwnd As Long, ByVal param As Long) As Long Dim retValue As Long Dim buffer As String If IsWindowVisible(hwnd) Then buffer = Space$(MAX_LEN) retValue = GetWindowText(hwnd, buffer, Len(buffer)) If retValue Then If buffer Like criteria Then results.Add hwnd, Left$(buffer, retValue) End If End If End If EnumWindowCallback = 1 End Function الحمد لله الذي بنعمته تتم الصالحات، اللهم صلِ على سيدنا محمد وعلى آله وصحبه ومن ولاه وسلم تسليماً كثيراً. تم تعديل سبتمبر 10, 2020 بواسطه Khalf 3
حسين العربى قام بنشر سبتمبر 10, 2020 الكاتب قام بنشر سبتمبر 10, 2020 استاذي الفاضل الف شكر علي مرورك الطيب مكن لو تكرمت تطبق لنا الاكود علي ملف اكسس من عندك لاني الامر اختلط علي فا مش ظابط معي والف شكر
Hamdi Edlbi-khalf قام بنشر سبتمبر 10, 2020 قام بنشر سبتمبر 10, 2020 (معدل) السلام عليكم الكود يعمل على الفاير فوكس ويفتح النافذة نورمال XXX.accdb تم تعديل سبتمبر 10, 2020 بواسطه Khalf
jjafferr قام بنشر سبتمبر 10, 2020 قام بنشر سبتمبر 10, 2020 السلام عليكم 🙂 وجرب هذا المرفق. هذا المرفق ينزل جميع البرامج المفتوحة ، وبعدين يكبّر برنامج الاكسس بعد ثانية ، حصلت على الكود من الانترنت ، وتم عمل بعض التعديلات عليه وتضبيطه للعمل على النواتين 32 و 64 بت : Option Compare Database Option Explicit #If VBA7 Then Private Declare PtrSafe Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr Private Declare PtrSafe Function PostMessage Lib "USER32" Alias "PostMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim DoIt As LongPtr #Else Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function PostMessage Lib "USER32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim DoIt As Long #End If 'Private Declare PtrSafe Function PostMessage Lib "USER32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Const WM_COMMAND As Long = &H111 Private Const MIN_ALL As Long = 419 Private Const MIN_ALL_UNDO As Long = 416 Private Const SW_RESTORE As Long = 9 ' Public Function Minimize_AllWindows() DoIt = FindWindow("shell_traywnd", vbNullString) 'to minimize them all Call PostMessage(DoIt, WM_COMMAND, MIN_ALL, 0&) Dim PauseTime, Start PauseTime = 1 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop DoCmd.RunCommand acCmdAppMaximize End Function Public Function Restore_AllWindows() DoIt = FindWindow("shell_traywnd", vbNullString) 'to return them all to normal size Call PostMessage(DoIt, WM_COMMAND, MIN_ALL_UNDO, 0&) End Function . وطريقة العمل اننا ننادي الوحدة النمطية عند بدء البرنامج هكذا : call Minimize_AllWindows . وعند اغلاق البرنامج يمكننا ان ننادي الوحدة النمطية الاخرى لإرجاع جميع النوافد مثل ما كانت على قبل الانزال ، هكذا ، call Restore_AllWindows . اما انا ، فأفتح برنامجي عن طريق الماكرو autoexec والذي يعمل تلقائيا لما يفتح الاكسس ، واول امر فيه هو مناداة الوحدة النمطية لتصغير النوافد ، ثم يفتح لي النموذج الذي اريده ، هكذا : . ولما اغلق البرنامج ، اضع كود ارجاع البرامج الى وضعها السابق على حدث زر الخروج من البرنامج : . والكود : Call Restore_AllWindows DoCmd.Quit جعفر All_Minimize_Restore.zip 3
أبو إبراهيم الغامدي قام بنشر سبتمبر 10, 2020 قام بنشر سبتمبر 10, 2020 أهلا الجميع.. في الحقيقة مشاركات متنوعة وجميلة لاستخدام دوال ويندوز WIN32API .. -- مشاركة أ. @Khalf : مبنية على البحث عن النوافذ المفتوحة في شريط المهام بواسطة الدالة EnumWindows مع استخدام دالة التغذية الراجعة EnumWindowCallback.. (تستخدم هذه الدالة لتطبيق بعض الإجراءات التي يحددها المستخدم في دالة التغذية الراجعة على النوافذ المفتوحة). ولهذا هي طويلة بعض الشيء. -- مشاركة أ. @jjafferr : هي أيضا لها علاقة بالنوافذ المفتوحة في شريط المهام؛ ولكنه استخدم الطبقة الرئسية للنوافذ المفتوحة، وهي هنا shell_traywnd، ثم مررها إلى الدالة FindWindow، لتعيد له هذه الدالة رقم صحيحا يسمى مقبض النافذة HWND. ثم مرر هذا الرقم إلى وظيفة أخرى PostMessage لتقوم بإرسال رسائل للطبقة الرئيسية: بالتصغير، أو العودة إلى الوضع الطبيعي.. ولهذا هي قصيرة جدا! لأنها محددة المهام أما مشاركتي فلا علاقة لها بالإجابة عن السؤال! عند تمرير مؤشر الفارة على النوافذ المفتوحة يعيد أكسس البيانات التي سألت عنها في الاقتباس أدناه! إذا لم تظهر البيانات بالشكل الصحيح ثبت أكسس فوق النافذة وحرك الفارة.. في ٦/٩/٢٠٢٠ at 09:02, أبو إبراهيم الغامدي said: التعامل مع التطبيقات خارج أكسس له أسلوب خاص يتعلق بويندوز نفسه وبالتالي يطلب منك ويندوز معلومات تتعلق بالتطبيق الذي تريد أن ترسل الأمر إليه مثل الاسم البرمجي، عنوان التطبيق، من أين أقلع التطبيق من داخل أكسس أو خارجه، هل هو التطبيق النشط أم لا.. أشياء كهذه. هل يمكن أن توفر هذه المعلومات؟ Windows Information.accdb 2
ازهر عبد العزيز قام بنشر سبتمبر 11, 2020 قام بنشر سبتمبر 11, 2020 (معدل) موضوع شيق والشكر الى الاستاذ أبو إبراهيم الغامدي للتوضيح الرائع تم تعديل سبتمبر 11, 2020 بواسطه ازهر عبد العزيز 1
حسين العربى قام بنشر سبتمبر 12, 2020 الكاتب قام بنشر سبتمبر 12, 2020 الف شكر اساتذتي الافاضل جزاكم الله خير 1
Hamdi Edlbi-khalf قام بنشر سبتمبر 12, 2020 قام بنشر سبتمبر 12, 2020 ملاحظة فاتتني، يمكن أن تربط الكود بمربع سرد وحوار، وهناك عدة خيارات للتعامل مع نوافذ البرامج، وأهم ما في الكود أنك لن تحتاج إلى الحصول على اسم الكلاس الخاص بالتطبيق المراد التحكم بنافذته، والذي يطلب كباراميتر لبعض الإي بي آي. 1
أبو إبراهيم الغامدي قام بنشر سبتمبر 12, 2020 قام بنشر سبتمبر 12, 2020 6 ساعات مضت, Khalf said: ملاحظة فاتتني، يمكن أن تربط الكود بمربع سرد وحوار، وهناك عدة خيارات للتعامل مع نوافذ البرامج، وأهم ما في الكود أنك لن تحتاج إلى الحصول على اسم الكلاس الخاص بالتطبيق المراد التحكم بنافذته، والذي يطلب كباراميتر لبعض الإي بي آي. لكنك خالفت هذه النقطة! ولجأت إلى عنوان النافذة لتستخدمه كمحدد! (باراميتر).. بعد فحصك لعنوان النافذة المطابق لطلبك استخدمت المجمع (Dictionary) لتخزين مقبض النافذة المطابق لشرطك، وكان يالإمكان استخدام الدالة ShowWindow مباشرة مع ذلك المقبض، والاسنغناء كليا عن المجمع.. في كل الأحوال أنت بحاجة إلى محدد؛ سواءً استخدمت الطبقة أو العنوان كمحدد! وإلا سوف تقوم الدالة ShowWindow بتطبيق الإجراء على جميع النوافذ.. 1
Hamdi Edlbi-khalf قام بنشر سبتمبر 12, 2020 قام بنشر سبتمبر 12, 2020 جزاكم الله كل خير، على التوضيح والتصحيح. ما دعاني لوضع ذلك التوضيح هو الصعوبة التي واجهتني بالحصول على اسم الكلاس الخاص بالتطبيق لاستخدامه كباراميتر.
أبو إبراهيم الغامدي قام بنشر سبتمبر 12, 2020 قام بنشر سبتمبر 12, 2020 منذ ساعه, Khalf said: جزاكم الله كل خير، على التوضيح والتصحيح. ما دعاني لوضع ذلك التوضيح هو الصعوبة التي واجهتني بالحصول على اسم الكلاس الخاص بالتطبيق لاستخدامه كباراميتر. أما أنا فأحمد الله أنك لم تفعل ذلك! لأن طريقتك أجود في نظري! أتمنى لك التوفيق 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.