تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[عنوان معدل] طلب كود process list
#1
اريد كود لو فى برنامج معين مفتوح مروعى يظهر رساله كذا.exe مفتوح اقفل كذا.exe وى حاول مره اخرى وى المشروع مايفتحش لاغايت ماالبرنامج التانى يقفل
الرد }}}
تم الشكر بواسطة:
#2
اخي الكريم حاول ان تبحث عن
process list vb.net
او
تبحث في فكرة API Findwindow
http://www.pinvoke.net/default.aspx/user32.findwindow
الرد }}}
تم الشكر بواسطة:
#3
™ like VB ™ كتب :اريد كود لو فى برنامج معين مفتوح مروعى يظهر رساله كذا.exe مفتوح اقفل كذا.exe وى حاول مره اخرى وى المشروع مايفتحش لاغايت ماالبرنامج التانى يقفل

هل تقصد تمنع تشغيل متعدد لنفس التطبيق بمعنى Single Instance به GUID متطابق...
اذا نعم فهناك خاصية موجودة ضمن خصائص مشاريع vb.net في التاب الخاص Application ضع اشارة في صندوق Make single instance application

كود :
[align=left]Private Shared Sub Main()
    Using mutex As New Mutex(False, "Global\" + appGuid)
        If Not mutex.WaitOne(0, False) Then
            MessageBox.Show("Instance already running")
            Return
        End If
        Application.Run(New Form1())
    End Using
End Sub
[/align]
الرد }}}
تم الشكر بواسطة:
#4
قم بفتح وليكن Notepad ثم قم بتشغيل البرنامج المرفق سوف يطلب منك غلق ال Notepad أولا
المثال مصمم ب 2012 إذا لم يكن لديك قم بفتح form1.vb والإطلاع على الكود


الملفات المرفقة
.rar   CloseProcess.rar (الحجم : 98.83 ك ب / التحميلات : 61)
الرد }}}
تم الشكر بواسطة:
#5
من بعد أذنكم جميعاً
أخي أستبدل كود Form1 بالكود التالي (طبعاً مع أستبدال كذا.exe بأسم البرنامج)
كود :
Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Do Until IsProcessRunning("كذا.exe") = False
            If MessageBox.Show("Please close كذا.exe before opening this program.", "Error!", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Cancel Then
                End
            End If
        Loop
    End Sub


    Public Function IsProcessRunning(ByVal processName As String) As Boolean
        Dim Prc As Process() = Process.GetProcesses()
        processName = processName.Replace(".exe", "")
        Dim running As Boolean = False
        For Each P As Process In Prc
            If P.ProcessName = processName Then
                running = True
                Exit For
            End If
        Next
        Return running
    End Function
End Class
الرد }}}
تم الشكر بواسطة:
#6
Raggi Tech كتب :اخي الكريم حاول ان تبحث عن
process list vb.net
او
تبحث في فكرة API Findwindow
http://www.pinvoke.net/default.aspx/user32.findwindow
جزاك الله كل خير اخى
newbie2vb كتب :هل تقصد تمنع تشغيل متعدد لنفس التطبيق بمعنى Single Instance به GUID متطابق...
اذا نعم فهناك خاصية موجودة ضمن خصائص مشاريع vb.net في التاب الخاص Application ضع اشارة في صندوق Make single instance application

كود :
[align=left]Private Shared Sub Main()
    Using mutex As New Mutex(False, "Global\" + appGuid)
        If Not mutex.WaitOne(0, False) Then
            MessageBox.Show("Instance already running")
            Return
        End If
        Application.Run(New Form1())
    End Using
End Sub
[/align]
جزاك الله كل خير اخى
amgadtamer كتب :قم بفتح وليكن Notepad ثم قم بتشغيل البرنامج المرفق سوف يطلب منك غلق ال Notepad أولا
المثال مصمم ب 2012 إذا لم يكن لديك قم بفتح form1.vb والإطلاع على الكود

Aly El-Haddad كتب :من بعد أذنكم جميعاً
أخي أستبدل كود Form1 بالكود التالي (طبعاً مع أستبدال كذا.exe بأسم البرنامج)
كود :
Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Do Until IsProcessRunning("كذا.exe") = False
            If MessageBox.Show("Please close كذا.exe before opening this program.", "Error!", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Cancel Then
                End
            End If
        Loop
    End Sub


    Public Function IsProcessRunning(ByVal processName As String) As Boolean
        Dim Prc As Process() = Process.GetProcesses()
        processName = processName.Replace(".exe", "")
        Dim running As Boolean = False
        For Each P As Process In Prc
            If P.ProcessName = processName Then
                running = True
                Exit For
            End If
        Next
        Return running
    End Function
End Class
جزاك الله كل خير اخى
تم الحل
الرد }}}
تم الشكر بواسطة:
#7
يا اخي تفضل هذا الكود المختصر من برمجتي
طبعا هذا الكود تضعه في الفروم لود
قم بتشغيل موجة الاوامر ثم شغل برنامجك
كود :
Dim pro() As Process = System.Diagnostics.Process.GetProcessesByName("cmd")
        Dim check As Boolean = pro.Length

        If check = True Then
            MsgBox(" الرجاء اغلاق موجه الاوامر ")
            Me.Close()
        Else

        End If
الرد }}}
تم الشكر بواسطة:



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


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