আমি সি # থেকে কোনও প্রক্রিয়া কীভাবে শুরু করব?


উত্তর:


220

ম্যাট হ্যামিল্টনের পরামর্শ অনুসারে, দ্রুত পদ্ধতির যেখানে আপনার প্রক্রিয়াটির সীমিত নিয়ন্ত্রণ রয়েছে, তা হ'ল System.Diagnostics.Process ক্লাসে স্ট্যাটিক স্টার্ট পদ্ধতিটি ব্যবহার করা ...

using System.Diagnostics;
...
Process.Start("process.exe");

বিকল্পটি হ'ল প্রক্রিয়া শ্রেণীর উদাহরণ ব্যবহার করা। সময়সূচী, যে উইন্ডোটি এটি চলবে এবং যেভাবে আমার জন্য সবচেয়ে কার্যকরভাবে প্রক্রিয়াটি শেষ হবে তার অপেক্ষা করার ক্ষমতা সহ প্রসেসের উপর এটি আরও বেশি নিয়ন্ত্রণের অনুমতি দেয়।

using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.

এই পদ্ধতিটি আমি উল্লেখ করেছি তার চেয়ে অনেক বেশি নিয়ন্ত্রণের অনুমতি দেয়।


আমি আউটলুক ব্যবহার করে .msg ফাইল খোলার জন্য এই পদ্ধতিটি ব্যবহার করেছি তবে যখন আমি অন্য .msg ফাইলটি খোলার চেষ্টা করি তখন এটি অন্য একটি দৃষ্টিভঙ্গি খুলল। বর্তমান প্রক্রিয়াটি পুনরায় ব্যবহার এবং অন্য দৃষ্টিভঙ্গি না খোলার কোনও উপায় আছে কি? stackoverflow.com/questions/28534358/...
user1166085

4
আপনার ব্যবহারের বিবৃতি ব্যবহার করতে হবে বা প্রক্রিয়াটি নিষ্পত্তি করতে হবে পাশাপাশি স্ট্যাকওভারফ্লো.com
হ্যাপ্প

25

কোনও প্রক্রিয়া শুরু করতে আপনি System.Diagnostics.Process.Start পদ্ধতিটি ব্যবহার করতে পারেন । এমনকি আপনি স্ট্রিং হিসাবে একটি URL পাস করতে পারেন এবং এটি ডিফল্ট ব্রাউজারটি সরিয়ে ফেলবে kick


14

যেমন ম্যাট বলেছেন, প্রসেস.স্টার্টটি ব্যবহার করুন

আপনি একটি URL বা একটি দস্তাবেজ পাস করতে পারেন। এগুলি নিবন্ধিত আবেদন দ্বারা শুরু করা হবে।

উদাহরণ:

Process.Start("Test.Txt");

এটি পাঠ্য.টেক্সট লোড সহ নোটপ্যাড.এক্সি শুরু করবে।


4
এই ধরণের জন্য কোনও প্রোগ্রাম নিবন্ধিত না হলে কী হয়?
LC

2
@ এলসি Win32Exception(0x80004005) "এই অপারেশনের জন্য নির্দিষ্ট ফাইলের সাথে কোনও অ্যাপ্লিকেশন যুক্ত নয়"
ইউশা আলেয়াউব

9

আমি নিজের প্রোগ্রামে নিম্নলিখিতটি ব্যবহার করেছি।

Process.Start("http://www.google.com/etc/etc/test.txt")

এটি কিছুটা বেসিক, তবে এটি আমার জন্য কাজ করে।


1
আপনার উদাহরণ হিসাবে যেমন কোনও ইউআরএল ব্যবহার করা হয় তখন এটির URL টি খুলতে সিস্টেমের ডিফল্ট ওয়েব ব্রাউজার ব্যবহার করার সুবিধাও রয়েছে।
লেবুসীদ

যদি আমি এটি একটি সার্ভার ব্যবহার করি তবে এটি কি সার্ভার ব্রাউজারে খুলবে বা ক্লায়েন্ট ব্রাউজারে?
এটি একটি ফাঁদ

6
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe");
Process.Start(new ProcessStartInfo(path));

5

আপনি কোনও অ্যাপ্লিকেশন চালানোর জন্য এই সিনট্যাক্সটি ব্যবহার করতে পারেন:

System.Diagnostics.Process.Start("Example.exe");

এবং একটি ইউআরএল জন্য একই। এর মধ্যে আপনার URL লিখুন ()

উদাহরণ:

System.Diagnostics.Process.Start("http://www.google.com");



3

এই ঘোষণা

[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);

এবং এটি আপনার ফাংশনের ভিতরে রাখুন (নোট করুন যে "চেক ইনস্টল করা" isচ্ছিক, তবে আপনি যদি এটি ব্যবহার করেন তবে আপনাকে এটি প্রয়োগ করতে হবে)

if (ckeckInstalled("example"))
{
    int count = Process.GetProcessesByName("example").Count();
    if (count < 1)
        Process.Start("example.exe");
    else
    {
        var proc = Process.GetProcessesByName("example").FirstOrDefault();
        if (proc != null && proc.MainWindowHandle != IntPtr.Zero)
        {
            SetForegroundWindow(proc.MainWindowHandle);
            ShowWindowAsync(proc.MainWindowHandle, 3);
        }
    }
}

দ্রষ্টব্য: .exe এর একাধিক উদাহরণ চলমান অবস্থায় এটি কাজ করে কিনা তা আমি নিশ্চিত নই।


2

অন্তর্ভুক্ত using System.Diagnostics;

এবং তারপর এই কল Process.Start("Paste your URL string here!");

এরকম কিছু চেষ্টা করুন:

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;

namespace btnproce
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string t ="Balotelli";
            Process.Start("http://google.com/search?q=" + t);
        }
    }
}

দয়া করে মনে রাখবেন এটি উদাহরণ হিসাবে একটি নমুনা ASP.NET পৃষ্ঠা। আপনার চেষ্টা করা উচিত এবং কিছুটা অসম্পূর্ণ হওয়া উচিত।



0

উইন্ডোজ ব্যবহার করা হয়

Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();

নেট ফ্রেমওয়ার্কের জন্য কাজ করে তবে নেট কোর 3.1 এর জন্যও ইউজশেলএক্সেকুটটি সত্য হিসাবে সেট করা দরকার

Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.