1998년 3월...


1998년 5월.. 1998년 8월...

1999년 1월..


1999년 9월..

2000년 5월..

2000년 10월...


2002년 2월...

2003년 10월...

2006년 1월..


그리고 비스타의 전략적위치는 마소의 어디까지인가...?


이미지 맞추는거 포기 ... 자세히 보시고싶으신분.. 링크 따라가세요 .... (글자가 안보여요... 천천이 보시면 재밌습니다...)

반응형

'Scrab' 카테고리의 다른 글

스펀지 UCC 건빵으로 빵만드는 방법  (0) 2007.01.26
연예인들 싸이~  (0) 2006.12.15
세상을 바꾼 10개의 가젯~  (0) 2006.12.14
슬럼프를 빠져나오는 7가지 방법  (0) 2006.10.26
'고다이버이즘'(godivaism)  (0) 2006.07.18

윈도우를 사용하면서 특정한 설정을 고정시키기를 원할때가 있습니다.
예를 들어 마우스속도를 고정하거나, 비디오 해상도를 고정하거나, 키보드 속도를고정하거나, IE 홈페이지를 고정하는 것처럼.. 뜻하지 않게 변경될 여지가 있는 값들은 자신이 사용하는 값으로 항상 고정하는게 편합니다. 자동시작 프로그램도 마찬가지입니다.

이글에서는 레지스트리와 서비스를 사용해서 특정한 설정을 고정하는 간단한 방법에 대해서 알아보겠습니다. 어려울거 하나도 없고, 하품이 나올정도로 -_- 간단하니 맘편하게 그대로 따라하시면 됩니다.

이 파일 을 내려받아서 C:\Windows\System32폴더에 파일 두개를 압축풉니다.
② 압축푼후에 시작 -> 실행 -> CMD를 실행해서
  C:\>instsrv.exe 등록할 서비스 이름 srvany.exe를 실행합니다.


여기에서는 등록할 서비스 이름에 (AutoRun)을 사용했습니다.
※ 예,   C:\>instsrv.exe AutoRun srvany.exe
정상적으로 서비스가 등록되면, "CreateService SUCCESS at creating:"이라는 메시지가 출력됩니다.

③ 레지스트리 편집기를 띄워서HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AutoRun 키를 찾아갑니다. AutoRun이 아닌 다른 이름으로 만든분은 그 이름의 키로 찾아갑니다.

④ AutoRun위에서 새로만들기 -> 키를 선택해서 Parameters 하위키를 만듭니다.

⑤ 하위키 안에 아래 스샷처럼 3개의 문자열값(REG_SZ)을 만듭니다.

설명을 입력할 분은 Description이라는 키를 만들어서 간단하게 설명을 한글로 작성합니다.

⑥ 이제 서비스 콘솔을 열어서 (시작 -> 실행 -> services.msc) 방금전에 만든 서비스로 이동합니다. AutoRun으로 이동해서 "로그온"탭에 아래 스샷처럼 체크합니다.

이제 서비스 등록은 끝났습니다.
◆ 이제 로그인 할때마다 레지스트리 편집기가 c:\windows폴더에 있는 myrun.reg라는 등록파일을 강제로 병합하는데, 이 등록파일에 자신이 고정할 설정내용을 기록하면 됩니다.

⑴ 시작 프로그램 고정
시작 프로그램은 윈도우 부팅(로그인)과 함께 실행되어서 메모리에 적재되는데.. 많을수록 부팅 속도에 악영향을 끼칩니다. 스파이웨어나 에드워어나 일부 S/W를 통해서 원하지 않는 시작프로그램이 자신도 모르는 사이에 등록되거나 자신이 등록한 것이 사라지는 경우가 생길수 있습니다.
레지스트리를 통해서 시작프로그램을 고정하겠습니다.

윈도우 시작후에 자동으로 실행되는 자동 시작프로그램의 경우...

3개의 폴더
C:\Documents and Settings\All Users\시작 메뉴\프로그램\시작프로그램
C:\Documents and Settings\사용자계정이름\시작 메뉴\프로그램\시작프로그램C:\WINDOWS\Tasks (시작시에 실행하도록 예약한 작업)

그리고 4개의 레지스트리 값[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run][HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]

그리고 1개의 파일
C:\Windows\System.ini에서 [Run]섹션 까지............
마지막으로 서비스를 통해서 시작될수 있습니다. 폴더와 System.ini에 등록되는 경우는 거의없으니, 신경쓰지 않아도 되지만 혹시 모르니 남아있는 파일이 있다면 다 삭제합니다.

아무 에디터나 열어서 (메모장이든 뭐든..) 새로운 문서를 작성합니다.
맨위에 Windows Registry Editor Version 5.00를 입력하고 그 밑에
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"S/W이름1"="S/W1의 경로"
"S/W이름2"="S/W2의 경로"
"S/W이름3"="S/W3의 경로"

※ 예,  "PowerPro"="C:\\Program Files\\Tool\\PowerPro\\PowerPro.exe"

를 차례대로 입력합니다. 앞에 -가 붙은 위 두줄은 Run키 자체를 삭제하라는 뜻입니다.
세번째 키가 바로 Run키에 등록되는 값인데, 저같은 경우 "PowerPro"하나만 사용합니다.
이곳에 자신이 부팅과 함께 자동실행시킬 S/W를 추가합니다. 형식은...
"S/W이름"="확장자까지 포함한 경로"입니다. 경로를 입력시에 폴더구분단위인 \를 하나만
입력하면 \문자 자체로 인식하니 반드시 \\ 두개를 입력해야 합니다.

※ 예를 들어 Winamp를 자동시작 프로그램으로 등록한다면..
"Winamp"="C:\\Program Files\\Winamp\\Winamp.exe"

위와 같이 입력합니다. 여러개를 실행한다면 똑같이 계속추가합니다.
이제 매번 부팅할때마다 Run키에 등록된 모든 값들이 다 지워진후에 자신이 입력한 프로그램만이 자동시작 프로그램으로 기록됩니다.  

⑵ IE 시작페이지 고정하기

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Start Page"="
www.pipi.co.kr"

myrun.reg파일에 위와 같이 추가해 줍니다. Start Page값에 자신이 사용하는 URL을 입력합니다.저같은 경우 www.pipi.co.kr를 시작페이지로 사용합니다.

"FullScreen"="yes"값을 추가해주면, 이름그대로 IE가 항상 "꽉찬화면"으로 실행됩니다.

⑶ IE 다운로드 경로 고정하기

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer]
@=""
"Download Directory"="D:\\My Documents\\"
키를 추가합니다. Download Directoryr값에 자신이 원하는 값을 입력합니다. 저같은 경우 D:\\My Documents\\을 다운로드 경로로 사용합니다. 주의할것은, 위에서도 언급했지만 폴더구분기호의 경우 \\를 두번사용해야 합니다.

⑷ 키보드 속도 고정하기
[HKEY_CURRENT_USER\Control Panel\Keyboard]
"InitialKeyboardIndicators"="0"
"KeyboardDelay"="0"
"KeyboardSpeed"="31"

위와 같이 추가합니다. InitialKeyboardIndicators 값은 NumLock ON/OFF입니다. 0이면 OFF, 1이면 ON입니다. KeyboardDelay값은 연속입력시 딜레이입니다. 0이면 지연없이 바로 입력합니다. KeyboardSpeed는 키보드 스피드 입니다. 클수록 빠릅니다. 31이 최대값입니다.

⑸ 마우스 이동 속도 고정하기

[HKEY_CURRENT_USER\Control Panel\Mouse]
"MouseSensitivity"="10"

값을 추가합니다. MouseSensitivity값이 이동속도입니다. 0이 최소,20이 최대입니다. 마지막으로, 고정할 설정을 다 추가했으면.. 작성한 파일을 myrun.reg 파일로 저장합니다.  아래 스샷처럼 작성하시면 됩니다. 잘 모르시는 분은 아래 스샷을 참고로 작성하세요.

저장후에 c:\windows 폴더로 옮깁니다. 끝입니다. 더이상 해줄게 없습니다. 혹시 자동실행이 안되거나 변경사항이 적용되지 않을경우 서비스 제어판에서 새로 만든 서비스를 "중지"한 후에 다시 "시작"하면 적용됩니다. 시작유형은 반드시 "자동"으로 되어있어야 합니다. 그래야 부팅시마다 읽어들이기 때문입니다.

반응형

앞서 설명했던 XML스키마나 DTD를 활용하는 것 까지는 아니라도

가장 기초적인 단순 Tag타입의 XML 파일을 만들수 있게 되었다.


<?

// xml 버전라인
$doc = domxml_new_doc("1.0");

// <HTML> element 선언
$root = $doc->create_element("HTML");

// 자식 element로 <HTML> 추가
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");

// <HEAD>를 <HTML>의 자식으로 추가 $doc->$root
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");

// <TITLE>을 <HEAD>의 자식으로 추가 $doc->$root->$title
$title = $head->append_child($title);

// <TITLE>에 텍스트노드 추가
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);

echo "<PRE>";

// 메모리를 덤프해서 htmlentitie로 표시
echo htmlentities($doc->dump_mem());
echo "</PRE>";
?>


다음의 소스코드를 그대로 .php 로 저장해서 실행시켜보면 다음과 같은 결과를 볼 수 있다.

<?xml version="1.0"?> <HTML><HEAD><TITLE>This is the title</TITLE></HEAD></HTML> echo를 할때 htmlentities() 함수 대신....$doc->dump_file("/tmp/test.xml", false, true);dump_file()함수를 쓰면 xml파일을 얻을 수 있게 된다.

모든 xml은 다음과 같은 정의를 최상단에 단 한번만 주어야 한다.


<?xml version="1.0"?>


이것은 "이 문서는 xml표준 버전 1.0 의 규칙에 따른다..." 라는 것을 정의함을 의미한다.

그리고, 내가쓰는 PHP4 에서 사용되는 domxml_new_doc() 함수를 살펴보면...


(PHP 4 >= 4.2.1)

domxml_new_doc --  Creates new empty XML document
[사용법]
object domxml_new_doc ( string version)
다음과 같이 정의 되어 있으며 입력값으로 version이 들어간다.
문서의 처음에 사용해서 비어있는 xml 문서를 생성해야만 추가작업이 가능하다.
근데 난 한국사람이고 영어문화권을 제외한 나머지 언어를 가진 나라에서는 모든 xml문서를 선언할 때 encoding 값을 줘야한다.
한국어 xml 문서라면...
<?xml version="1.0" encoding="euc-kr"?>
과 같이 써야 한단 소리다.
근데 주어진 xml문서 생성함수로는 구현이 되지 않았다.
그래서, 고민끝에 domxml_open_file(), domxml_open_mem() 함수를 써서 만들어 보기로 했다.
비어있는 xml문서를 만들기 위해서 미리 선언된 양식의 문서가 있어야 한다.
################################### example.inc
<?php
$xmlstr = "<?xml version='1.0' encoding='euc-kr' standalone='yes'?>
<!DOCTYPE HTML SYSTEM 'HTML.dtd'>
<HTML>
</HTML>
";
?>
##########################################################
위에 dtd 문서 선언은 없어도 된다. 하지만 xml문서 선언부와 root element 역할을 하는 tag가 필요하다.
그리고, 이를 php에서 불러서 root element를 불러낸뒤 그뒤에 자식element를 추가해주면 원하는 xml문서를 얻을 수 있다. 물론 xml선언부는 주어진 PHP함수를 사용하지 않고 내 마음데로 조절이 가능하다.
#################################### dom01.php
<?
include("example.inc");
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}
$root = $dom->document_element();
$head = $dom->create_element("HEAD");
$head = $root->append_child($head);
$title = $dom->create_element("TITLE");
$title = $head->append_child($title);
$text = $dom->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($dom->dump_mem());
echo "</PRE>";

?>
####################################################
결과는 다음과 같다.
<?xml version="1.0" encoding="euc-kr" standalone="yes"?> <!DOCTYPE HTML SYSTEM "HTML.dtd"> <HTML> <HEAD><TITLE>This is the title</TITLE></HEAD></HTML>
이와 같은 방법으로 문서를 작성해 나가면 될 것이다.

한글로 인코딩하는 xml 선언문까지 해결보고나서 문서를 만들려던중

create_element() , create_text_nod, set_content() 같은 함수들에 한글을 입력하게 되었다.

그러면...


Warning: dump_file(): output conversion failed due to conv error in D:\XML\ex01.php on line 60

Warning: dump_file(): Bytes: 0xC0 0xCC 0xB8 0xA7 in D:\XML\ex01.php on line 60

Warning: dump_file(): xmlOutputBufferFlush: encoder error in D:\XML\ex01.php on line 60


다음과 같은 에러가 발생했다.

output 버퍼가 어쩌구... -_-;


한글을 써야할텐데... 이러면 낭패다.


열씸히 검색해보니 php.ini에 가서 buffer,flush 관련 항목의 주석제거와 알맞게 샛팅후 다시 써보라는둥... 혹 윈도우버전이라 안되는건 아닐까... 모듈이 없는건 아닐까 고민고민했다.

그러다가 나와 같은 에러를 갖은 사람의 문서를 찾게 되었고 그 문서를 통해서 해답을 찾는듯 했다.


http://bugs.php.net/bug.php?id=26443


결론이 난 이문서의 최종 해결책은

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip

다음과 같은 STABLE 버젼을 다시 설치하고 해보라했다.

웹서버의 종류도 특성이 있는듯 했고 window용에 대한 언급도 있었다.


내공이 부족해서 시키는데로 했다.


덕분에 새로운 팁을 익히게 되었지만 한글을 뿌리게끔 현실적으로 보탬이 되진 않았다.

계속 찾아 헤매던중 eocoding쪽에 관련이 있을것 같아서 문서 검색을 해보니...


xml 파서함수의 uft8-encode() 함수를 쓰도록 하고있었다.

그래서, 해봤다... 이제 위와같은 버그는 없었다. 다만 읽을수 없는 문자가 난무했다.

이유인 즉슨 ISO-8859-1 문자열을 UTF-8 로 바꿈에 있었다.


PHP내공이 부족해서 대책을 바로 찾지 못했는데 한글문자열은 UTF-8 포맷으로 바꿔줘보기로 했다.


iconv 함수를 이용해서...


string iconv ( string in_charset, string out_charset, string str)


예 1. iconv() example:

echo iconv("ISO-8859-1","UTF-8","This is test.");

적용해보니 한글을 잘 뿌릴 수 있게 되었다.

이제 걸리는 문제는 모두 해결하게 되었다.


이제부터 문서를 만드는 일만 남았다.



[소스]


폼을 통해 전달해주는 문서 index.html


<form name=form1 method=POST action=ex01.php?X=KKK>
<input type=hidden name=rootName value="EXTEXT">
<table border=1>
  <tr>
   <td>name</td>
<td><input type=text name=name></td>
  </tr>
  <tr>
   <td>title</td>
<td><input type=text name=title></td>
  </tr>
  <tr>
   <td>content</td>
<td><textarea name=content></textarea></td>
  </tr>
  <tr>
   <td></td>
<td><input type=submit></td>
  </tr>
</form>


넘어온 form 값을 XML로 만들어주는 PHP프로그램 ex01.php


<?
print_r($_REQUEST);


if(!array_key_exists("rootName",$_REQUEST)) {
///////// 넘어온 폼에서 rootName값이 없을 경우 default XML root element value를 만들어준다. set "TEMPTEXT"
$RootName="TEMPTEXT";
} else {
//////// 있다면 그냥 준다.
$RootName=$_REQUEST["rootName"];
unset($_REQUEST["rootName"]);
}

/////////////////////////////// XML root ELEMENT(부모) 생성
$xmlstr = "<?xml version='1.0' encoding='euc-kr'?><$RootName></$RootName>";

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}
$root = $dom->document_element();
////////////////////////////////////////////////////////////////


foreach($_REQUEST as $key=>$value) {

$$key = $dom->create_element($key);
$$key = $root->append_child($$key);
$$key->set_content(iconv("EUC-KR","UTF-8",$value));

}


//echo htmlspecialchars($dom->dump_mem(1, 'euc-kr'));
echo $dom->dump_mem(true);
//echo htmlentities($dom->html_dump_mem());

/// xml문서로 바로 남기고 자 하면 dump_file을 쓴다.
//$dom->dump_file("result.xml", false, true);
?>


[결과]


<?xml version="1.0" encoding="euc-kr" ?>
-<EXTEXT>
<X>KKK</X>
<name>이름</name>
<title>제목</title>
<content>내용</content>
</EXTEXT>

반응형

+ Recent posts