BLOG main image
분류 전체보기 (105)
개인적인 (45)
업무적인 (60)
177506 Visitors up to today!
Today 29 hit, Yesterday 70 hit
daisy rss
tistory 티스토리 가입하기!
'업무적인'에 해당되는 글 60건
2008/02/22 00:11

윈도우 2000에서 CDONTS.NewMail을 이용해 메일을 보내던 기능이 윈도우 2003으로 버전업 하고나서 오류를 발생하고는 작동하지 않는다.

윈도우 2003은 CDONTS.NewMail대신 CDO.Message를 이용해서 메일 발송이 가능하다.
CDO.Message를 이용해 메일을 발송하려면 일단 SMTP서비스를 설치해서 기동되어 있어야 한다.
그후 코딩은 아래를 참고하면 된다.

Const cdoSendUsingPort = 2 '1일 경우 로컬(SMTP), 2일 경우 외부(SMTP)로 메일전송
Const strSmartHost = "xxx.xxx.xxx.xxx" '보낼 메일 Host Server 설정

Set objMail = Server.CreateObject("CDO.Message") '메일 객체생성 
Set objConf = objMail.Configuration 'Configuration 설정값을 저장할 objConf 객채 생성

With objConf.Fields
   .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort ' 서버 접근방법을 설정합니다
   .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost ' 서버 주소를 설정합니다
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25  ' 접근할 포트번호를 설정합니다
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 ' 접속시도할 제한시간을 설정합니다
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1  ' SMTP 접속 인증방법을 설정합니다
   .item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "아이디" ' SMTP 서버에 인증할 ID를 입력합니다
   .item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "암호"  ' SMTP 서버에 인증할 암호를 입력합니다
   .Update
End With

  objMail.from = 메일주소  '보내는이 메일
  objMail.To = 메일주소  '받는사람 Email

  objMail.subject = "제목 들어가는곳"

  objMail.HTMLBody = "HTML형식의 Body 들어가는곳. HTMLBody나 TextBody 둘중 하나를 선택"
  objMail.TextBody = "TEXT형식의 Body 들어가는곳. HTMLBody나 TextBody 둘중 하나를 선택"
혹은
  objMail.Body = "내용"
  objMail.BodyFormat = 0 ' CdoBodyFormatHTML(0)는 HTML, CdoBodyFormatText(1)는 Text
 

  objMail.BodyPart.Charset="ks_c_5601-1987"     ' 한글을 위해선 꼭 넣어 주어야 합니다.
  objMail.HTMLBodyPart.Charset="ks_c_5601-1987" ' 한글을 위해선 꼭 넣어 주어야 합니다.

  objMail.Importance = 2 ' 우선순위 CdoLow(0)은 낮게, CdoNomal(1)은 중간, CdoHigh(2)은 높게
  objMail.Attachfile "파일패스", "파일명", 엔코딩방식 ' 첨부파일 엔코딩방식 : CdoEncodingUUencode(0)은 Ascii파일, CdoEncodingBase64(1)은 Binary파일

  objMail.send  ' 메일을 보냅니다. 
 Set objConf = Nothing ' 설정값 객체를 닫습니다.
 Set objMail = Nothing ' 메일 객체를 닫습니다.


하지만 소스를 수정하지 않고 CDONTS.NewMail을 이용한 기존의 소스를 그대로 쓸수도 있다.
아래의 첨부된 cdonts.dll 파일을 다운받아서
C:\WINDOWS\system32 경로에 cdonts.dll을 복사한 후에 아래의 명령어로 레지스트리에 등록한다

regsvr32.exe cdonts.dll

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://savour.tistory.com/trackback/268
Name
Password
Homepage
Secret
2008/02/17 22:36
윈도우2003에 네이트온을 설치하고자 하는데 아래와 같은 오류가 발생했다.
사용자 삽입 이미지

사용자 삽입 이미지

아무리 다시 설치를 하고 TEMP 디렉토리의 파일을 지우고 해도 설치가 되지 않는다

결국 네이트온 고객센터에 문의하여 아래와 같은 답변을 받아서 해결했다.

문의하신 네이트온 설치 오류에 대해 답변드리겠습니다.

먼저, 보내주신 파일 잘 받아보았습니다.

대부분 윈도용 응용 프로그램은 installshield(인스톨쉴드)라는

설치 관리 프로그램을 사용하게 됩니다.

저희 네이트온도 마찬가지로 installshield(인스톨쉴드)라는 프로그램으로

설치가 진행되는데 현재 회원님께 나타난 증상은 윈도에 설치되어 있는

installshield(인스톨쉴드) 프로그램의 손상 등의 원인입니다.

이 문제를 해결하기 위해서는 installshield(인스톨쉴드)를 재설치해야 하며,

아래의 내용을 참고하셔서 재설치해 보시기 바랍니다.

네이트온이 실행되고 있다면 네이트온 상단 메뉴의 [파일] → [네이트온 종료]

메뉴를 이용하여 네이트온을 종료해 주시기 바랍니다.

1. 바탕화면의 [내 컴퓨터] 클릭

2. [C: 드라이브] → [Program Files] → [Common Files] 클릭

3. [InstallShield] → [Professional] → [RunTime] → [11]

4. 해당 [11] 폴더 삭제 → PC 재부팅

문제의 특성상 어떤 프로그램의 영향으로 오류가 발생하는지

정확히는 확인할 수 없으나, 그 원인이 installshield(인스톨쉴드)를 사용하는

다른 응용 프로그램의 설치 시에도 비슷한 증상이 발생할 수 있습니다.


참고하시길...
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://savour.tistory.com/trackback/267
Name
Password
Homepage
Secret
2008/02/08 03:30
개인적으로 apache-tomcat-6.0.14 와 jdk-1.6u4 을 설치후 아파치를 기동시키려고 하니
기동되지 않고 중지 상태를 유지하는 현상이 생기더군요

[2008-02-08 03:18:22] [174  javajni.c] [error] 지정된 모듈을 찾을 수 없습니다.

[2008-02-08 03:18:22] [986  prunsrv.c] [error] Failed creating java C:\Program Files\Java\jre1.6.0_04\bin\client\jvm.dll

[2008-02-08 03:18:22] [1260 prunsrv.c] [error] ServiceStart returned 1

궁금해서 로그를 뒤졌더니 위와 같은 에러로그가 생성되었더군요.

해결방법은 msvcr71.dll 이라는 파일이 없어서 그런데 첨부되어진 msvcr71.dll 파일을
C:\WINDOWS\system32
디렉토리에 복사해 넣고 나서 아파치를 기동시켜면 잘 돌아간다.

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://savour.tistory.com/trackback/266
Name
Password
Homepage
Secret
2008/02/04 11:18
OS가 윈도우2003일때 Visual Studio 2005의 서비스팩1을 설치하려 할때
"이 제품에 대한 설치 원본을 사용할 수 없습니다." 라는 메시지와 함께 설치가 되지 않는 경우가 있더군요.

사용자 삽입 이미지

이 문제는 윈도우2003의 보안 정책중 하나인 소프트웨어 제한 정책을 사용하여 해결이 가능합니다.

1. 관리도구메뉴에서 로컬보안정책 프로그램 실행

2. 소프트웨어 제한 정책 항목을 선택후 오른쪽 마우스를 클릭해서 새 소프트웨어 제한 정책 생성

3. 생성된 새 소프트웨어 제한 정책에서 오른쪽 마우스를 클릭후 속성을 선택

4. 팝업화면에서 사용자에 대한 소프트웨어 정책 항목중 로컬 관리자를 제외한 모든 사용자 항목을 선택후 확인

사용자 삽입 이미지

5. Microsoft Visual Studio 2005 Service Pack 1을 설치

6. 소프트웨어 제한 정책 항목에 오른쪽 마우스를 클릭해서 소프트웨어 제한정책 삭제
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://savour.tistory.com/trackback/265
Name
Password
Homepage
Secret
2008/01/07 11:18

Microsoft 사이트에서 무료로 ASP.NET 관련 서적을 무료로 배포하는군요.
책의 정가가 52,000원이나 하는 책인데 마침 ASP.NET을 공부할일이 있어서 유용하게 보고 있는중입니다.


사용자 삽입 이미지
Active Server Pages .NET(ASP.NET)은 현재까지 만들어진 프로그램 중 가장 발전된 웹 개발 플랫폼입니다. 이 혁명적인 새 프로그래밍 프레임워크와 그 기반 기술들을 쉽게 접근할 수 있는 모듈식 입문서인 이 책으로 기초부터 튼튼히 익히기 바랍니다.
ASP.NET으로 작업할 수 있도록 기본 빌딩 블록들을 조합하는 법을 빠르게 배울 수 있고 초급 개발자와 숙련된 개발자들이 매일 실무 현장에서 부딪히며 접하게 되는 실전 예제들을 보게 될 것입니다. 이해하기 쉬운 설명으로 공통 언어 런타임(Common Language Runtime)과 웹 폼(Web Form), XML 웹 서비스, Microsoft .NET 프레임워크와 같은 기본 도구와 기술을 이해하는 데 많은 도움을 얻을 수 있습니다.
ASP.NET을 사용하여 확장성이 좋은 고성능 웹 응용 프로그램을 만들면서 제시되는 여러 실천사례들에 대해 전문가의 설명과 유용한 팁이 이 책으로 공부하는 여러분에게 보다 많은 도움을 줄 것입니다.

책 다운로드 링크 : 다운로드 (출처 : http://www.microsoft.com/)

Step by Step ASP.NET 예제.zip

출처 : 정보문화사 (http://www.infopub.co.kr/)

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://savour.tistory.com/trackback/262
Name
Password
Homepage
Secret
2008/01/03 20:16

프로그램이 항상 위에 표시되도록 하는 기능과 ALT+TAB, ALT+F4 키등 시스템키를 사용하지 못하도록 제한하는 기능

### FORM 소스 ###

Option Explicit


'
'   항상 위
'
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_NOTOPMOST = -2   'Not Always top
Private Const HWND_TOPMOST = -1  'Always top
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1

'
'   키 작동 정지
'
Dim hhkLowLevelKybd As Long


'
'   항상 위
'
Public Sub AlwaysOn(ByVal frmForm As Object, ByVal OnOff As Integer)
    Dim hWndMode As Integer
    hWndMode = Choose(OnOff + 1, -2, -1)
    SetWindowPos frmForm.hwnd, hWndMode, 0, 0, 10, 10, SWP_NOMOVE Or SWP_NOSIZE
End Sub



'
'   키 작동 정지
'
Public Sub KeyDisable(ByVal OnOff As Integer)
    If OnOff = 1 Then
        hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
    Else
        UnhookWindowsHookEx hhkLowLevelKybd
    End If
End Sub


'
'   공통
'

Private Sub Form_Load()
    Call AlwaysOn(Me, 1)    ' 항상 위   설정 "1"    해제 "0"
    Call KeyDisable(1)      ' 키 작동   정지 "1"    해제 "0"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call KeyDisable(0)      ' 키 작동   정지 "1"    해제 "0"
End Sub


### 시스템키 제한 모듈 소스 ###

'
'   키 작동 정지
'

Option Explicit

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Const HC_ACTION = 0
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105

Public Const WND_KEY = 91
Public Const WH_KEYBOARD_LL = 13
Public Const LLKHF_ALTDOWN = &H20

Public Const VK_TAB = &H9
Public Const VK_CONTROL = &H11
Public Const VK_ESCAPE = &H1B
Public Const VK_F4 = &H73


Public Type KBDLLHOOKSTRUCT
    vkCode As Long
    scanCode As Long
    flags As Long
    time As Long
    dwExtraInfo As Long
End Type

Dim p As KBDLLHOOKSTRUCT

Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
   Dim fEatKeystroke As Boolean
   Dim a As Integer
  
   If (nCode = HC_ACTION) Then
      If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
         CopyMemory p, ByVal lParam, Len(p)
         fEatKeystroke = _
            ((p.vkCode = VK_F4) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
            ((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
            ((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
            ((p.vkCode = WND_KEY) And ((p.scanCode = WND_KEY) <> 0)) Or _
            ((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0))
        End If
    End If
   
    If fEatKeystroke Then
        LowLevelKeyboardProc = -1
    Else
        LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
    End If
End Function


크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://savour.tistory.com/trackback/260
Name
Password
Homepage
Secret
2008/01/03 20:15

아래 상수는 실제값 대신 코드의 어느 부분에서도 사용할 수 있습니다.

상수 설명
VbKeyLButton 0x1 마우스 왼쪽 단추
VbKeyRButton 0x2 마우스 오른쪽 단추
VbKeyCancel 0x3 취소키
VbKeyMButton 0x4 가운데 마우스 단추
VbKeyBack 0x8 백스페이스키
VbKeyTab 0x9 <Tab>키
VbKeyClear 0xC <Clear>키
VbKeyReturn 0xD <Enter>키
VbKeyShift 0x10 <Shift>키
VbKeyControl 0x11 <Ctrl>키
VbKeyMenu 0x12 메뉴키
VbKeyPause 0x13 <Pause>키
VbKeyCapital 0x14 <Caps Lock>키
VbKeyEscape 0x1B <Esc>키
VbKeySpace 0x20 스페이스바키
VbKeyPageUp 0x21 <Page Up>키
VbKeyPageDown 0x22 <Page Down>키
VbKeyEnd 0x23 <End>키
VbKeyHome 0x24 <Home>키
VbKeyLeft 0x25 왼쪽 화살표키
VbKeyUp 0x26 위쪽 화살표키
VbKeyRight 0x27 오른쪽 화살표키
VbKeyDown 0x28 아래쪽 화살표키
VbKeySelect 0x29 선택키
VbKeyPrint 0x2A <Print Screen>키
VbKeyExecute 0x2B 실행키
VbKeySnapshot 0x2C 스냅샷키
VbKeyInsert 0x2D <Insert>키
VbKeyDelete 0x2E <Delete>키
VbKeyHelp 0x2F <Help>키
VbKeyNumlock 0x90 <Num Lock>키

A키에서 Z키는 ASCII의 A에서 Z와 동일합니다.

상수 설명
VbKeyA 65 A키
VbKeyB 66 B키
VbKeyC 67 C키
VbKeyD 68 D키
VbKeyE 69 E키
VbKeyF 70 F키
VbKeyG 71 G키
VbKeyH 72 H키
VbKeyI 73 I키
VbKeyJ 74 J키
VbKeyK 75 K키
VbKeyL 76 L키
VbKeyM 77 M키
VbKeyN 78 N키
VbKeyO 79 O키
VbKeyP 80 P키
VbKeyQ 81 Q키
VbKeyR 82 R키
VbKeyS 83 S키
VbKeyT 84 T키
VbKeyU 85 U키
VbKeyV 86 V키
VbKeyW 87 W키
VbKeyX 88 X키
VbKeyY 89 Y키
VbKeyZ 90 Z키

0키에서 9키는 ASCII의 0에서 9와 동일합니다.

상수 설명
vbKey0 48 0 키
vbKey1 49 1 키
vbKey2 50 2 키
vbKey3 51 3 키
vbKey4 52 4 키
vbKey5 53 5 키
vbKey6 54 6 키
vbKey7 55 7 키
vbKey8 56 8 키
vbKey9 57 9 키

다음의 상수들은 숫자키 모음의 키들을 나타냅니다.

상수 설명
vbKeyNumpad0 0x60 0 키
vbKeyNumpad1 0x61 1 키
vbKeyNumpad2 0x62 2 키
vbKeyNumpad3 0x63 3 키
vbKeyNumpad4 0x64 4 키
vbKeyNumpad5 0x65 5 키
vbKeyNumpad6 0x66 6 키
vbKeyNumpad7 0x67 7 키
vbKeyNumpad8 0x68 8 키
vbKeyNumpad9 0x69 9 키
vbKeyMultiply 0x6A 곱하기 기호(*)키
vbKeyAdd 0x6B 더하기 기호(+)키
vbKeySeparator 0x6C <Enter>키
vbKeySubtract 0x6D 빼기 기호()키
vbKeyDecimal 0x6E 소수점(.)키
vbKeyDivide 0x6F 나누기 기호(/)키

다음의 상수들은 기능키를 나타냅니다.

상수 설명
vbKeyF1 0x70 <F1>키
vbKeyF2 0x71 <F2>키
vbKeyF3 0x72 <F3>키
vbKeyF4 0x73 <F4>키
vbKeyF5 0x74 <F5>키
vbKeyF6 0x75 <F6>키
vbKeyF7 0x76 <F7>키
vbKeyF8 0x77 <F8>키
vbKeyF9 0x78 <F9>키
vbKeyF10 0x79 <F10>키
vbKeyF11 0x7A <F11>키
vbKeyF12 0x7B <F12>키
vbKeyF13 0x7C <F13>키
vbKeyF14 0x7D <F14>키
vbKeyF15 0x7E <F15>키
vbKeyF16 0x7F <F16>키