PDA

View Full Version : کمک در مورد اجرای برنامه تحت یه برنامه دیگر



siavash-123
یک شنبه 12 آذر 1396, 18:48 عصر
با سلام خدمت اساتید محترم

من یه برنامه نوشتم با vb.net می خواستم ببینم چطور می تونم کاری کنم که فقط تحت یه برنامه دیگر اجرا شود و بصورت عادی اجرا نشود .

با تشکر

samiasoft
یک شنبه 12 آذر 1396, 19:34 عصر
با سلام خدمت اساتید محترم

من یه برنامه نوشتم با vb.net می خواستم ببینم چطور می تونم کاری کنم که فقط تحت یه برنامه دیگر اجرا شود و بصورت عادی اجرا نشود .

با تشکر

این سوالی که پرسیدید خیلی جای کار داره

اسونترین راهی که میشه پیشنهاد داد :

برنامه اول میخواهد برنامه دوم رو اجرا کند ....طوری که برنامه دوم فقط از طریق برنامه اول اجرا بشه.

برای این حالت میتوان در برنامه دوم شرطی گذاشت که برای مثال اگر فلان مقدار در رجیستری بود برنامه اجرا بشه.

در برنامه اول هم وقتی که میخواهیم برنامه دوم رو اجرا کنیم همان مقدار در رجیستری رو ثبت میکنیم تا برنامه دوم رو بتواند اجرا کند....

همچنین در برنامه دوم قسمت خروجش دستوری قرار میدیم که هنگام بسته شدن مقادیر ثبت شده در رجیستری رو حذف کند.


من اینجا رجیستری رو مثال زدم شما میتوانید راه های دیگری رو هم انجام بدید و در جهت امنیت هم راهکارهای زیادی وجود دارد

siavash-123
یک شنبه 12 آذر 1396, 20:11 عصر
این سوالی که پرسیدید خیلی جای کار داره

اسونترین راهی که میشه پیشنهاد داد :

برنامه اول میخواهد برنامه دوم رو اجرا کند ....طوری که برنامه دوم فقط از طریق برنامه اول اجرا بشه.

برای این حالت میتوان در برنامه دوم شرطی گذاشت که برای مثال اگر فلان مقدار در رجیستری بود برنامه اجرا بشه.

در برنامه اول هم وقتی که میخواهیم برنامه دوم رو اجرا کنیم همان مقدار در رجیستری رو ثبت میکنیم تا برنامه دوم رو بتواند اجرا کند....

همچنین در برنامه دوم قسمت خروجش دستوری قرار میدیم که هنگام بسته شدن مقادیر ثبت شده در رجیستری رو حذف کند.


من اینجا رجیستری رو مثال زدم شما میتوانید راه های دیگری رو هم انجام بدید و در جهت امنیت هم راهکارهای زیادی وجود دارد

مرسی بابت راهنماییتون

محمد آشتیانی
دوشنبه 13 آذر 1396, 11:18 صبح
سلام
راه درستش اینه که برای اجرای برنامتون پارامتر تعیین کنید (نیازی به رجیستری و این تیپ راه حل ها نیست) ، خب به چه صورت؟ خواهم گفت

اول اینکه در برنامتون یک ماژول جدید به نام Program ایجاد کنید و داخلش این کدها رو بنویسید

Module Program


Public Sub Main(args() As String)


Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(Fals e)


If (args.Length > 0) Then


If (args(0) <> "Allow") Then
MsgBox("This application cant run in this mode" + vbCrLf + vbCrLf + "Please contact technical support", MsgBoxStyle.OkOnly, "Incorrect execution mode")
Return
End If


Else


MsgBox("This application cant run in this mode" + vbCrLf + vbCrLf + "Please contact technical support", MsgBoxStyle.OkOnly, "Incorrect execution mode")
Return


End If

Application.Run(New Form1)


End Sub


End Module


توجه کنید خطی که نوشته شده Application.Run ، اون Form1 ، فرم ابتدایی برنامتون هست که اول اجرا میشه

مرحله بعد اینه که روی پروژتون از Solution Explorer راست کلیک کنید و گزینه Properties رو انتخاب کنید ، از فرم تنظیمات پروژه که باز میشه در سربرگ Application ، تیک گزینه Enable Application Framework رو بردارید.

تا اینجا ، کار تمام است.

حالا برای اجرای این برنامه شما نیاز دارید یک پارامتر با مقدار Allow بهش بدید (این مقدار در ماژولی که بالاتر گفتم تعیین شده و میتونه هر چیزی که شما میخواهید باشه)
اگر بخواهید از برنامه دیگری این برنامه رو لود کنید ، به این ترتیب باید کد بنویسید

Dim pHelp As New ProcessStartInfo With {
.FileName = "آدرس فایل اجرایی برنامه اولتون",
.Arguments = "Allow",
.UseShellExecute = True,
.WindowStyle = ProcessWindowStyle.Normal
}


Process.Start(pHelp)



همچنین می تونید این پارامتر رو برای اجرا در cmd به برنامتون پاس بدید تا اجرا بشه ، در غیر اینصورت با نمایش پیغام مناسب از اجرای برنامه جلوگیری میکنه.


موفق باشید