تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف يمكن ان يكون البرنامج دائما في المقدمه
#1
Information 
السلام عليكمم اخواني 
*****************
اريد ان اجعل البرنامج يمكن استخدامه فوق لعبه (اريد عند ضغط علي form البرنامج ولا يختفي العبه وي يظهر الديسك توب)
 
استخدمت هذه الاكواد و لم تعمل 

رجاء اذا استطاع احد مساعدتي فليفعل هذا 


PHP كود :
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long_
ByVal hWndInsertAfter 
As LongByVal X As Long_
ByVal Y 
As LongByVal CX As LongByVal CY As Long_
ByVal wFlags 
As Long) As Long
Private Const SWP_NO**** = 2
Private Const SWP_NOSIZE 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2

Public Sub SetOnTop(ByVal hwnd As LongByVal bSetOnTop As Boolean)
Dim lR As Long
If bSetOnTop Then
lR 
SetWindowPos(hwndHWND_TOPMOST0000SWP_NO**** Or SWP_NOSIZE)
Else
lR SetWindowPos(hwndHWND_NOTOPMOST0000SWP_NO**** Or SWP_NOSIZE)
End If
End Sub

Private Sub Form_Load()
SetOnTop Form1.hwndTrue
End Sub 
PHP كود :
 Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Int32ByVal hWndInsertAfter As Int32ByVal x As Int32ByVal y As Int32ByVal cx As Int32ByVal cy As Int32ByVal wFlags As Int32) As Int32
   
Const HWND_TOPMOST = -1
   
Const HWND_NOTOPMOST = -2                
   
Const SWP_NOSIZE = &H1
   
Const SWP_NOMOVE = &H2
   
Const SWP_NOACTIVATE = &H10
   
Const SWP_SHOWWINDOW = &H40
'form load
SetWindowPos(Handle, HWND_TOPMOST, Left / 15, Top / 15, Width / 15, Height / 15, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)

'
*******************************************************
'???????????????????????????????????????????????????????
Public Class Form2   
    Public Declare Function apiFindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    Public Declare Function apiGetTopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Integer) As Integer
    Public Declare Function apiGetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Integer
    Dim rTopMost As New System.Threading.Thread(AddressOf ReturnTopMost) '
Declare thread for returning topmost

    Delegate 
Function HandleDelegate() As Int32
    Public hndl 
As HandleDelegate

    Delegate Sub setTopMostDelegate
()
 
   Public setTopMost As setTopMostDelegate

    Delegate Sub setRefreshDelegate
()
 
   Public setRefresh As setRefreshDelegate

    Delegate 
Function getTextDelegate() As String
    Public getText 
As getTextDelegate

    Public Sub setTopMostSub
()
 
       Me.TopMost True
    End Sub

    Public Sub setRefreshSub
()
 
       Me.Refresh()
 
   End Sub

    Public 
Function getHandleFunc() As Int32
        Return Me
.Handle.ToInt32
    End 
Function

 
   Public Function getTextSub() As String
        Return Me
.Text.ToString
    End 
Function

 
   Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        hndl 
= New HandleDelegate(AddressOf getHandleFunc)
 
       setTopMost = New setTopMostDelegate(AddressOf setTopMostSub)
 
       setRefresh = New setRefreshDelegate(AddressOf setRefreshSub)
 
       getText = New getTextDelegate(AddressOf getTextSub)

 
       rTopMost.Start() 'Start Return Top Most thread.
    End Sub

    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        rTopMost.Abort() '
Abort TopMost thread if the main form is closed 
    End Sub

    Public Sub ReturnTopMost
()

 
       Dim iHndl As Int32

        iHndl 
Me.Invoke(hndl)

 
       Try
            Do
                System
.Threading.Thread.Sleep(1'Sleep for a short period
                If apiGetTopWindow(apiGetDesktopWindow) <> iHndl Then
                    Me.Invoke(setTopMost)
                    Me.Invoke(setRefresh)
                End If
                apiFindWindow(vbNullString, Me.Invoke(getText))  '
This throws an error if the main window has been terminated.
 
           Loop
        Catch ex 
As Exception
            MessageBox
.Show(ex.Message)
 
       End Try

 
   End Sub

End 
Class 
PHP كود :
<DllImport("user32.dll"SetLastError:=True)> _
Private Shared Function SetWindowPos(ByVal hWnd As IntPtrByVal hWndInsertAfter As IntPtr_
                                     ByVal X 
As IntegerByVal Y As IntegerByVal cx As Integer_
                                     ByVal cy 
As IntegerByVal uFlags As UInt32) As Boolean
End 
Function

ReadOnly HWND_TOPMOST As New IntPtr(-1)
Shared ReadOnly SWP_NOSIZE As UInt32 Convert.ToUInt32(&H1)
Shared ReadOnly SWP_NOMOVE As UInt32 Convert.ToUInt32(&H2)

Private 
Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
    
'Either one of these does the trick
    SetWindowPos(Me.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
    '
Me.TopMost True
End Sub 
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم اخي الكريم
تابع هذا الرابط


او اليك الكود وهو مجرب
كود :
Public Class Form1
' نضع هذه الاكواد اولا
   Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Int32, ByVal hWndInsertAfter As Int32, ByVal x As Int32, ByVal y As Int32, ByVal cx As Int32, ByVal cy As Int32, ByVal wFlags As Int32) As Int32
   Const HWND_TOPMOST = -1
   Const HWND_NOTOPMOST = -2
   Const SWP_NOSIZE = &H1
   Const SWP_NOMOVE = &H2
   Const SWP_NOACTIVATE = &H10
   Const SWP_SHOWWINDOW = &H40
' ثم في حذث تحميل الفورم
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       SetWindowPos(Handle, HWND_TOPMOST, Left / 15, Top / 15, Width / 15, Height / 15, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)
   End Sub
End Class
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: wared , سعود , عبد العزيز البسكري , black coder
#3
(24-06-19, 07:50 PM)ابراهيم ايبو كتب :
السلام عليكم اخي الكريم
تابع هذا الرابط


او اليك الكود وهو مجرب
كود :
Public Class Form1
' نضع هذه الاكواد اولا
   Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Int32, ByVal hWndInsertAfter As Int32, ByVal x As Int32, ByVal y As Int32, ByVal cx As Int32, ByVal cy As Int32, ByVal wFlags As Int32) As Int32
   Const HWND_TOPMOST = -1
   Const HWND_NOTOPMOST = -2
   Const SWP_NOSIZE = &H1
   Const SWP_NOMOVE = &H2
   Const SWP_NOACTIVATE = &H10
   Const SWP_SHOWWINDOW = &H40
' ثم في حذث تحميل الفورم
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       SetWindowPos(Handle, HWND_TOPMOST, Left / 15, Top / 15, Width / 15, Height / 15, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)
   End Sub
End Class

شكرا اخي سقوم بي التجربه و اخبارك بما حدث
الرد }}}
تم الشكر بواسطة: wared , اسامه الهرماوي , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  لماذا البرنامج يتوقف بدل عرض رسالة الخطأ justforit 0 103 07-12-25, 10:22 AM
آخر رد: justforit
  كيف يمكن تصدير ascx كملف dll justforit 1 136 06-12-25, 12:33 AM
آخر رد: salamandal
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,004 06-08-25, 06:34 PM
آخر رد: Taha Okla
  كيف يمكن تحريك الفورم بأستخدام زر heem1986 2 587 30-03-25, 01:58 AM
آخر رد: heem1986
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 654 09-03-25, 03:52 AM
آخر رد: silverlord
Rainbow [VB.NET] عدد من هم فاتحي البرنامج محمد مسافر 1 418 25-02-25, 07:58 PM
آخر رد: princelovelorn
  كيف يمكن تحويل ملف تنفيذى الى فيجوال بيسك 2010 walkady 2 782 07-02-25, 07:57 PM
آخر رد: الورد2
  استفسار عن حمايه البرنامج ahmedramy 1 556 25-12-24, 11:07 PM
آخر رد: aljzazy
  مساعدة في عمل جملة الاتصال في ملف خارج البرنامج Emam emam 2 388 25-11-24, 09:24 PM
آخر رد: Emam emam
  تغيير مكان حفظ الصورة من قاعدة البيانات إلى مجلد في مسار البرنامج F.H.M 37 2,348 05-11-24, 08:30 AM
آخر رد: F.H.M

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


يقوم بقرائة الموضوع: