XP에서는 GetTickCount 이라는 함수가 있다.

컴퓨터가 켜진뒤 1ms 값으로 기록된 Tick 데이터인데 / 1000 을 해야 초가 나온다.

Long 변수값 때문에 32 bit의 한계를 가지고 태어나 최대 49.61일 정도만 측정된다.( 누구는 49.7 이라는데 계산바랍니다. )


아무튼!

이 방법으로 280일 동안 켜져 있는 컴퓨터의 시간을 측정하기엔 처음부터 안 맞는 구조다.

VB6 로 해결 할 수 있는 방법을 구글링 했으나 삽질만 하루종일 했다. 


"로컬 영역 연결" 상태창에서는 연결된 시간이 표기 된다.

그 데이터를 얻기 위해 노력했으나 실패~  아닌 삽질이 연속되었고


마침내 찾았다.


net 명령어로 가능했다. DOS를 아시는 분이면 금방 찾을텐데 ㅎ

CMD 창을 띄운후 net statistics workstation  (엔터)


2016-05-17 11:44 이후의 통계


수신된 바이트 ...

수신된 서버 메시지 블록 ...

전송된 바이트 ...

전송된 서버 메시지 블록 ...


이걸 리다이렉션을 통해 TXT 파일로 저장해서 읽는 방법이다.

C:\>net statistics workstation > uptime.txt

하아~ ^^..

Posted by +깡통+

VB6 에서 발생하는 에러 입니다.

 

UDP 소켓을 이용하시나요?

sckUDP.SendData "aaa"

 

상대방 UDP 포트가 없다면 송신 오류가 발생한다.

근데 SendData 할때는 발생하지 않고

 

 

Private Sub sckUdp_DataArrival(ByVal bytesTotal As Long)
    Dim sRecvData As String
    sckUDP2.GetData sRecvData    '// 여기서 발생한다.
    Call S_LPR_Process(1, sRecvData)
End Sub

 

 

처리 방법은 아래와 같다.


Private Sub sckUdp_DataArrival(ByVal bytesTotal As Long)
    On Error Resume Next
    Dim sRecvData As String
   
    sckUDP2.GetData sRecvData
    If err.Number Then err.Clear: Exit Sub
       
    Call S_LPR_Process(1, sRecvData)      
End Sub

 

 

 

참고자료.

https://support.microsoft.com/ko-kr/kb/260018

 

Posted by +깡통+

 

 

 

T= RichTextBox 1개와 T2= TextBox 1개를 만듭니다.

버튼을 3개 그리세요~

 

Private Sub Command1_Click()
    T.Text = "AA하하호BB호히히히XX"
    T.SelStart = 1
    T.SelLength = 2
    T.SelColor = vbRed
    T.SelStart = 4
    T.SelLength = 2
    T.SelColor = vbGreen
    T.SelFontName = "궁서"  
End Sub

 

Private Sub Command2_Click()
    T.Text = ""
    T.SelRTF = T2.Text
End Sub

 

Private Sub Command3_Click()    
    T.SelStart = 0
    T.SelLength = Len(T)   
    T2.Text = T.SelRTF   
End Sub

RTF 값에서 얻은 코드는 아래와 같습니다.

대부분 \f 로 시작하면 명령어로 처리 하며,

\cf 는 폰트의 색상을 처리하고 \' 로 시작하면 2 Byte로 처리합니다.

 

첫번째 대괄호는 폰트 정보이며,

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset129 \'b1\'bc\'b8\'b2;}{\f1\fnil\fcharset129 \'b1\'c3\'bc\'ad;}}

두번째 대괄호는 색상 정보입니다.
{\colortbl ;\red255\green0\blue0;\red0\green255\blue0;}

아래 코드는 ?? 아직 모르겠네요~
\uc1\pard\lang1042

\f0    // 0 번째 폰트선택( 상단에 빨간색 부분 입니다. 폰트명이 기재되어 있습니다. )

\fs18    // 폰트 사이즈를 의미 합니다.

A    // 'A' 출력

\cf1 // 컬러를 1번째 색상 정보를 사용하네요.  Red 입니다.

A    // 'A' 출력

\'c7\'cf    // '' 출력

\cf0    // 컬러를 0번째 즉, 기본값 Black 으로 변경합니다.

\'c7\'cf    //  '하' 출력

\cf2    // 컬러를 2번째 색상 정보를 사용합니다. Green 입니다.

\f1    // 1 번째 폰트선택( 상단에 파란색 부분 입니다. 다른 폰트명이 기재되어 있네요 )

\'c8\'a3    // '' 출력

B        // 'B' 출력

\cf0    // 컬러를 0번째 Black 으로 변경합니다.

\f0     // 폰트도 0번째로 변경합니다.

B        // 'B' 출력

\'c8\'a3    // '호' 출력

\'c8\'f7    // '히' 출력

\'c8\'f7    // '히' 출력

\'c8\'f7    // '히' 출력

X            // 'X' 출력

X            // 'X' 출력

}

 

하아~  이로써 Color 정보에 대한 분석을 마쳤습니다.

도움이 되시는 분들이 있기를~~!!

 

참고 주소 : https://msdn.microsoft.com/ko-kr/library/ee681613(v=vs.95).aspx

Posted by +깡통+

VB6 에서 Sheridan 3D Controls (threed32.ocx) 을 이용하여 버튼을 만드는 경우가 있다.

 

프로그램을 실행하여 테스트중 SSCommand 버튼을 클릭하는 순간 프로젝트가 닫히고 VB6 까지 종료되는 버그를 경험하였다.

 

몇번 그 문제를 해결했었는데 포스팅을 남겨놔야 다시 찾을 것 같다.

 

원인: 모름.

 

해결방법: VS6sp5VB.exe   서비스팩 5을 설치하고 해결.

 

 

 

Posted by +깡통+

두개의 체크박스를 옵션처럼 쓰고

또 각각의 체크박스가 선택해제되게 하려면 아래와 같이 코딩하면 된다.

 

Private Sub Check1_Click()
    If Check1.Tag = "BUSY" Then Exit Sub
    If Check2.Value = vbChecked Then
        Check2.Tag = "BUSY"
        Check2.Value = vbUnchecked
        Check2.Tag = ""
    End If
End Sub

Private Sub Check2_Click()
    If Check2.Tag = "BUSY" Then Exit Sub
    If Check1.Value = vbChecked Then
        Check1.Tag = "BUSY"
        Check1.Value = vbUnchecked
        Check1.Tag = ""
    End If
End Sub

 

Posted by +깡통+

VB 가지고 밥먹은지 10년째..

정말 프로그래머의 인생은 끝 없는 공부의 연속이다.

 

아직 몰랐던 함수를 정리하고자 한다.

 

LSet - 메모리 복사 개념. 형식이 다른 변수를 대입하여 복사 할 수 있다.  Integer -> 2 Byte 배열

Filter - 문자열 배열에서 지정된 문자열을 포함하는 요소를 뽑아 다시 배열로 반환하는 함수.

Join - Split 반대의 개념. 나눴던 문자열 배열을 다시 결합하는 함수

StrReverse - 문자열을 역순으로 바꾸어 반환하는 함수

 

Posted by +깡통+





threed.ocx 에서 발생했다.  헉 수많은 프로젝트가 이걸 썼는데 갑자기 실행이 안된다 ㅠㅠ
가끔 어떤 프로그램을 설치했을때.. OCX 버전 충돌이나
혹은 나처럼 디어셈블리어를 설치했더니 겪는 문제이다. ( 추측 )

문제 해결방법은..  아래 사이트에서 디자인 타임 라이센스를 변경해주는 패치를 해주면 된다.
http://support.microsoft.com/kb/195353/ko


기술 자료: 195353 - 마지막 검토: 2005년 3월 7일 월요일 - 수정: 3.3

FILE: 중지된 컨트롤에 대한 라이센스 VBUSC.EXE가 제공합니다.

모두 확대 | 모두 축소

요약
VBUSC.EXE 이전 버전의 Visual Basic 선적된 있지만 더 이상 지원되지 않으므로 및 현재 버전과 단종되지 ActiveX 컨트롤에...

VBUSC.EXE 이전 버전의 Visual Basic 선적된 있지만 더 이상 지원되지 않으므로 및 현재 버전과 단종되지 ActiveX 컨트롤에 대한 디자인 타임 라이센스 설치합니다 파일입니다.

추가 정보
Microsoft 다운로드 센터에서 다음 파일을 다운로드 할 수 있습니다: VBUSC.exe (http://download.microsoft.c...

Microsoft 다운로드 센터에서 다음 파일을 다운로드 할 수 있습니다:
VBUSC.exe (http://download.microsoft.com/download/vb60pro/install/2/win98/en-us/vbusc.exe)
2000년 8월 15일 릴리스 날짜:

Microsoft 지원 파일을 다운로드하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) 온라인 서비스로부터 Microsoft 지원 파일 구하는 방법
Microsoft는 이 파일에 대한 바이러스를 검색합니다. Microsoft는 파일을 게시한 날짜에 사용할 수 있었던 최신 바이러스 검색 소프트웨어가 사용됩니다. 해당 파일을 무단으로 변경할 수 없는 보안이 향상된 서버에 보관됩니다.
    FileName               Size
   ---------------------------------------------------------
   VBUSC.EXE                88k
				
다음 컨트롤은 Microsoft Visual Basic에서 더 이상 지원되지 않습니다:
ActiveX Control Name                Filename
------------------------------------------------
Desaware Animated Button Control    ANIBTN32.OCX
Microhelp Gauge Control             GAUGE32.OCX
Pinnacle-BPS Graph Control          GRAPH32.EXE
Microsoft Grid Control              GRID32.OCX
Microhelp Key State Control         KEYSTA32.OCX
Microsoft Outline Control           MSOUTL32.OCX
Outrider SpinButton Control         SPIN32.OCX
Sheridan 3D Controls                THREED32.OCX
				
있는 ActiveX 컨트롤 위에 나열된 더 이상 지원되지 않으며, 있지만 기존 프로젝트를 업그레이드할 때 이전 버전과의 호환성을 위해 전문가 및 엔터프라이즈 버전 중 Visual Basic 배를.

이러한 컨트롤은 학습 Edition의 Microsoft Visual Basic 함께 제공되는 수행할지 않습니다.

전문가 및 엔터프라이즈 버전 컨트롤 설치 CD 다음 위치에 있는:
Microsoft Visual Basic Edition        Location
----------------------------------------------------------------------
Professional 6.0                      \Common\Tools\VB\Controls
Enterprise 6.0                        \Common\Tools\VB\Controls
Visual Studio Professional 6.0        \Common\Tools\VB\Controls (CD2)
Visual Studio Enterprise 6.0          \Common\Tools\VB\Controls (CD3)
				
이러한 디렉터리의 각 README.TXT 디자인 타임 사용할 컨트롤을 설치하는 방법에 대한 지침이 포함되어 있습니다.

참고: Visual Basic의 이전 버전에서 개발한 프로젝트를 업그레이드하려면 학습 Edition 사용 문제가 이러한 컨트롤에 대한 라이센스 발생할 수 있습니다.

해당 VBUSC.EXE VBA 컴퓨터에서 검색된 경우 위에 나열된 컨트롤에 대한 디자인 타임 라이센스를 설치합니다.








Posted by +깡통+
이전버튼 1 이전버튼