نمایش نتایج 1 تا 8 از 8

نام تاپیک: port اسکنر - تشخیص وضعیت پورت

  1. #1

    port اسکنر - تشخیص وضعیت پورت

    با سلام دوستان

    من یه فرم دارم توش 8تا دکمه داره و هرکدام از دکمه ها یه فرمو باز میکنه که دارای محتویات خود هستند

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

    حالا من این کنسولو نمیتونم از گزینه add new itemsاضافه کنم ولی میتونم توی add new project

    اضافه کنم ممنون میشم کمک کنید تا بفهمم چطوری میتونم یه برنامه کنسولو تو یویندوز فرم بازدن دکمه خودش اجراش کنمکه توی همون فرم باز شده نشون بده

    ممنون

  2. #2

    نقل قول: فراخوانی کنسول

    نقل قول نوشته شده توسط xm0r741 مشاهده تاپیک
    با سلام دوستان

    من یه فرم دارم توش 8تا دکمه داره و هرکدام از دکمه ها یه فرمو باز میکنه که دارای محتویات خود هستند

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

    حالا من این کنسولو نمیتونم از گزینه add new itemsاضافه کنم ولی میتونم توی add new project

    اضافه کنم ممنون میشم کمک کنید تا بفهمم چطوری میتونم یه برنامه کنسولو تو یویندوز فرم بازدن دکمه خودش اجراش کنمکه توی همون فرم باز شده نشون بده

    ممنون
    سلام دوستان
    من فهمیدم با این دستور میشه کنسول بالا بیاد

    private void button1_Click(object sender, EventArgs e)
    {
    AllocConsole();
    }

    [DllImport("kernel32.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool AllocConsole();

    ممنون میشم بگید کد های کنسولو از کجاش شروع کنم تا اجرا شن
    آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 01 اسفند 1395 در 00:08 صبح

  3. #3

    نقل قول: فراخوانی کنسول

    چند راه حل وجود داره:
    1- کدها رو در یک نوع پروژه(ویندوز اپلیکیشن) بنویسید. اگر نمیتونید کدهای کنسول رو تبدیل کنید، کدهاتون رو قرار بدید تا دوستان در تبدیلش کمک کنند.
    2- در پروژه ای که اصل هست، پروژه دیگر رو Add Reference کنید و ازش استفاده کنید.(در اینصورت سولوشن شما حداقل دارای دو پروژه خواهد بود)
    3- دو پروژه رو یکی کنید(کنسول اپلیکیشن). به اینصورت که در پروژه کنسول، فرم جدید یا فرمی که از قبل ایجاد کردید رو اضافه و کدنویسی کنید.
    از بین سه گزینه بالا، گزینه اول رو پیشنهاد میکنم.
    4- اما کار بهتر این هست که کدی که منطق و محاسبات برنامه تون هست و ربطی به کنسول و فرم نداره را در یک پروژه از نوع Class Library قرار بدید. در اینصورت میتونید به راحتی در هر نوع پروژه ای اعم از ویندوزفرم، کنسول، وب اپلیکیشن و ... استفاده کنید.

  4. #4

    نقل قول: فراخوانی کنسول

    با سلام
    و ممنون که پاسخ دادین
    در قالب فرم نوشتم سرعت ترد خیلی کمه و هنگ میکنه راستیتش فول پورت اسکنر هس و از پورت 1 تا 990

    اینم کد ویندوزیمه اما تو همین 20تا پورت میمونه و هنگ میکنه

    private void button1_Click(object sender, EventArgs e)
    {
    string Target = textTarget.Text;
    short[] porty = new short[] {20,21,22,23,25,53,80,137,138,139,143,161,162,179, 389,443,636,989,990 };
    foreach(short i in porty)
    {
    try
    {
    TcpClient kilent = new TcpClient(Target, i);
    listBox1.Items.Add("Port" + Convert.ToString(i) + "Is Open");
    }
    catch
    {
    listBox1.Items.Add("Port" + Convert.ToString(i) + "Is Close");
    }
    }
    }

    اما تو کنسول توی کسزی از ثانیه جواب میده
    ممنون میشم از اساتید کمک کنن خیلی لنک موندم
    آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 01 اسفند 1395 در 07:26 صبح

  5. #5

    نقل قول: فراخوانی کنسول

    از تردها کمک بگیرید تا UI فریز نشه. به صورت موازی هم میتونید استفاده کنید.
                string Target = textTarget.Text;
    List<int> ports = new List<int>(new[] {20, 21, 22, 23, 25, 53, 80, 137, 138, 139, 143, 161, 162, 179, 389, 443, 636, 989, 990});
    System.Threading.Tasks.Parallel.ForEach(ports, i =>
    {
    try
    {
    using (TcpClient client = new TcpClient(Target, i))
    {
    listBox1.Invoke(new MethodInvoker(() => { listBox1.Items.Add("Port " + i + " Is Open"); }));
    }
    }
    catch (SocketException se)
    {
    listBox1.Invoke(new MethodInvoker(() => { listBox1.Items.Add("Port " + i + " Is Close"); }));
    }
    });


    اگر از دات نت 3.5 استفاده میکنید ، بسته زیر رو به رفرنس های پروژه اضافه کنید
    https://www.nuget.org/packages/TaskParallelLibrary
    آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 01 اسفند 1395 در 19:54 عصر

  6. #6

    نقل قول: فراخوانی کنسول

    با سلام دوست عزیز و خیلی خیلی ممنون از کمکت
    اما باز مشکل فریز دارم


    private void button1_Click(object sender, EventArgs e)
    {
    string Target = textTarget.Text;
    short[] porty = new short[] {20,21,22,23,25,53,80,137,138,139,143,161,162,179, 389,443,636,989,990 };
    foreach(short i in porty)
    {
    try
    {
    TcpClient kilent = new TcpClient(Target, i);
    listBox1.Items.Add("Port" + Convert.ToString(i) + "Is Open");
    }
    catch
    {
    listBox1.Items.Add("Port" + Convert.ToString(i) + "Is Close");
    }
    }

    }

    private void button3_Click(object sender, EventArgs e)
    {
    this.Close();
    }
    }
    }

    این کل کدی هس که من استفاده میکنم

    واین عکس او صفحه
    ضمیمه 144532
    آخرین ویرایش به وسیله xm0r741 : دوشنبه 02 اسفند 1395 در 02:58 صبح

  7. #7

    نقل قول: فراخوانی کنسول

    شما در حد copy & paste هم اگر عمل کنید با کدی که بنده گذاشتم به جواب خواهید رسید.

  8. #8

    نقل قول: فراخوانی کنسول

    با سلام
    کردم باز فریز میشد اما بعد از 2 مین تموم میکنه
    راستی از دات نت 4.5.2
    استفاده میکنم به خاطر رفرنسها
    مهند س ممنوندمت گرم حل شد
    آخرین ویرایش به وسیله xm0r741 : دوشنبه 02 اسفند 1395 در 02:56 صبح

تاپیک های مشابه

  1. چگونگی تشخیص وضعیت ویندوز ؟؟؟
    نوشته شده توسط mk53853 در بخش برنامه نویسی در Delphi
    پاسخ: 13
    آخرین پست: دوشنبه 07 خرداد 1386, 13:56 عصر
  2. تشخیص وضعیت بانک در تریگر
    نوشته شده توسط Mohammadi_F در بخش SQL Server
    پاسخ: 3
    آخرین پست: دوشنبه 07 اسفند 1385, 17:02 عصر
  3. تشخیص وضعیت اتصال به اینترنت
    نوشته شده توسط روانشناس در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 21 دی 1385, 20:50 عصر
  4. آموزشی - نمایش وضعیت پورت های باز در لینوکس
    نوشته شده توسط Identifier در بخش شبکه و Networking‌
    پاسخ: 0
    آخرین پست: یک شنبه 08 مرداد 1385, 11:14 صبح
  5. تشخیص وضعیت افراد شبکه.
    نوشته شده توسط پریسا نامدار در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: دوشنبه 25 آبان 1383, 02:12 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •