Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для free6878
9 / 9 / 1
Регистрация: 01.09.2010
Сообщений: 182
.NET 4.x

Адаптировать консольное приложение в форму

01.01.2011, 14:30. Показов 1876. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу подключить консольную программу к форме. Суть вот в чём консольная программа получает данные, в форме они должны записаться в файл и быть выведены в ListBox ?! Вот текст....
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Net.NetworkInformation;
using System.Globalization;
 
namespace WindowsFormsApplication1
{
    [Flags]
    public enum ProtocolTypes
    {
        None = 0x0000,
        Tcp = 0x0001,
        Udp = 0x0002,
        TcpV6 = 0x0004,
        UdpV6 = 0x0008,
        IP = 0x0010,
        IPv6 = 0x0020,
        Icmp = 0x0040,
        IcmpV6 = 0x0080
    }
    public partial class Form1 : Form
    {
        // имя файла
        
        private string fn = string.Empty;
        private String ff = String.Empty;
        private static bool showNumeric;
        private static bool showListening;
        private static bool showProtocolStatistics;
        private static bool showInterfaceStatistics;
        private static int interval = -1;
        private static ProtocolTypes selectedProtocols = ProtocolTypes.None;
        private const string connectionFormatString =
            "\t{0,-12}{1, -16}{2, -28}{3}";
        private const string equalsFormatString =
            "\t{0, -32} = {1}";
        private const string sendReceiveFormatString =
            "\t{0, -32}{1, -16}{2}";
        private const string errorFormatString =
            "\tStatistics not available for {0}: {1}";
 
        public Form1()
        {
            InitializeComponent();
             
        }
        private static void Vhod(string[] args)
        {
            if (ParseArguments(args))
            {
                while (true)
                {
                    if (showInterfaceStatistics)
                        DisplayInterfaceStatistics();
                    if (showProtocolStatistics)
                        DisplayProtocolStatistics();
                    if (!showInterfaceStatistics && !showProtocolStatistics)
                        DisplayConnections();
                    if (interval <= 0)
                        break;
                    else
                        System.Threading.Thread.Sleep(interval * 1000);
                }
            }
            else
            {
                Usage();
                System.Environment.Exit(0);
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
           
           
        }
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void просмотретьИсториюToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 about = new Form2();
 
            about.ShowDialog();
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            listBox1.Items.Add(textBox1.Text);
            System.DateTime data = System.DateTime.Now;
           ff = data.ToShortDateString();
            fn = ff.Normalize();
            // получить информацию о файле
            System.IO.FileInfo fi =
                    new System.IO.FileInfo(fn);
            // поток для записи        
            System.IO.StreamWriter sw;
 
            if (fi.Exists) // файл данных существует?
                // откроем поток для добавления
                sw = fi.AppendText();
            else
                // создать файл и открыть поток для записи
                sw = fi.CreateText();
            // запись в файл
            sw.WriteLine(textBox1.Text);
 
            // закрыть поток
            sw.Close();
 
        }
        // Helper function display the all possible command line options and 
        // their purpose for this tool.
        private static void Usage()
        {
            TextBox textBox1 = new TextBox();
            textBox1.Text="NETSTATTOOL [-?] [-a] [-e] [-n] [-s] [-p protocol] [interval]";
            textBox1.Text="(default)     Displays open connection information.";
            textBox1.Text="-?            Displays this help message.";
            textBox1.Text="-e            Displays NIC statistics. May be combined with -s.";
            textBox1.Text="-s            Displays per-protocol statistics.  By default, statistics are";
            textBox1.Text="                  shown for TCP.  The -p and -a options may be used to specify";
            textBox1.Text="                  other protocols to display.";
            textBox1.Text="-p protocol   Display information for the protocol specified.";
            textBox1.Text="                  May be any of: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP,";
            textBox1.Text="                  or UDPv6TCP.  Connections can only be shown for TCP,";
            textBox1.Text="                  UDP, TCPv6, or UDPv6.";
            textBox1.Text="-a            Display information for all protocals.";
            textBox1.Text="-n            Displays addresses and port numbers in numerical form.";
            textBox1.Text="interval      Redisplays selected statistics, pausing interval seconds";
            textBox1.Text="                  between each display.  Press CTRL+C to stop.";
        }
 
        // Parse the command line arguments and set appropriate properties as 
        // per requested user options.
        private static bool ParseArguments(string[] args)
        {
            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i].ToLower(CultureInfo.CurrentCulture);
                if (arg.Length < 2 || (arg[0] != '/' && arg[0] != '-'))
                {
                    try
                    {
                        interval =
                            Convert.ToInt32(arg, NumberFormatInfo.CurrentInfo);
                    }
                    catch (FormatException)
                    {
                        return false;
                    }
                    catch (OverflowException)
                    {
                        return false;
                    }
                }
                else
                {
                    switch (arg[1])
                    {
                        // Just display the help message
                        case '?':
                            return false;
                        case 'n':
                            showNumeric = true;
                            break;
                        case 'e':
                            showInterfaceStatistics = true;
                            break;
                        case 'a':
                            selectedProtocols =
                                ProtocolTypes.Tcp | ProtocolTypes.Udp |
                                ProtocolTypes.IP | ProtocolTypes.Icmp |
                                ProtocolTypes.TcpV6 | ProtocolTypes.UdpV6 |
                                ProtocolTypes.IPv6 | ProtocolTypes.IcmpV6;
                            showListening = true;
                            break;
                        case 's':
                            showProtocolStatistics = true;
                            break;
                        case 'p':
                            if (args.Length < i + 1)
                            {
                                return false; // invalid parameters
                            }
                            else
                            {
                                i++;
                                AddSelectedProtocol(
                                    args[i].ToLower(
                                    CultureInfo.CurrentCulture));
                            }
                            break;
                        default:
                            return false;
                    }
                }
            }
            if (selectedProtocols == ProtocolTypes.None)
            {
                // User wants Tcp as default.
                selectedProtocols = selectedProtocols | ProtocolTypes.Tcp;
            }
            return true;
        }
 
        // Get the display string for localIPEndPoint, either numric or full
        // name format.
        private static String GetLocalAddressAsString(IPEndPoint ipe)
        {
            string displayString = ipe.ToString();
            if (!showNumeric)
            {
                displayString =
                    Dns.GetHostName() + ":" + GetPortNameMapping(ipe.Port);
            }
            return displayString;
        }
 
        // Get the display string for Remote IPEndPoint, either numric or full 
        // name format.
        private static String GetRemoteAddressAsString(IPEndPoint ipe)
        {
            string displayString = ipe.ToString();
            if (!showNumeric)
            {
                try
                {
                    displayString =
                        Dns.GetHostEntry(ipe.Address).HostName + ":" +
                        GetPortNameMapping(ipe.Port);
                }
                catch (SocketException)
                {
                }
            }
            return displayString;
        }
 
        private static void AddSelectedProtocol(string protocol)
        {
            switch (protocol)
            {
                case "tcp":
                    selectedProtocols = selectedProtocols | ProtocolTypes.Tcp;
                    break;
                case "udp":
                    selectedProtocols = selectedProtocols | ProtocolTypes.Udp;
                    break;
                case "ip":
                    selectedProtocols = selectedProtocols | ProtocolTypes.IP;
                    break;
                case "icmp":
                    selectedProtocols = selectedProtocols | ProtocolTypes.Icmp;
                    break;
                case "tcpv6":
                    selectedProtocols =
                        selectedProtocols | ProtocolTypes.TcpV6;
                    break;
                case "udpv6":
                    selectedProtocols =
                        selectedProtocols | ProtocolTypes.UdpV6;
                    break;
                case "ipv6":
                    selectedProtocols = selectedProtocols | ProtocolTypes.IPv6;
                    break;
                case "icmpv6":
                    selectedProtocols =
                        selectedProtocols | ProtocolTypes.IcmpV6;
                    break;
            }
        }
 
        // Return the displaystring for known protocol ports
        private static string GetPortNameMapping(int Port)
        {
            string Portname = Port.ToString(NumberFormatInfo.CurrentInfo);
            switch (Port)
            {
                case 21:
                    Portname = "ftp";
                    break;
                case 25:
                    Portname = "smtp";
                    break;
                case 80:
                    Portname = "http";
                    break;
                case 135:
                    Portname = "epmap";
                    break;
                case 137:
                    Portname = "netbios-ns";
                    break;
                case 138:
                    Portname = "netbios-dgm";
                    break;
                case 139:
                    Portname = "netbios-ssn";
                    break;
                case 443:
                    Portname = "ssl";
                    break;
                case 445:
                    Portname = "microsoft-ds";
                    break;
                case 500:
                    Portname = "isakmp";
                    break;
 
            }
            return Portname;
        }
 
        private static string GetProtocolString(ProtocolTypes type)
        {
            switch (type)
            {
                case ProtocolTypes.Icmp: return "ICMP";
                case ProtocolTypes.IcmpV6: return "ICMP V6";
                case ProtocolTypes.IP: return "IP";
                case ProtocolTypes.IPv6: return "IP V6";
                case ProtocolTypes.Tcp: return "TCP";
                case ProtocolTypes.TcpV6: return "TCP V6";
                case ProtocolTypes.Udp: return "UDP";
                case ProtocolTypes.UdpV6: return "UDP V6";
                default: return "Unknown";
            }
        }
 
        // Display the list of connections on console.
        private static void DisplayConnections()
        {
            TextBox textBox1=new TextBox();
            IPGlobalProperties ipGlobal =
                IPGlobalProperties.GetIPGlobalProperties();
            textBox1.Text="Connections";
            textBox1.Text=connectionFormatString +"Protocol"+ "State"+ "Local"+ "Remote";
            if ((selectedProtocols & ProtocolTypes.Tcp) == ProtocolTypes.Tcp)
            {
                TcpConnectionInformation[] tcpInfoList =
                    ipGlobal.GetActiveTcpConnections();
                foreach (TcpConnectionInformation tcpInfo in tcpInfoList)
                {
                    if (tcpInfo.State == TcpState.Listen && !showListening)
                    {
                        // Skip listening port unless user requested all.
                        continue;
                    }
                    else
                    {
                        textBox1.Text=
                            connectionFormatString+
                            "TCP"+
                            tcpInfo.State+
                            GetLocalAddressAsString(tcpInfo.LocalEndPoint)+
                            GetRemoteAddressAsString(tcpInfo.RemoteEndPoint);
                    }
                }
            }
            if ((selectedProtocols & ProtocolTypes.Udp) == ProtocolTypes.Udp)
            {
                IPEndPoint[] udpInfoList = ipGlobal.GetActiveUdpListeners();
                foreach (IPEndPoint udpInfo in udpInfoList)
                {
                    textBox1.Text=
                        connectionFormatString+
                        "UDP"+
                        "(None)"+
                        GetLocalAddressAsString(udpInfo)+
                        "*:*";
                }
            }
        }
 
        // Display the interface statisitics of all interfaces on console.
        private static void DisplayInterfaceStatistics()
        {
            TextBox textBox1 = new TextBox();
            NetworkInterface[] networkInterfaceList =
                NetworkInterface.GetAllNetworkInterfaces();
            
            textBox1.Text="Interface Statistics";
 
            foreach (NetworkInterface nic in networkInterfaceList)
            {
                IPv4InterfaceStatistics interfaceStatistics =
                    nic.GetIPv4Statistics();
                textBox1.Text=
                    sendReceiveFormatString+ nic.Name+ "Received"+ "Sent";
                textBox1.Text=
                    sendReceiveFormatString+
                    "Bytes"+
                    interfaceStatistics.BytesReceived+
                    interfaceStatistics.BytesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Unicast packets"+
                    interfaceStatistics.UnicastPacketsReceived+
                    interfaceStatistics.UnicastPacketsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Non-unicast packets"+
                    interfaceStatistics.NonUnicastPacketsReceived+
                    interfaceStatistics.NonUnicastPacketsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Discards"+
                    interfaceStatistics.IncomingPacketsDiscarded+
                    interfaceStatistics.OutgoingPacketsDiscarded;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Errors"+
                    interfaceStatistics.IncomingPacketsWithErrors+
                    interfaceStatistics.OutgoingPacketsWithErrors;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Unknown protocols"+
                    interfaceStatistics.IncomingUnknownProtocolPackets+
                    "";
                
            }
        }
 
        // Display the protocol statisitics of requested protocols.
        private static void DisplayProtocolStatistics()
        {
            IPGlobalProperties ipGlobal =
                IPGlobalProperties.GetIPGlobalProperties();
 
            if ((selectedProtocols & ProtocolTypes.IP) ==
                ProtocolTypes.IP)
                DisplayIPv4Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.Tcp) ==
                ProtocolTypes.Tcp)
                DisplayTcpV4Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.Udp) ==
                ProtocolTypes.Udp)
                DisplayUdpV4Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.Icmp) ==
                ProtocolTypes.Icmp)
                DisplayIcmpV4Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.UdpV6) ==
                ProtocolTypes.UdpV6)
                DisplayUdpV6Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.TcpV6) ==
                ProtocolTypes.TcpV6)
                DisplayTcpV6Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.IPv6) ==
                ProtocolTypes.IPv6)
                DisplayIPv6Statistics(ipGlobal);
            if ((selectedProtocols & ProtocolTypes.IcmpV6) ==
                ProtocolTypes.IcmpV6)
                DisplayIcmpV6Statistics(ipGlobal);
        }
 
 
        // Display the data for given IcmpV4Statistics object.
        private static void DisplayIcmpV4Statistics(
            IPGlobalProperties ipGlobal)
        {
            TextBox textBox1=new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.Icmp);
            textBox1.Text="{0} Statistics"+ protocol;
 
            try
            {
                IcmpV4Statistics icmpStat = ipGlobal.GetIcmpV4Statistics();
                textBox1.Text=sendReceiveFormatString + "Received" + "Sent";
                textBox1.Text=
                    sendReceiveFormatString+
                    "Messages"+
                    icmpStat.MessagesReceived+
                    icmpStat.MessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Errors"+
                    icmpStat.ErrorsReceived+
                    icmpStat.ErrorsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Destination Unreachable"+
                    icmpStat.DestinationUnreachableMessagesReceived+
                    icmpStat.DestinationUnreachableMessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Time Exceeded"+
                    icmpStat.TimeExceededMessagesReceived+
                    icmpStat.TimeExceededMessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Parameter Problems"+
                    icmpStat.ParameterProblemsReceived+
                    icmpStat.ParameterProblemsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Source Quenches"+
                    icmpStat.SourceQuenchesReceived+
                    icmpStat.SourceQuenchesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Redirects"+
                    icmpStat.RedirectsReceived+
                    icmpStat.RedirectsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Echos"+
                    icmpStat.EchoRequestsReceived+
                    icmpStat.EchoRequestsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Echo Replies"+
                    icmpStat.EchoRepliesReceived+
                    icmpStat.EchoRepliesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Timestamps"+
                    icmpStat.TimestampRequestsReceived+
                    icmpStat.TimestampRequestsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Timestamp Replies"+
                    icmpStat.TimestampRepliesReceived+
                    icmpStat.TimestampRepliesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Address Masks"+
                    icmpStat.AddressMaskRequestsReceived+
                    icmpStat.AddressMaskRequestsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Address Mask Replies"+
                    icmpStat.AddressMaskRepliesReceived+
                    icmpStat.AddressMaskRepliesSent;
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        // Display the data for given IcmpV6Statistics object.
        private static void DisplayIcmpV6Statistics(
            IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.IcmpV6);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                IcmpV6Statistics icmpStat = ipGlobal.GetIcmpV6Statistics();
                textBox1.Text= sendReceiveFormatString+ "Received"+ "Sent";
                textBox1.Text=
                    sendReceiveFormatString+
                    "Messages"+
                    icmpStat.MessagesReceived+
                    icmpStat.MessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Errors"+
                    icmpStat.ErrorsReceived+
                    icmpStat.ErrorsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Destination Unreachable"+
                    icmpStat.DestinationUnreachableMessagesReceived+
                    icmpStat.DestinationUnreachableMessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Time Exceeded"+
                    icmpStat.TimeExceededMessagesReceived+
                    icmpStat.TimeExceededMessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Parameter Problems"+
                    icmpStat.ParameterProblemsReceived+
                    icmpStat.ParameterProblemsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Redirects"+
                    icmpStat.RedirectsReceived+
                    icmpStat.RedirectsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Echos"+
                    icmpStat.EchoRepliesReceived+
                    icmpStat.EchoRepliesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Echo Replies"+
                    icmpStat.EchoRepliesReceived+
                    icmpStat.EchoRepliesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Membership Queries"+
                    icmpStat.MembershipQueriesReceived+
                    icmpStat.MembershipQueriesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Membership Reductios"+
                    icmpStat.MembershipReductionsReceived+
                    icmpStat.MembershipReductionsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Membership Reports"+
                    icmpStat.MembershipReportsReceived+
                    icmpStat.MembershipReportsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Neighbour Advertisements"+
                    icmpStat.NeighborAdvertisementsReceived+
                    icmpStat.NeighborAdvertisementsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Neighbour Solicit"+
                    icmpStat.NeighborSolicitsReceived+
                    icmpStat.NeighborSolicitsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Packets Too Large"+
                    icmpStat.PacketTooBigMessagesReceived+
                    icmpStat.PacketTooBigMessagesSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Redirects"+
                    icmpStat.RedirectsReceived+
                    icmpStat.RedirectsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Router Advertisements"+
                    icmpStat.RouterAdvertisementsReceived+
                    icmpStat.RouterAdvertisementsSent;
                textBox1.Text=
                    sendReceiveFormatString+
                    "Router Solicits"+
                    icmpStat.RouterSolicitsReceived+
                    icmpStat.RouterSolicitsSent;
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        private static void DisplayUdpV4Statistics(IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.Udp);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                DisplayUdpStatistics(ipGlobal.GetUdpIPv4Statistics());
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        private static void DisplayUdpV6Statistics(IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.UdpV6);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                DisplayUdpStatistics(ipGlobal.GetUdpIPv6Statistics());
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        // Display the data for given UdpStatistics object.
        private static void DisplayUdpStatistics(UdpStatistics udpStat)
        {
            TextBox textBox1 = new TextBox();
            textBox1.Text=
                equalsFormatString+
                "Datagrams Received"+
                udpStat.DatagramsReceived;
            textBox1.Text=
                equalsFormatString+
                "No Ports"+
                udpStat.IncomingDatagramsDiscarded;
            textBox1.Text=
                equalsFormatString+
                "Receive Errors"+
                udpStat.IncomingDatagramsWithErrors;
            textBox1.Text=
                equalsFormatString+ "Datagrams Sent"+ udpStat.DatagramsSent;
        }
 
        private static void DisplayTcpV4Statistics(IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.Tcp);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                DisplayTcpStatistics(ipGlobal.GetTcpIPv4Statistics());
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        private static void DisplayTcpV6Statistics(IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.TcpV6);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                DisplayTcpStatistics(ipGlobal.GetTcpIPv6Statistics());
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        // Display the data for given TcpStatistics object.
        private static void DisplayTcpStatistics(TcpStatistics tcpStat)
        {
            TextBox textBox1 = new TextBox();
            textBox1.Text=
                equalsFormatString+
                "Active Opens"+
                tcpStat.ConnectionsInitiated;
            textBox1.Text=
                equalsFormatString+
                "Passive Opens"+
                tcpStat.ConnectionsAccepted;
            textBox1.Text=
                equalsFormatString+
                "Failed Connection Attempts"+
                tcpStat.FailedConnectionAttempts;
            textBox1.Text=
                equalsFormatString+
                "Reset Connections"+
                tcpStat.ResetConnections;
            textBox1.Text=
                equalsFormatString+
                "Current Connections"+
                tcpStat.CurrentConnections;
            textBox1.Text=
                equalsFormatString+
                "Segments Received"+
                tcpStat.SegmentsReceived;
            textBox1.Text=
                equalsFormatString+
                "Segments Sent"+
                tcpStat.SegmentsSent;
            textBox1.Text=
                equalsFormatString+
                "Segments Retransmitted"+
                tcpStat.SegmentsResent;
        }
 
        private static void DisplayIPv4Statistics(IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.IP);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                DisplayIPStatistics(ipGlobal.GetIPv4GlobalStatistics());
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        private static void DisplayIPv6Statistics(IPGlobalProperties ipGlobal)
        {
            TextBox textBox1 = new TextBox();
            string protocol = GetProtocolString(ProtocolTypes.IPv6);
            
            textBox1.Text="{0} Statistics"+ protocol;
            try
            {
                DisplayIPStatistics(ipGlobal.GetIPv6GlobalStatistics());
            }
            catch (NetworkInformationException ex)
            {
                textBox1.Text=errorFormatString+ protocol+ ex.Message;
            }
        }
 
        // Display the global IP statisitcs for given IPGlobalStatistics 
        // object.
        private static void DisplayIPStatistics(IPGlobalStatistics ipStat)
        {
            TextBox textBox1 = new TextBox();
            textBox1.Text=
                equalsFormatString+
                "Packets Received"+
                ipStat.ReceivedPackets;
            textBox1.Text=
                equalsFormatString+
                "Received Header Errors"+
                ipStat.ReceivedPacketsWithHeadersErrors;
            textBox1.Text=
                equalsFormatString+
                "Received Address Errors"+
                ipStat.ReceivedPacketsWithAddressErrors;
            textBox1.Text=
                equalsFormatString+
                "Datagrams Forwarded"+
                ipStat.ReceivedPacketsForwarded;
            textBox1.Text=
                equalsFormatString+
                "Unknown Protocols Received"+
                ipStat.ReceivedPacketsWithUnknownProtocol;
            textBox1.Text=
                equalsFormatString+
                "Received Packets Discarded"+
                ipStat.ReceivedPacketsDiscarded;
            textBox1.Text=
                equalsFormatString+
                "Received Packets Delivered"+
                ipStat.ReceivedPacketsDelivered;
            textBox1.Text=
                equalsFormatString+
                "Output Requests"+
                ipStat.OutputPacketRequests;
            textBox1.Text=
                equalsFormatString+
                "Routing Discards"+
                ipStat.OutputPacketRoutingDiscards;
            textBox1.Text=
                equalsFormatString+
                "Discarded Output Packets"+
                ipStat.OutputPacketsDiscarded;
            textBox1.Text=
                equalsFormatString+
                "Output Packet No Route"+
                ipStat.OutputPacketsWithNoRoute;
            textBox1.Text=
                equalsFormatString+
                "Reassembly Required"+
                ipStat.PacketReassembliesRequired;
            textBox1.Text=
                equalsFormatString+
                "Reassembly Successful"+
                ipStat.PacketsReassembled;
            textBox1.Text=
                equalsFormatString+
                "Reassembly Failures"+
                ipStat.PacketReassemblyFailures;
            textBox1.Text=
                equalsFormatString+
                "Datagrams Successfuly Fragmented"+
                ipStat.PacketsFragmented;
            textBox1.Text=
                equalsFormatString+
                "Datagrams Failing Fragmentation"+
                ipStat.PacketFragmentFailures;
            textBox1.Text=
                equalsFormatString+
                "Fragments Created"+
                ipStat.PacketsFragmented;
        }
    }
}
Добавлено через 11 минут
Да в краце проблема вот в чём не могу в кнопке button1 сослаться на статическую функцию Vhod()! Подскажите как это сделать!!!
 Комментарий модератора 
Используйте теги форматирования кода!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.01.2011, 14:30
Ответы с готовыми решениями:

Как перенести консольное приложение в форму
Есть программа на консольки, ее нужно перенести в форму, а именно в TextBox. Знаю, что это нужно перенести в библиотеку dll и подключить ее...

Как открыть консольное приложение в .NET через другое консольное приложение .NET
Есть один вопрос. Как открыть консольное приложение .NET через другое консольное приложение .NET, чтобы при этом второе приложение...

Перенести консольное приложение на форму
здаруствуйте нужна помощь вот консольная прога ее надо кинуть на форму using System; using System.Collections.Generic; using...

9
Заблокирован
01.01.2011, 23:32
Ты знаешь, не получается добавлять консоль в WinForm. Ты только из WinForm можешь запустить экзэшник консольной проги. А вот наоборот можно. Можно добавить форму в консольную программу. Может тебе лучше исходить из этого?
0
 Аватар для free6878
9 / 9 / 1
Регистрация: 01.09.2010
Сообщений: 182
02.01.2011, 08:37  [ТС]
Идея хорошая! Спасибо! Правда я никогда такого не делал! Я тут вчера по форумам лазил и прочитал, что вот как ты говоришь просто прицепить консольную программу, как внешнюю функцию, т.е. запустить её из формы на выполнение, результаты сохранить в файл, а потом формой просто считать из файла данные.
Я переделал консольку для вывода данных в файл, но не знаю как её прицепить к форме. SSV напиши пожайлуста, как вызвать внешний файл на исполнение!?
0
 Аватар для Filislav
339 / 285 / 62
Регистрация: 02.09.2010
Сообщений: 547
02.01.2011, 09:51
Вот у меня остался пример, для себя сохранял, должен помочь:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
namespace WindowsFormsApplicationTest
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
            // Запускаем поток с консолью.
            Task.Factory.StartNew(Console);
        }
 
        private void Console()
        {
            // Запускаем консоль.
            if (AllocConsole())
            {
                System.Console.WriteLine("Для выхода наберите exit.");
                while (true)
                {
                    // Считываем данные.
                    string output = System.Console.ReadLine();
                    if (output == "exit")
                        break;
                    // Выводим данные в textBox
                    Action action = () => textBox.Text += output + Environment.NewLine;
                    if (InvokeRequired)
                        Invoke(action);
                    else
                        action();
                }
                // Закрываем консоль.
                FreeConsole();
            }
        }
0
Заблокирован
02.01.2011, 11:42
Цитата Сообщение от free6878 Посмотреть сообщение
что вот как ты говоришь просто прицепить консольную программу, как внешнюю функцию
Я как раз говорил наоборот. И предложит тебе создать консольный проект и в него добавить форму.
Цитата Сообщение от free6878 Посмотреть сообщение
напиши пожайлуста, как вызвать внешний файл на исполнение!?
Это просто, но думаю тебе это не подойдет
C#
1
 System.Diagnostics.Process.Start("calc.exe");
Напиши подробно, что тебе требуется и скинь проект. Поможем. Если не я - то кто-нибудь другой. Не оставим на Новый Год человека в беде
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
02.01.2011, 11:53
На сколько я понял, он хочет просто реализовать свою консоль в WinForm приложении.
Но только исходя из кода приведенного в первом посте становится непонятным - как это сейчас работает.

И вообще не понятно, зачем такие приколы с параметрами и командами. Проще сделать это все как в нормальном GUI Application, где команды выполняются нажатием кнопок.

А если требуется просто вывод лога в консоль, то и это все очень таки нормально реализуется, пере направлением вывода.

Но в любом случае, автор должен конкретно описать цели и задачи программы.
0
 Аватар для free6878
9 / 9 / 1
Регистрация: 01.09.2010
Сообщений: 182
02.01.2011, 14:54  [ТС]
Расказываю всё по порядку. Пишу программу сетевого мониторинга для курсовика.(я студент) Приведённый текст это кусок программы, в нём реализован журнал сетевых подключений пользователя.
Журнал работает по принципу прослушки сетевых протоколов и извлекает из сокетов адреса конечных сетевых узлов к которым обращается пользователь. Проблема в том что программа журнала реализована в виде консольного приложения, а основная программа написана в WindowsForm. Вот и возникла проблема при стековки журнала с основным приложением. При попытке переделать журнал под форму столкнулся с проблемой системных исключений которые использованы в консольке, они под формой не работают и компилятор выдаёт ошибку "необрабатываемое исключение" плюс ко всему функции в консольке почти все статические, что плохо сочитается с формой (немогу обратиться к статической функции). Поэтому почитав труды людей здесь на форуме пришёл к выводу что можно обойти проблему адаптации просто подключив консольку как внешнюю функцию с сохранением результатов в файл. А потом эти результаты легко считать и обработать в форме основного приложения..

Добавлено через 10 минут
Да забыл сказать. Текст программы который вначале приложения - это одна из форм основной программы.
В неё я поместил консольку и попыталься адаптировать, запуская её в работу просто через кнопку, но не получилось. Не смог обратиться к статической функции Vhod(), через которую программа запускается в работу.
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
02.01.2011, 17:43
Выкладывайте сюда проекты, я думаю легче сделать пару правок, чем рассказывать что да как должно быть.
0
 Аватар для free6878
9 / 9 / 1
Регистрация: 01.09.2010
Сообщений: 182
02.01.2011, 18:01  [ТС]
А что ещё выкладывать ! Текст программы в начале сообщения выложен в полном объёме! Необходимо просто дозаполнить функцию кнопки button 1 и всё. Т.е. запустить статическую функцию Vhod()!
0
 Аватар для free6878
9 / 9 / 1
Регистрация: 01.09.2010
Сообщений: 182
03.01.2011, 12:20  [ТС]
Большое спасибо SSV за команду для запуска консольной программы. Ещё маленький вопрос, а можно как-то сделать работу консольной программы в фоновом режиме, без появления окна консоли?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2011, 12:20
Помогаю со студенческими работами здесь

Переделать имеющееся консольное приложение в форму
Имеется консольное приложение С++ , ума не приложу, как это визуализировать в окно или на форму. #include&lt;cstdio&gt; ...

Как соединить форму и консольное приложение
здравствуйте поиск по форуму и по интернетам мне нечего не дал так что обращаюсь в высшую инстанцию у меня есть быдлокодерское...

Как совместить win32 форму и консольное приложение?
Хотелось бы узнать, возможно ли совместить вин32 форму и консольное приложение? Суть в том что мне нужно чтобы в основном (консольном...

Запускать консольное приложение через форму с передачей параметров
Всем доброго времени суток. Задача состоит в следующем: Есть несколько консольных приложений и одна форма, которая играет роль меню. ...

Ввод и вывод данных в формах (перенести консольное приложение в форму)
Прошу прощения, если где-то в факе есть, но я не нашла. У меня вопрос совсем для тупых Есть прога для консоли. namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru