05-10-12, 01:50 PM
اريد كود لو فى برنامج معين مفتوح مروعى يظهر رساله كذا.exe مفتوح اقفل كذا.exe وى حاول مره اخرى وى المشروع مايفتحش لاغايت ماالبرنامج التانى يقفل
™ like VB ™ كتب :اريد كود لو فى برنامج معين مفتوح مروعى يظهر رساله كذا.exe مفتوح اقفل كذا.exe وى حاول مره اخرى وى المشروع مايفتحش لاغايت ماالبرنامج التانى يقفل
[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]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 ClassRaggi 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
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