Press "Enter" to skip to content

[카테고리:] 윈도우

C# 윈폼에 올린 브라우저에서 웹페이지 로그인 및 자바스크립트 실행시키기

참조 추가 Microsoft Internet Controls(SHDocVw)와 Microsoft.mshtml 를 하고

using System.Runtime.InteropServices;

using SHDocVw;
using mshtml;

한다.

그 후

InternetExplorer ex = new InternetExplorer();      
ex.Visible = true;
Object obj = null;

ex.Navigate("http://space4u.co.kr", ref obj, ref obj, ref obj, ref obj);

위와 같이 익스플로러를 실행시키고 (space4u.co.kr 로 접속)

굳이 익스플로러가 아니더라도.. WebBrowser를 사용하셔도 됩니다.

private void button3_Click(object sender, EventArgs e)
        {
            IHTMLDocument2 hd;
            hd = (IHTMLDocument2)ex.Document;
            IHTMLElementCollection hCollection = (IHTMLElementCollection)hd.all;
            object obj = "input";                    //input 태그 찾으려고
            IHTMLElementCollection he = (IHTMLElementCollection)hCollection.tags(obj);
            foreach (IHTMLElement helem in he)
            {
                if (helem.getAttribute("name", 0) != null)
                {
                    if (helem.getAttribute("name", 0).ToString() == "email")    //소스를 보고 name속성의 값을 적는다, 아이디 항목
                    {
                        helem.setAttribute("value", (Object)"아이디", 0);       //value 속성에 아이디를 대입
                    }
                    if (helem.getAttribute("name", 0).ToString() == "passwd")
                    {
                        helem.setAttribute("value", (Object)"비밀번호", 0);
                    }
                }
            }
        }

function closeAction(){
alert("종료합니다");
}

function closeActionAA(aa){
alert(aa + "호출");
}

이런 식의 자바스크립트가 있다면,
윈폼에서

this.webBrowser1.Document.InvokeScript("closeAction");
this.webBrowser1.Document.InvokeScript("closeActionAA", new object[] { "하하하"});

이런 식으로 호출할 수 있습니다.

따라서,

this.webBrowser1.Document.InvokeScript("load", new object[] { "code123","3","1","1","1"}); 

요렇게 가능하겠습니다. 


출처 : http://ultragostop.tistory.com/84?srchid=BR1http%3A%2F%2Fultragostop.tistory.com%2F84

C/C++ 매크로 동적(?) 사용하기

재밋는 동적 매크로

#define SHOW(id)    \
{\
    GetDlgItem(IDC_BUTTON##id)->ShowWindow(SW_SHOW);\
 }

이렇게 하면 

SHOW(4);

IDC_BUTTON4 리소스를 컨트롤 할 수 있다.

이런 식으로 호출 할 수 있다.

이놈의 리소스 ID는 작 맘대로 생겨 버려서… 
연번이 안되는 경우가 있어서 반복문을 사용하기 영~ 않좋다.

Windows 8 Pro K 라이센스로 윈10 설치…

2013년도에 Windows 8 Pro K 라이센스 프로모션이 있었어요.
그때 2만원이 안되는 가격에 삿죠. 핵 득템! 이었어요.

지금은 윈8에서 윈10으로 무료 업데이트도 안되는 시기인데…

혹시나 하여 윈10을 다운로드(순정) 받아서 Windows 8 Pro K 라이센스로 정품인증을 해봤어요.

윈도우8 , 8.1 링크 
http://www.microsoft.com/ko-kr/software-download/windows8

윈도우 10 링크
http://www.microsoft.com/ko-kr/software-download/windows10


정품인증 되네!!!! ㅋㅋㅋㅋㅋㅋㅋ 아이 조아라~~

윈8 프로 라이센스 키 있으신분 윈10 다운받아서 설치해 보세요~~~

윈8 키로 윈 8.1 바로 설치가 안된다는 글도 있던데.. 윈10은 설치할때 걍 윈8프로 라이센스 넣고 설치가 됩니다.

행복하세요~

C# 버전 자동증가, 빌드 날짜 자동으로 넣기

AssemblyInfo.cs 파일 수정
원래

[assembly: AssemblyVersion( “1.0.0.0” )] 

[assembly: AssemblyVersion( "1.0.0.0" )] 

으로 되어 있는 것을

[assembly: AssemblyVersion( "1.0.0.*" )]  

맨 마지막 0을 *로 변경하면 자동으로 빌드번호 및 수정번호가 들어감.

빌드전 이벤트 명령줄에 다음 추가
———————————————————————————————————————-
FOR /f %%a IN (‘WMIC OS GET LocalDateTime ^| FIND “+”‘) DO SET DTS=%%a  SET COMPILEDATETIME=%DTS:~0,8%-%DTS:~8,10%  echo %COMPILEDATETIME% > “$(ProjectDir)\Resources\BuildDate.txt”
———————————————————————————————————————-
컴파일할때마다
연월일-시분초.밀리초 포맷으로 컴파일 일시를 BuildDate.txt 파일 생성 시킴

리소스에 다음 파일 추가
$(ProjectDir)\Resources\BuildDate.txt
*주의 : 한번이라도 컴파일을 시도해서 BuildDate.txt 파일이 생성되게 해야 리소스에 추가할 파일을 선택할 수 있음… 아님 수동으로 파일을 만들어 넣덩가…

출력하고 싶은 곳에 다음 코드의 strVer을 출력하면 됨
string strVer = “Ver. ” + System.Reflection.Assembly.GetExecutingAssembly( ).GetName( ).Version + ” Build. ” + Properties.Resources.BuildDate;

대략 이렇게 출력됨
Ver. 1.0.0.517 Build. 20171213-111032.488

끝.