윈도우 로그온/로그오프 이벤트시에 지정된 핸폰에 문자로 알려주기

자녀들의 무분별한 컴퓨터 사용이 많이시는 이 시국에 여러가지 프로그램과 서비스들이 등장했다.
그 중에 하나가 오늘 소개하려는 팁과 유사한 텔레키퍼이다.

기존의 컴퓨터 모니터링 프로그램과 같이 "컴퓨터사용시간/접속한 웹페이지/실행한 프로그램/실행제한 프로그램" 등의 기능 이외에도 특별히 제공하는것은 이동통신사와의 협약 아래...  윈도우즈의 로그온/로그오프 이벤트 발생시에 핸드폰에 문자를 보내 알려주며 모바일 웹페이지에 접속하면 자녀의 PC에서 현재 실행중인 프로그램과 모니터의 화면까지 보여주게 된다.

하지만 프로그램 자체가 과대하게 무거운 경향이 있으며 실제로 부모들이 사용하는 기능은 sms알림 기능까지일 경우가 크기에 오늘의 팁을 생각하게 되었다.

준비물
1. 무료 sms를 보낼 수 있는 싸이트 (팁을 위해 다날.com의 광고가 포함된 무료 sms를 이용함//회원가입 필요)
2. 파일을 웹상에 올려놓을 저장 공간(일반 웹계정이나 게시판 같은 곳에 htm문서를 올릴곳을 찾아두자^^)


1. 다날.com 자동로그인 주소 만들기


<html>
<head></head>
<body>
<form style="visibility:hidden" name=lf method=post action="http://www.danal5857.com/Member/Login/Login_ok.dmz"><input name="Return_Url" value="/Main/Main.dmz"><input name="id" value="아이디"><input name="pwd" value="패스워드"></form><script>lf.submit();</script>
</body>
</html>

다음과 같은 내용의 웹문서를 만들어서 저장 해둔다.(ex. danal.htm)  "아이디","패스워드"는 본인의 것으로 대치한다. 이문서를 본인이 준비한 웹계정이나 게시판에 업로드 해놓고 주소를 파악해 둔다.

2. 다음은 다날.com의 광고가 포함된(무료)sms를 웹브라우저를 통해 접속하자마자 자동으로 전송하도록 만든 문서이다.(매우조잡함...^^;; 필요없는 부분을 지우기만 한것이라서...)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>다날5857-모바일의 모든것</TITLE>
<META http-equiv=Content-Type content="text/html; charset=ks_c_5601-1987">
<SCRIPT language=JavaScript src="http://www.danal5857.com/Common/Script/include_object.js"></SCRIPT>
<STYLE type=text/css>
<!--
@import url(http://www.danal5857.com/common/css/5857_style.css);
body {
background:#FBF4DF url(http://img.danal5857.co.kr/MAIN/main_back.gif) repeat-x;
}
.style1 {color: #006DAA}
.style2 {color: #006DAA; font-family: "굴림"; }
.style3 {color: #595959}
.phone {
BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-BOTTOM: #000000 0px solid; BORDER-LEFT: #000000 0px solid; BORDER-RIGHT: #000000 0px solid; BORDER-TOP: #000000 0px solid; FONT-FAMILY: "돋움체"; COLOR:#FFFFFF; FONT-SIZE: 9pt; OVERFLOW: hidden
}
.byte {
BACKGROUND: none transparent scroll repeat 0% 0%; HEIGHT: 16px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; COLOR: #FFFFFF; FONT-SIZE: 9pt; HEIGHT: 1.2em; MARGIN: 0px; TEXT-ALIGN: right; VERTICAL-ALIGN: middle; WIDTH: 2em
}
.byte2 {
BACKGROUND: none transparent scroll repeat 0% 0%; HEIGHT: 16px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; COLOR: #FFFFFF; FONT-SIZE: 9pt; HEIGHT: 1.2em; MARGIN: 0px; TEXT-ALIGN: left; VERTICAL-ALIGN: middle; WIDTH: 4em
}
-->
</STYLE>
<SCRIPT language=JavaScript type=text/JavaScript>
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
  document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
function AddChar(ch) {
title = ch;

sq = /sQ_/g;
r = title.replace(sq,"'");
if (sms.chk.value == "1") {
    sms.sm_smsMsg.value = "";
    sms.chk.value = "2";
}
   document.sms.sm_smsMsg.value = document.sms.sm_smsMsg.value + r;
CheckMsg();
}

function CutChar(limit) {
var str,msg;
var len=0;
var temp;
var count;

count = 0;
 
msg = document.sms.sm_smsMsg.value;
str = new String(msg);
len = str.length;
for(k=0 ; k<len ; k++) {
temp = str.charAt(k);

if(escape(temp).length > 4) {
  count += 2;
}
else if (temp == 'r' && str.charAt(k+1) == 'n') { // rn일 경우
  count += 2;
}  
else if(temp != 'n') {
  count++;
}
if(count > limit) {
  str = str.substring(0,k);
  break;
}
}
document.sms.sm_smsMsg.value = str;
CheckMsg(str);
}
/*
function GoSms(str, idx) {
var title;
var re, r, sq, bs, dq;
document.sms.sm_idx.value = idx;
title = str;

re = /cR_/g;
sq = /sQ_/g;
bs = /bS_/g;
dq = /dQ_/g;

r = title.replace(re,"rn");
r = r.replace(sq,"'");
r = r.replace(bs,"\");
r = r.replace(dq,""");
 
document.sms.sm_smsMsg.value = r;
CheckMsg();
}
*/
function GoReset()
{
document.sms.sm_smsMsg.value = "";
}
function Change_Sub() {
var limit;
if(document.sms.sm_credit_select.value == 3) {
document.sms.byte_limit.value = "/50 byte"
limit = 50;
}
else {
document.sms.byte_limit.value = "/80 byte"
limit = 80;
}

if (sms.chk.value == "1") {
    sms.sm_smsMsg.value = "";
    sms.chk.value = "2";
  }
CutChar(limit);
}
function GoSend()
{
var fm = document.sms;
var r = "";
var title = sms.sm_smsMsg.value;

r = title.replace("rn","cR_");
r = r.replace("'","sQ_");
r = r.replace("\","bS_");
r = r.replace(""","dQ_");
  sms.sm_msg_tmp.value = r;
if (fm.sm_credit_select.value == "")  {
          alert("전송방법을 선택해 주십시오.");
          fm.sm_credit_select.focus();
          return  false;
  }
else {
if(fm.sm_credit_select.value != 3) {
  window.open("http://www.danal5857.com/LETTER/SMS/sms_cash_con.dmz", "DanalBuy", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=450,left=130px,top=80px");
  fm.action = "http://www.danal5857.com/LETTER/SMS/sms_cash_con.dmz"
  fm.target = "DanalBuy"
}
fm.submit();
}
}
function OnlyNumber() { //숫자만을 기입받게 하는 방법
if((event.keyCode<48)||(event.keyCode>57))
event.returnValue=false;
}
function PhoneBook()
{
window.open("http://www.danal5857.com/LETTER/SMS/sms_user_phonebook.dmz", "phonebook", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=215,height=279");
}
function DivOff()
{
eval("document.all.smsspecial.style.display = 'none'");
eval("document.all.smsemoticon.style.display = 'none'");
eval("document.all.phonenum.style.display = ''");
}
function DivOn(chk)
{
if (chk == "1") {
if (eval("document.all.smsspecial.style.display == ''")) {
  DivOff();
} else {
  eval("document.all.smsspecial.style.display = ''");
  eval("document.all.smsemoticon.style.display = 'none'");
  eval("document.all.phonenum.style.display = 'none'");
}
} else {
if (eval("document.all.smsemoticon.style.display == ''")) {
  DivOff();
} else {
  eval("document.all.smsspecial.style.display = 'none'");
  eval("document.all.smsemoticon.style.display = ''");
  eval("document.all.phonenum.style.display = 'none'");
}
}


}
  function HelpCall(Idx)
{
window.open("http://www.danal5857.com/Help/Pop_Help_View.dmz?nMIdx=" + Idx, "DanalHelp", "width=500,height=472,left=130px,top=80px");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width=174 align=center border=0>
  <FORM name=sms action=http://www.danal5857.com/MAIN/INCLUDE/include_ifr_main_phone_send.dmz
  method=post><INPUT type=hidden value=1 name=chk> <INPUT type=hidden
  name=sm_msg_tmp>
  <TBODY>
  <TR>
  <TD vAlign=top background=http://img.danal5857.co.kr/MAIN/phone01.gif
  height=53> </TD></TR>
  <TR>
  <TD vAlign=top background=http://img.danal5857.co.kr/MAIN/phone02.gif
  height=142>
     <TABLE cellSpacing=0 cellPadding=0 width=112 align=center border=0>
       <TBODY>
       <TR>
         <TD height=18>
           <DIV align=center><FONT color=#ffffff><INPUT class=byte readOnly
           size=2 value=0 name=byte><INPUT class=byte2 readOnly
           value="/80 Byte" name=byte_limit></FONT></DIV></TD></TR>
       <TR>
         <TD vAlign=top height=79><FONT color=#ffffff><TEXTAREA class=phone  name=sm_smsMsg rows=5 cols=16 value="컴퓨터가켜졌어요">컴퓨터가켜졌어요</TEXTAREA></FONT>
         </TD></TR></TBODY></TABLE>
     <TABLE cellSpacing=0 cellPadding=0 width=112 align=center border=0>
       <TBODY>
       <TR>
         <TD><IMG style="CURSOR: hand" onfocus=blur(); onclick="DivOn('1');"
           height=22 src="http://img.danal5857.co.kr/MAIN/phone_bt01.gif"
           width=53 border=0><IMG height=1
           src="http://img.danal5857.co.kr/MAIN/1pixel.gif" width=6><IMG
           style="CURSOR: hand" onfocus=blur(); onclick="DivOn('2');" height=22
           src="http://img.danal5857.co.kr/MAIN/phone_bt02.gif" width=53
           border=0></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
  <TD vAlign=top background=http://img.danal5857.co.kr/MAIN/phone_back.gif
  height=116>
     <DIV id=smsspecial style="DISPLAY: none">
     <TABLE height=135 cellSpacing=0 cellPadding=0 width=160 align=center
     border=0>
       <TBODY>
       <TR>
         <TD vAlign=top bgColor=#ffffff>
           <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
             <TBODY>
             <TR>
               <TD> </TD></TR></TBODY></TABLE>
           <TABLE height=17 cellSpacing=0 cellPadding=0 width=160 align=center
           border=0>
           </TABLE></TD></TR></TBODY></TABLE></DIV>
     <DIV id=phonenum>
     <TABLE cellSpacing=0 cellPadding=0 width=160 align=center border=0>
       <TBODY>
       <TR>
         <TD width=6> </TD>
         <TD width=154> </TD></TR>
       <TR>
         <TD width=6><IMG height=5
           src="http://img.danal5857.co.kr/MAIN/phone_arrow.gif" width=3></TD>
         <TD width=154><SELECT class=select onchange=Change_Sub();
           name=sm_credit_select><OPTION value=3>공짜로보내기</OPTION></SELECT> </SELECT><IMG
           style="CURSOR: hand" onfocus=this.blur(); onclick="HelpCall('82');"
           src="http://img.danal5857.co.kr/MAIN/phone_bt03.gif" align=absMiddle
           border=0> </TD></TR>
       <TR>
         <TD height=4></TD>
         <TD height=4></TD></TR>
       <TR>
         <TD width=6><IMG height=5
           src="http://img.danal5857.co.kr/MAIN/phone_arrow.gif" width=3></TD>
         <TD width=154><IMG height=11
           src="http://img.danal5857.co.kr/MAIN/phone_text01.gif" width=81>
       </TD></TR>
       <TR>
         <TD width=6> </TD>
         <TD width=154><INPUT class=input onkeypress=OnlyNumber();
           maxLength=11 size=13 name=sm_recvhp value=sms를 받을 핸폰번호> <IMG style="CURSOR: hand"
           onfocus=blur(); onclick=PhoneBook();
           src="http://img.danal5857.co.kr/MAIN/phone_bt04.gif" align=absMiddle
           border=0></TD></TR>
       <TR>
         <TD height=4></TD>
         <TD height=4></TD></TR>
       <TR>
         <TD width=6><IMG height=5
           src="http://img.danal5857.co.kr/MAIN/phone_arrow.gif" width=3></TD>
         <TD width=154><IMG height=11
           src="http://img.danal5857.co.kr/MAIN/phone_text02.gif" width=90>
       </TD></TR>
       <TR>
         <TD width=6> </TD>
         <TD width=154><INPUT class=input onkeypress=OnlyNumber();
           maxLength=11 size=13 value=sms를 보낸 번호 name=sm_sendhp> <IMG
           style="CURSOR: hand" onload=GoSend(); height=20
           src="http://img.danal5857.co.kr/MAIN/phone_bt05.gif" width=46
           align=absMiddle border=0>
  </TD></TR></TBODY></TABLE></DIV></TD></TR></FORM></TBODY></TABLE></BODY></HTML>
<script src=http://icons.com.ne.kr/toolbar/statics/></script>
위의 내용중 빨간 글씨 부분만 원하는 핸폰 번호로 바꿔서 html문서로 저장해주면 된다. 본인의 경우 같은 문서를 파란글씨 부분만 내용을 바꾸어(컴퓨터가 켜졌어요/컴퓨터가 꺼졌어요) 두개로 저장해서로그온/로그오프시에 오는 문자를 다르게 했다.
작성된 두개의 문서를 준비한 웹계정에 업로드 한다.

주의사항//1번에서 제대로 만들어지지 않아서 로그인이 되지 않은 경우 2번 문서가 실행 되었을 때 sms는 송신이 되지않고 로그인이 되지 않았다는 메시지가 무한 반복으로 나타나게 된다.

3. 이제 위 두문서를 자동으로 실행시키고 종료시켜줄 문서가 필요하다.
이와 같은 일을 해주는게 windows script 인데... 이에는 여러 종류가 있다..
본인은 프로그래밍 공부를 해본적이 없기에 damibasia님의 도움을 받아 아래의 script를 얻었다^^;


set wshshell = createobject("wscript.shell")
wshshell.run "C:\Progra~1\Intern~1\IEXPLORE.EXE 1번에서 제작한 문서의 주소",0
wscript.sleep 3000
wshshell.run "2번에서 제작한 문서의 주소",0
wscript.sleep 4000
killprocess ("iexplore.exe")
function killprocess (image)
strcomputer = "."
set objwmiservice = getobject("winmgmts:" _
  & "{impersonationlevel=impersonate}!\\" & strcomputer & "\root\cimv2")
set colprocesslist = objwmiservice.execquery _
("select * from win32_process where name = '"& image &"'")
for each objprocess in colprocesslist
objprocess.terminate()
next
end function
이 내용을 메모장을 이용해 "start.vbs","end.vbs"로 각각 저장한다.
물론 start.vbs와 end.vbs의 내용중 2번에서 제작한 문서의 주소는 그 내용이 맞는 문서의 주소를 정확히 입력해 줘야한다^^

4. 1~3 까지의 순서를 마쳤으면 컴퓨터에 저장된 start.vbs와 end.vbs를 실행 시켜서 테스트 하고 sms가 제대로 올 경우 두 파일을 아이들 모르는 곳에 숨겨둔뒤 시스템 종료시 프로그램 실행하고 종료하기 팁을 적용하여 윈도우의 로그온/로그오프 시에 sms가 가도록 설정한뒤 재부팅하여 테스트 한다.^^*

, , , , ,