منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] العمل حتي اذا كنت في برنامج اخر - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] العمل حتي اذا كنت في برنامج اخر (/showthread.php?tid=20699)



العمل حتي اذا كنت في برنامج اخر - lval6402@gmail.com - 10-06-17

السلام عليكم ورحمه الله وبركاته 


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

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

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

هذه الاوامر لا تعمل اتمني اجابه لاني بحثت كثيرا ولم اجد الحل



RE: العمل حتي اذا كنت في برنامج اخر - silverlight - 11-06-17

انا ما حاولت هذا من قبل لكن الفكرة ربما تنجح معك
عند الضغط علي مفتاح التصغير
ممكن مثلا تجعل قيمة Opacity صفرا و تجعل TransprentKey يساوي Backcolor
ثم تجعل البرنامج حجمه يأخذ حجم الشاشة
وتجعله TopMost
ثم تعيد كل شئ الي وضعه الطبيعي عندما يتم عمل Activation للبرنامج
الحل الأخر وهو الأفضل
ان تبني فورم أخر يكون عبارة عن LayerWindow بحيث يعمل في الخلفية كفورم خفي دائما و هو من سيستقبل ضغطات المفاتيح ومنه تمرر البيانات الي الفورم الاصلي
دي مجرد افكار ربما تساعدك


RE: العمل حتي اذا كنت في برنامج اخر - lval6402@gmail.com - 11-06-17

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


RE: العمل حتي اذا كنت في برنامج اخر - lval6402@gmail.com - 12-06-17

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


RE: العمل حتي اذا كنت في برنامج اخر - silverlight - 12-06-17

الكود التالي سيعطيك فكرة عن ماهية 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