منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[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=20271)



كيفية فتح البرنامج اكتر من مرة بشروط معينة - الماجيك مسعد - 06-05-17

السلام عليكم

عندى برنامج مكون من فورم 1

بجانب البرنامج يوجد ملفين نصى
1.txt الخاص بعدد مرات تشغيل البرنامج
2.txt يوجد به عناصر سوف تضاف لليست بوكس فى البرنامج

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

فى الملف رقم 1 هكتب فيه رقم والرقم دا يكون عدد مرات تشغيل البرنامج

يعنى مثلا لو كتبت فيه 5 يبقا البرنامج يفتح نفسه 5 مرات

ثانيا الملف رقم 2 نفترض ان به 100 عنصر

والبرنامج فتح مثلا 5 مرات عايز بقا يقسم عدد العناصر على البرامج المفتوحة مثلا هو مفتوح 5 مرات

و 100 على 5 = 20

يبقا كدا المفروض كل برنامج منهم هيضاف لليست بوكس بتاعته 20 عنصر

يبقا كدا المطلوب

هو فتح البرنامج بعدد مرات معينة من اختيار المستخدم و تقسيم عدد العناصر على البرامج المفتوحة

اتمنى يكون الطلب واضح

شكرا لكم مقدما


RE: كيفية فتح البرنامج اكتر من مرة بشروط معينة - mansoor - 06-05-17

اذا كان (بجانب البرنامج يوجد ملفين نصى) وكان البرنامج في مجلد البرامج Program Files فستحتاج لصلاحيات الكتابة.


RE: كيفية فتح البرنامج اكتر من مرة بشروط معينة - الماجيك مسعد - 06-05-17

(06-05-17, 08:34 PM)mansoor كتب : اذا كان (بجانب البرنامج يوجد ملفين نصى) وكان البرنامج في مجلد البرامج Program Files فستحتاج لصلاحيات الكتابة.

هههه شكرا لك للتنبيه ولكن اخى الغالى لا اظن ان الصلاحيات هى مشكلة بالنسبة لى اكتر من عمل كود يفعل المطلوب


RE: كيفية فتح البرنامج اكتر من مرة بشروط معينة - mansoor - 06-05-17

نعم جوابي للتنبيه فقط، ولكن الباقي أتركه لم سبق له الدخول في مسألة عدد مرات التشغيل وبقية التفاصيل التي في الموضوع.


RE: كيفية فتح البرنامج اكتر من مرة بشروط معينة - zinom - 07-05-17

ياريت لو تشاركنا بمثال يمكن نقدر نساعد

الموضوع بخصوص الحمايه اخي مسعد ؟!
مظبوط كلامي؟


RE: كيفية فتح البرنامج اكتر من مرة بشروط معينة - الماجيك مسعد - 07-05-17

(07-05-17, 01:52 AM)zinom كتب : ياريت لو تشاركنا بمثال يمكن نقدر نساعد

الموضوع بخصوص الحمايه اخي مسعد ؟!
مظبوط كلامي؟

تفضل http://vb4arb.com/vb/attachment.php?aid=14157

لا ليس الغرض منه الحماية وانما انجاز بعض الاعمال


RE: كيفية فتح البرنامج اكتر من مرة بشروط معينة - الماجيك مسعد - 07-05-17

شكرا لكم جميعا

تم المساعدة بواسطة صديق خارج المنتدى

والحل

'Current Process
Dim proc As Process = Process.GetCurrentProcess()

'All running processes with the same name
Dim procs() As Process = Process.GetProcessesByName(proc.ProcessName)
'////////////////////////////////////////////////////////////////////////////////'
'Read settings file
'Should be first line = Instances:5 , second line = DataLength:1000
Dim settings() As String = File.ReadAllLines(Path.Combine(APATH, "Settings.txt"))

'Read how many instances the user want
Dim instances As Integer = Integer.Parse(settings(0).Replace("Instances:", ""))

'Get data file length
Dim len As Integer = Integer.Parse(settings(1).Replace("DataLength:", ""))
'////////////////////////////////////////////////////////////////////////////////'

'Check if this one is the first instance
If procs.Length = 1 Then
'Open the program n times
For index = 1 To instances - 1
Process.Start(proc.ProcessName)
System.Threading.Thread.Sleep(200)
Next
ElseIf procs.Length > instances Then
MessageBox.Show("Cannot create more instances")
System.Environment.Exit(0)
End If


Dim skip As Integer = (procs.Length - 1) * (len \ instances)
'if proces.Length == instances take (len - skip) else take (len / instances)
'to make sure there is no leftover data
Dim take As Integer = If(procs.Length = instances, (len - skip), (len \ instances))


'Read the data
data = File.ReadLines(Path.Combine(APATH, "2.txt")).Skip(skip).Take(take).ToArray()
ListBox1.Items.AddRange(data)
'For debugging, Show HM instances are running & data[0] - data[max] in the title
Text = procs.Length & ":" & data(0) & ":" & data(data.Length - 1)