منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : العمل حتي اذا كنت في برنامج اخر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمه الله وبركاته 


انا الان عندي برنامج اذا ضغط علي alt+A بيعمل امر

واذا ضغط alt+Z بيعمل امر

 ولكن اذا كنت فاتح برنامج اخر او متصفح مثلا وبرنامجي تحت في شريط الويندوز

هذه الاوامر لا تعمل اتمني اجابه لاني بحثت كثيرا ولم اجد الحل
انا ما حاولت هذا من قبل لكن الفكرة ربما تنجح معك
عند الضغط علي مفتاح التصغير
ممكن مثلا تجعل قيمة Opacity صفرا و تجعل TransprentKey يساوي Backcolor
ثم تجعل البرنامج حجمه يأخذ حجم الشاشة
وتجعله TopMost
ثم تعيد كل شئ الي وضعه الطبيعي عندما يتم عمل Activation للبرنامج
الحل الأخر وهو الأفضل
ان تبني فورم أخر يكون عبارة عن LayerWindow بحيث يعمل في الخلفية كفورم خفي دائما و هو من سيستقبل ضغطات المفاتيح ومنه تمرر البيانات الي الفورم الاصلي
دي مجرد افكار ربما تساعدك
(11-06-17, 07:02 PM)silverlight كتب : [ -> ]انا ما حاولت هذا من قبل لكن الفكرة ربما تنجح معك
عند الضغط علي مفتاح التصغير
ممكن مثلا تجعل قيمة Opacity صفرا و تجعل TransprentKey يساوي Backcolor
ثم تجعل البرنامج حجمه يأخذ حجم الشاشة
وتجعله TopMost
ثم تعيد كل شئ الي وضعه الطبيعي عندما يتم عمل Activation للبرنامج
الحل الأخر وهو الأفضل
ان تبني فورم أخر يكون عبارة عن LayerWindow بحيث يعمل في الخلفية كفورم خفي دائما و هو من سيستقبل ضغطات المفاتيح ومنه تمرر البيانات الي الفورم الاصلي
دي مجرد افكار ربما تساعدك
شكرا اخي جاري تجربه الموضوع كل الاحترام لحضرتك
(11-06-17, 07:02 PM)silverlight كتب : [ -> ]انا ما حاولت هذا من قبل لكن الفكرة ربما تنجح معك
عند الضغط علي مفتاح التصغير
ممكن مثلا تجعل قيمة Opacity صفرا و تجعل TransprentKey يساوي Backcolor
ثم تجعل البرنامج حجمه يأخذ حجم الشاشة
وتجعله TopMost
ثم تعيد كل شئ الي وضعه الطبيعي عندما يتم عمل Activation للبرنامج
الحل الأخر وهو الأفضل
ان تبني فورم أخر يكون عبارة عن LayerWindow بحيث يعمل في الخلفية كفورم خفي دائما و هو من سيستقبل ضغطات المفاتيح ومنه تمرر البيانات الي الفورم الاصلي
دي مجرد افكار ربما تساعدك
كيف اعمل LayerWindow اوماذا تقصد به
الكود التالي سيعطيك فكرة عن ماهية LayerWindow

PHP كود :
Public Class LayerWindow
    Inherits Form

    Private 
Const WS_EX_TRANSPARENT As Integer 32
    Private 
Const WS_EX_LAYERED As Integer 524288

    Public Sub 
New()
 
       MyBase.SetStyle(ControlStyles.OpaqueTrue)
 
       Me.Bounds = New Rectangle(0000)
 
       Dim r As Rectangle TryCast(Screen.FromHandle(Me.Handle), Screen).Bounds
        MyBase
.TopMost True
        MyBase
.StartPosition FormStartPosition.Manual
        MyBase
.FormBorderStyle FormBorderStyle.None
        MyBase
.ShowInTaskbar False
        MyBase
.BackColor Color.Black
        MyBase
.TransparencyKey Color.Black
        MyBase
.ShowIcon False
        Me
.Bounds r

    End Sub

    Protected Overrides ReadOnly Property CreateParams
() As System.Windows.Forms.CreateParams
        Get
            Dim SecPerm 
As New SecurityPermission(SecurityPermissionFlag.UnmanagedCode)
 
           SecPerm.Demand()
 
           Dim cp As System.Windows.Forms.CreateParams MyBase.CreateParams
            cp
.ExStyle cp.ExStyle Or WS_EX_LAYERED
            cp
.ExStyle cp.ExStyle Or WS_EX_TRANSPARENT
            Return cp
        End Get
    End Property

    
' لا ترسم اي شئ في االأحداث الخاصة برسم الفورم حتي لا تظهر علي الشاشة
    Protected Overrides Sub OnPaint(e As PaintEventArgs)

    End Sub

    Protected Overrides Sub OnPaintBackground(e As PaintEventArgs)

    End Sub

    ' 
عليك فقط ان تتعامل مع لوحة المفاتيح في الحدث الخاص بها

End 
Class