সি # থেকে একটি অ্যাপ্লিকেশন (.EXE) আরম্ভ করছেন?


164

আমি কীভাবে সি # ব্যবহার করে একটি অ্যাপ্লিকেশন চালু করতে পারি?

প্রয়োজনীয়তা: উইন্ডোজ এক্সপি এবং উইন্ডোজ ভিস্তার উপর অবশ্যই কাজ করা উচিত ।

আমি ডিনারনও ​​নেট স্যাম্পলার থেকে একটি নমুনা দেখেছি যা কেবল উইন্ডোজ ভিস্টায় কাজ করে।

উত্তর:


168

System.Diagnostics.Process.Start()পদ্ধতি ব্যবহার করুন ।

পরীক্ষা করে দেখুন এই নিবন্ধটি এটি কিভাবে ব্যবহার করতে হয়।

Process.Start("notepad", "readme.txt");

string winpath = Environment.GetEnvironmentVariable("windir");
string path = System.IO.Path.GetDirectoryName(
              System.Windows.Forms.Application.ExecutablePath);

Process.Start(winpath + @"\Microsoft.NET\Framework\v1.0.3705\Installutil.exe",
path + "\\MyService.exe");

230

এখানে সহায়ক কোডের স্নিপেট রয়েছে:

using System.Diagnostics;

// Prepare the process to run
ProcessStartInfo start = new ProcessStartInfo();
// Enter in the command line arguments, everything you would enter after the executable name itself
start.Arguments = arguments; 
// Enter the executable to run, including the complete path
start.FileName = ExeName;
// Do you want to show a console window?
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;
int exitCode;


// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
     proc.WaitForExit();

     // Retrieve the app's exit code
     exitCode = proc.ExitCode;
}

এই বিষয়গুলি নিয়ে আপনি আরও অনেক কিছু করতে পারেন, আপনার ডকুমেন্টেশনটি পড়া উচিত: প্রসেসস্টার্টআইএনফো , প্রক্রিয়া


7
কেবল এটি উল্লেখ করতে চেয়েছিলেন যে এটি .exes এর চেয়ে অন্য ফাইল টাইপের সাথেও কাজ করে বলে মনে হচ্ছে। আপনি যে ফাইলটি খুলতে চান তা কেবল ইঙ্গিত করুন এবং উইন্ডোজ এটি খোলার জন্য যথাসাধ্য চেষ্টা করবে: System.Diagnostics.Process.Start (@ "সি: \ ব্যবহারকারীরা \ ফাঁকা \ ডেস্কটপ \ পিডিএফএফিল.পিডিএফ");
ডিএলহেহ

উইন্ডোস্টাইল = প্রক্রিয়া উইন্ডো স্টাইল H লুকানো নন-জিইউআইয়ের জন্য। আমি প্রথমবার এটি চালিয়ে গিয়েছিলাম UseShellExecute = মিথ্যা ব্যতীত এটি ব্যর্থ হয়েছে, তবে এটি এখন কার্যকর। নিশ্চিত যে সেখানে কী চলছে ...
বার্টন

আমি যদি এক্সির পুরো নাম না জানি, তবে আমি "প্যাথটো * .এক্সে" কল করতে চাই এটি কি সম্ভব? আমি কি বাকী নামের জন্য "*" ব্যবহার করতে পারি?
વિશাল

@ বিশাল, এই প্রক্রিয়াটি একটি নির্দিষ্ট নির্বাহযোগ্যকে কল করার জন্য। আপনি অবশ্যই ব্যবহার করার চেষ্টা করতে পারেন PathTo*.exeতবে আমি এটির কাজ করবে বলে আশা করব না। (ক) একাধিক ম্যাচ হলে কী হবে? (খ) আমি আশা করব যে মাইক্রোসফ্টের কোড এটির অনুমতি দেয় না, কারণ এটি দুর্বল সুরক্ষা হবে।
sfuqua



14

আমার মতো সিস্টেম.ডায়াগনস্টিক্স ব্যবহার করতে যদি আপনার সমস্যা হয় তবে নিম্নলিখিত সহজ কোডটি ব্যবহার করুন যা এটি ছাড়া কার্যকর হবে:

Process notePad = new Process();
notePad.StartInfo.FileName   = "notepad.exe";
notePad.StartInfo.Arguments = "mytextfile.txt";
notePad.Start();

10
এটি কীভাবে "সিস্টেম.ডায়াগনস্টিক্স ছাড়াই"? ProcessSystem.Diagnostics এ রয়েছে।
পল সিনক্লেয়ার

8

অতিরিক্তভাবে আপনি যদি সম্ভব হয় তবে আপনার পথগুলির জন্য পরিবেশ পরিবর্তনগুলি ব্যবহার করতে চাইবেন: http://en.wikedia.org/wiki/En পরিবেশ_ Default_Values_on_Mic Microsoft_Windows

ই জি

  • % WINDIR% = উইন্ডোজ ডিরেক্টরি
  • % অ্যাপডাটা% = অ্যাপ্লিকেশন ডেটা - ভিস্তা এবং এক্সপি-র মধ্যে অনেক বেশি পরিবর্তিত হয়।

আরও দীর্ঘ তালিকার জন্য আরও অনেক লিঙ্ক চেক আউট রয়েছে।


2

কেবলমাত্র আপনার ফাইল.এক্সিকে \ বিন \ ডিবাগ ফোল্ডারে রেখে দিন এবং ব্যবহার করুন:

Process.Start("File.exe");

3
আগের উত্তরগুলিতে আপনার উত্তর কীভাবে উন্নতি করবে?
mustaccio

এই পোস্টটি দেখতে আসা বেশিরভাগ লোকেরা কোনও ফাইলের পথ সম্পর্কে বিভ্রান্ত হয়ে পড়ে যা সাধারণত তারা ডিবাগ ফোল্ডারে রেখে দেয় তাই যখন তারা আমার ইঙ্গিত "ফাইল.এক্সে" সরাসরি ব্যবহার করে তখন বুঝতে হবে এই ক্ষেত্রে কোনও পথের প্রয়োজন নেই।
আমিন মোহাম্মদ

0

ব্যবহার করুন Process.Start একটি প্রক্রিয়া শুরু করা হবে।

using System.Diagnostics;
class Program
{
    static void Main()
    {
    //
    // your code
    //
    Process.Start("C:\\process.exe");
    }
} 

0

এটা চেষ্টা কর:

Process.Start("Location Of File.exe");

(নিশ্চিত করুন যে আপনি সিস্টেমটি ব্যবহার করেন D ডায়াগনস্টিকস লাইব্রেরি)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.