Visual Basic 1002005 [A Developers Notebook] [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Visual Basic 1002005 [A Developers Notebook] [Electronic resources] - نسخه متنی

شرکت رسانه او ریلی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید







3.12. Prevent Your Application from Starting Twice



Want to make sure that the user can
run no more than one copy of your application on the same computer?
In VB .NET 1.0, you'd need to go through the awkward
task of searching all the loaded processes to make sure your program
wasn't already in memory. In VB 2005, the work is
done for you.


Note: There's no longer a need to write code to
check whether your application is already running. VB 2005 will
perform the check for you.




3.12.1. How do I do that?


In Visual Studio, double-click the My Project item in the
Solution
Explorer. A tabbed window with application settings will appear.
Click the Application tab, and look at the Windows Application
Properties section at the bottom of the tab. Now click the
"Make single instance application"
checkbox and build the project.

If you try to start the application while it's
already running, it will ignore you completely, and nothing will
happen.


3.12.2. What about...


...showing a custom error message?
If you need to show an error message, check for other instances
without stopping the application, or otherwise tweak the code, then
you'll need to perform the check youself by using
the
System.Diagnostics.Process
class. Here's the code to get you started:

' Get the full name of the process for the current application.
Dim ModuleName, ProcessName As String
ModuleName = Process.GetCurrentProcess.MainModule.ModuleName
ProcessName = System.IO.Path.GetFileNameWithoutExtension(ModuleName)
' Check for other processes with this name.
Dim Proc( ) As System.Diagnostics.Process
Proc = Process.GetProcessesByName(ProcessName)
If Proc.Length > 1 Then
' (There is another instance running.)
Else
' (There are no other instances running.)
End If


3.12.3. Where can I learn more?


For more information, look up the "ProcessInfo
class" index entry in the MSDN help, or look up
"Process class sample" index entry
for a full-fledged example.


/ 97