using System;
using System.Diagnostics;
using System.Security.Principal;
using System.Windows.Forms;

namespace HelloWorld
{
    static class Program
    {
        /// <summary>
        /// 해당 응용 프로그램의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()
        {
            if (IsAdministrator() == false)
            {
                try
                {
                    ProcessStartInfo processInfo = new ProcessStartInfo();
                    processInfo.UseShellExecute = true;
                    processInfo.FileName = Application.ExecutablePath;
                    processInfo.WorkingDirectory = Environment.CurrentDirectory;
                    processInfo.Verb = "runas";
                    Process.Start(processInfo);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

                return;
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MonitoringForm());
        }

        /// <summary>
        /// 관리자모드 실행 확인
        /// </summary>
        /// <returns></returns>
        public static bool IsAdministrator()
        {
            WindowsIdentity identity = WindowsIdentity.GetCurrent();

            if (null != identity)
            {
                WindowsPrincipal principal = new WindowsPrincipal(identity);
                return principal.IsInRole(WindowsBuiltInRole.Administrator);
            }

            return false;
        }
    }
}
Posted by 홍상길 홍상길


기존의 Class에 추가로 함수를 추가 하는경우 사용한다.

확장 메소드의 Class는 Static으로 정의 되어야 하며 첫번째 파마메터에 this 기존클래스명 이 들어가야 한다.


public static class StringExtention

{

    public static int ToInt(this string str)

    {

        int result = 0;

        try

        {

            result = int.Parse(str);

        }

        catch

        {

        }

        return result;

    }

}



확장 메소드 등록 시 아래처럼 상용이 가능하다.


Posted by 홍상길 홍상길

1. #if  #endif 사용하기

#if DEBUG 
    // 코드 입력 

#endif

 

2. Sytem.Diagnostics Namespace 사용하기

if (Debugger.IsAttached)
{ 
    // 코드 입력

 }

 

Posted by 홍상길 홍상길

 

 

[System.Net을 이용하여 알아보기]

bool networkUp
   
= System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();

 

또는

 

NetworkInterface[] networkCards
   
= System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();

 

[IP를 이용하여 알아보기]

IPEndPoint ipep =  new IPEndPoint(Ipaddress.Parse("IP TO CHECK"), YOUR_PORT_INTEGER);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server
.Connect(ipep);

 

[Ping 테스트로 알아보기]

Ping netMon = new Ping();
PingResponse response = netMon.PingHost(hostname, 4);
if (response != null)
{
   
ProcessResponse(response);
}

 

Posted by 홍상길 홍상길

 

StreamReader reader = new StreamReader( testStream );
string text = reader.ReadToEnd(); 
Posted by 홍상길 홍상길

 

 

byte[] byteArray = Encoding.ASCII.GetBytes("teststring");
MemoryStream stream = new MemoryStream( byteArray );
Posted by 홍상길 홍상길

C#에서 Excel에서 Microsoft.Office.Interop.Excel namespace를 이용해 파일을 저장할 때 기본 파일로 저장을 하게 되면

Cell 너비나 높이, 폰트 사이즈 등을 개별적으로 설정하기가 힘듭니다.

엑셀 템플릿을 불러와서 템플릿 파일을 이용해 Cell 스타일을 입혀서 저장 하는 방식입니다.

 

아래 소스는 엑셀 저장 소스 중 템플릿을 가져오는 예제 소스 입니다.

….

….

Excel.Application oXL = null;
Excel._Workbook oWB = null;

Excel._Worksheet oSheet = null;

 

oXL = new Excel.Application();

string path = @"C:\Templates\TemplateTest.xlt";

oWB = oXL.Workbooks.Open(path, 0, false, 5, "", "",

false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);

 

oSheet = (Excel._Worksheet)oWB.ActiveSheet;

oSheet.Cells[2, 2] = "Text";

….

….

Posted by 홍상길 홍상길

using System.Net.Mail;

MailAddress from = new MailAddress("[보내는사람 이메일 주소]", "[이름]");
MailAddress to = new MailAddress("[받는사람 이메일 주소]", "[이름]");
MailMessage message = new MailMessage(from, to);

message.Subject = "[ 이메일 제목 ]";
message.IsBodyHtml = true;  // Html 형식으로 보냄설정.
message.Body = "[이메일 내용]";

SmtpClient smtp = new SmtpClient("[메일서버]");

smtp.UseDefaultCredentials = false; // 시스템에 설정된 인증 정보를 사용하지 않는다.
smtp.EnableSsl = false;  // SSL을 사용한다.
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Credentials = new System.Net.NetworkCredential("[이메일서버 아이디]", "[이메일서버 패스워드]");
Posted by 홍상길 홍상길

2010.06.21 09:55 Programming/C#

Invoke


http://blog.naver.com/ljh0707/10036599823
Posted by 홍상길 홍상길

http://kimgwajang.tistory.com/193
Posted by 홍상길 홍상길
이전버튼 1 2 이전버튼

블로그 이미지
홍상길

공지사항

Yesterday19
Today13
Total292,410

달력

 « |  » 2019.7
  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      

최근에 달린 댓글

글 보관함