1. 레지스트리중 아래 키값으로 이동
 --> HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main

2. Main 권한설정에 "값 설정" 거부를 셋팅.

원복할려면 거부된 권한 설정만 삭제하면 된다.




저작자 표시 동일 조건 변경 허락
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 늑대랑
'지겨운 액티브X’ 공짜로 지워준다

http://www.zdnet.co.kr/ArticleView.asp?artice_id=20090310092215

www.ncsc.go.kr 에서 배포중이고

일정 기간동안 쓰이지 않는 엑티브X를 지울수 있게 도와줍니다.


혹시나 몰라 파일을 첨부하였습니다^^

Posted by 늑대랑
출력

Total : 20002 MByte      Free : 1997 MByte


소스

#include <windows.h>
#include <iostream>

using namespace std;

struct ST_HDDUsage
{
        unsigned long   total;          // MByte
        unsigned long   free;           // MByte
};

class HddUsage
{
        typedef BOOL (WINAPI *GET_DISK_FREE_SPACE_EX)(
                LPCTSTR, PULARGE_INTEGER,
                PULARGE_INTEGER, PULARGE_INTEGER);

private:
        HINSTANCE       m_hInstLib;
        GET_DISK_FREE_SPACE_EX  m_pGetDiskFreeSpaceEx;

public:
        HddUsage()      :       m_hInstLib( 0 ), m_pGetDiskFreeSpaceEx( 0 )     {}
        ~HddUsage()             {       destroy();      }

        bool    init()
        {
                m_hInstLib = LoadLibrary( "kernel32.dll" );
                if( m_hInstLib == 0 )
                        return false;

                m_pGetDiskFreeSpaceEx = reinterpret_cast<GET_DISK_FREE_SPACE_EX>(
                        GetProcAddress( m_hInstLib, "GetDiskFreeSpaceExA") );

                if( m_pGetDiskFreeSpaceEx == 0 )
                        return false;

                return true;
        }

        void destroy()
        {
                if( m_hInstLib )
                        FreeLibrary( m_hInstLib);
                m_hInstLib = 0;
        }

        bool GetDiskUsage( const char * pszDrive, ST_HDDUsage * pHddUsage )
        {
                unsigned __int64 i64FreeBytesToCaller = 0;
                unsigned __int64 i64TotalBytes = 0;
                unsigned __int64 i64FreeBytes = 0;

                BOOL ret = m_pGetDiskFreeSpaceEx( pszDrive,
                        reinterpret_cast<PULARGE_INTEGER>( &i64FreeBytesToCaller ),
                        reinterpret_cast<PULARGE_INTEGER>( &i64TotalBytes ),
                        reinterpret_cast<PULARGE_INTEGER>( &i64FreeBytes ) );
                if( !ret )
                        return false;

                pHddUsage->total = static_cast<unsigned long >(
                        i64TotalBytes / (1024*1024) );          // Hdd total (MByte)

                pHddUsage->free = static_cast<unsigned long >(
                        i64FreeBytes / (1024*1024) );           // Hdd Free (MByte)

                return true;
        }

};

int main(int, char *[])
{
        HddUsage        hddUsage;
        if( hddUsage.init() ) {
                ST_HDDUsage     hdd;
                if( hddUsage.GetDiskUsage( "c:\\", &hdd ) ) {
                        cout << "Total : " << hdd.total <<
                                " MByte\t Free : " << hdd.free << " MByte\n";
                }
        }
        cout << "\t\thttp://fehead.tistory.com\n";
        return 0;
}

저작자 표시 동일 조건 변경 허락
Posted by 늑대랑
Visual C++에서 작업 하였다.

출력
CPU Usage : 57.8125%
CPU Usage : 40.625%
CPU Usage : 28.125%
CPU Usage : 29.6875%
CPU Usage : 18.1818%
CPU Usage : 21.875%
CPU Usage : 4.6875%
CPU Usage : 1.5625%


소스
#pragma comment(lib, "pdh.lib")

#include <windows.h>
#include <pdh.h>
#include <pdhmsg.h>
#include <iostream>

using namespace std;

class CpuUsage
{
private:
        PDH_HQUERY              m_hQuery;
        PDH_HCOUNTER    m_hCounter;

public:
        CpuUsage()      :       m_hQuery( 0 ), m_hCounter( 0 )  {}
        ~CpuUsage()             {       destroy();      }

        bool    init()
        {
                PDH_STATUS      status = PdhOpenQuery (0, 0, &m_hQuery);

                if( status != ERROR_SUCCESS )
                        return false;

                status = PdhAddCounter( m_hQuery, "\\Processor(_TOTAL)\\% Processor Time", 0, &m_hCounter );

                if( status != ERROR_SUCCESS )
                        return false;

                status = PdhCollectQueryData( m_hQuery );

                if( status != ERROR_SUCCESS )
                {
                        return false;
                }

                return true;
        }

        void    destroy()
        {
                if( m_hQuery )
                        PdhCloseQuery( m_hQuery );
                m_hQuery = 0;
        }

        bool    getCpuUsage( double * val )
        {
                PDH_STATUS      status = PdhCollectQueryData( m_hQuery );

                if( status != ERROR_SUCCESS )
                        return false;

                PDH_FMT_COUNTERVALUE    value;

                status = PdhGetFormattedCounterValue( m_hCounter, PDH_FMT_DOUBLE,       0, &value);

                if (status != ERROR_SUCCESS)
                        return false;
                *val = value.doubleValue;
                return true;
        }

};


int main( int argc, char * argv[] )
{
        CpuUsage        cpuUsage;
        if( cpuUsage.init() == false )
                return 1;

        while( true )
        {
                double  val = 0.0;
                if( cpuUsage.getCpuUsage( &val ) )
                        cout << "CPU Usage : " << val << "%\n";
                Sleep( 500 );
        }
        cout << "\t\thttp://fehead.tistory.com\n";

        return 0;
}


저작자 표시 동일 조건 변경 허락
Posted by 늑대랑
출력
 
Total : 2096236 free : 1242116


소스
#include <Windows.h>
#include <iostream>

struct ST_MemLog
{
        ULONG   totalMem;
        ULONG   freeMem;
};


bool    getMemLog( ST_MemLog * pMemLog )
{
        static const long       KBYTE = 1024;

        MEMORYSTATUSEX statex;

        statex.dwLength = sizeof (statex);

        if( GlobalMemoryStatusEx( &statex ) == FALSE )
                return false;

        // total Kbytes of physical memory
        pMemLog->totalMem = static_cast<ULONG>( statex.ullTotalPhys / KBYTE );

        // free Kbytes of physical memory.
        pMemLog->freeMem = static_cast<ULONG>( statex.ullAvailPhys / KBYTE );

        return true;
}

int main( int argc, char * argv[] )
{
        ST_MemLog       memLog;

        if( getMemLog( &memLog ) ) {
                cout << "Total : " << memLog.totalMem <<
                        "\tfree : " << memLog.freeMem << endl;
        }
        cout << "\t\thttp://fehead.tistory.com\n";

        return 0;
}


저작자 표시
Posted by 늑대랑
소스예제
#include <windows.h>
#include <iostream>

using namespace std;

int main( int, char *[] )
{
        const int arr[] = {100, 200, 300, 400, 500};

        cout << "_countof(arr)              : " << _countof(arr) << endl;
        cout << "sizeof(arr)                : " << sizeof(arr) << endl;
        cout << "sizeof(arr)/sizeof(arr[0]) : " << sizeof(arr) / sizeof(arr[0]) << endl;

        return 0;
}

결과
_countof(arr)              : 5
sizeof(arr)                : 20
sizeof(arr)/sizeof(arr[0]) : 5


소스를 참고 하시라^^
저작자 표시
Posted by 늑대랑

소스 세이프 2005에서 쓰기 모드로 코딩하기 무척이나 힘듭니다.

쓰기모드로 컴파일도 제대로 못하게 해놔서 참 힘들더군요.

파일 하나를 다른사람이 체크아웃하고 사용중이면 거의 아무것도 못하게 되어있습니다.


그래서 열심히 구글링 해봤으나 못 찾고 결국 하나하나 해서 결국 찾았습니다.


Visual C++ 2008 옵션창에 들어가서



  • 툴--> 옵션

    • 소스제어(Source Control) --> 환경(Environment) 중

      • On Edit --> 단독 체크 아웃 확인(Prompt for exclusive checkouts)

으로 설정하시고 visual C++ 재시작하시고 쓰기 모드로 작업하시면 되겠습니다.


기존에 쓰기 모드로 한 작업들은 위설정으로 바꾸고 GetLast후 다시 작업하셔야 합니다.

저작자 표시
Posted by 늑대랑
아는 지인과 이야기 하다가

아는 상사가 나에 대한 평가를 하는것을 들었다.

나의 프로그래머 실력 평가가 지랄이란다.

그래두 그러면 안된다고 말하며 자리로 왔다.

갑.자.기. 기분이 나빠진다.
오기가 생긴다.


이런 쉬.박 그래두 나는 내가 할일 다하고

파트원들이 하는 일들을 자동화 하는 툴을 만들어서 이제 야근도 거의 안하는데

돌아오는게 이거라니..

아~~ 기분 잡친다

흐이그..

그래 내가 한일따위는 생각지도 않는가보다.

현재 팅가팅가 하고 있는 모습만 보이는가 보다.. (물론 내가 해야 할일은 다 한다.)

일을 못하게 막은게 누군데..

울 파트 수쎠놓은게 누군데..

그래 프로그래머 실력을 더 키워야 겠다.

ACE 이번년도에 마스터 한다.

6개월, 내년초에 새로운 프로그램 만들고 나가야겠다.

반.드.시 만들고 만다.

이 기분 잊지 말자.

뱀다리) 좀더 생각을 가지고 생각해보면 내가 잘못했을지도 모른다는 생각이 든다
이렇게 생각이 되게끔 만든 내가 잘못한점도 있다. 공부하자. 노력하자. 늑대가 되자!
Posted by 늑대랑
조건 1 : 초보 유저, 무료사용자(필수는 아님)
조건 2 : 전투형 우선( 그외에 마법형도 어느정도 필수)

캐릭터를 생성하는데.. 17세로 만드는것이 중요하다.

혹시 이미 만들었다면 다음 환생할때 꼭 17세 환생을 하는것이 좋다.

만든지 별로 되지 않았고  레벨이 높지 않다면 10살~12살이라면 당장 캐릭터를 삭제하고 다시 만들어라.
(삭제하고 하루 있다가 만들수 있다.)

일단 나이가 많으면 20세때 무료환생을 빨리 할 수 있고
이때문에 누적 레벨업을 빨리할 수 있다.

그리고 결정적으로 나이가 많으면 무기 숙련이 빨라서 매우좋다.


이제 캐릭터를 만들었으면 윈드밀 수련이다.

아무것도 올리지 말고 윈드밀(전투형, 마법형 전사)만 올리는것이 좋다고 생각한다.

크리티컬 정도만 A정도까지만 올리는것이 좋다고생각함.

무기는 글라디우스 몬스터표( 내구 15, 16정도하는것 룬다기준 2만정도에 잘하면 구입가능) 를 구입하거나

일반 가계표 글라디우스를 쌍검으로 구입하여 착용하는것이 쓴다. - 나중에 230 글라로 개조한다. 솜씨를 따지지 않아 솜씨가 없는 캐릭에게 최고의 검이다.

몬스터표 글라디우스는 던바든 1채널이나 하우징에서 구하면 된다.

수리는 95%되는 곳에서 수리하는것을 추천한다. (베이스 캠프, 던바든 추천)

수련장소는 http://www.mabinogi.pe.kr/bbs/zboard.php?id=tips 에서 찾아서 하면 된다.

9랭까지는 알비던전 가는길에 있는 여우, 키아가는길에 있는 여우 무리등을 상대하면 되고 17세에 여우에 진 타이틀도 쉽게 얻을수 있다.


요약정리)
  1. 캐릭터 생성시 17세로 생성(20세 무료환생으로 인단 레벨초기화로 누적레벨 쉽게올릴수 있음, 무기숙련 빠름)

  2. 20세가 되면 17세 환생(무료 환생 가능)을 하도록한다. (1번이유로)

  3. 글라디우스 쌍검을 구입하여 장착.(숙련이 되면 230글라 개조를 하도록하자)- 솜씨가 없는 캐릭용 최고의 무기.

  4. 윈드밀 스킬만 1랭까지 올린다.(추가로 크리티컬 스킬을 어느정도-알파벳랭킹정도- 올린다.)

  5. 보스급은 저승에 가서 좀비를 잡거나, 타라 그들만의 방식 그림자 던전에 들어가 좀비를 잡으면 됩니다. 오로지 윈드밀로.

Posted by 늑대랑
윈드밀 1랭을 하니 다른 스킬을 올릴수 있어 좋다.
컴벳 A랭이었는데 현재 6랭으로 올렸다.
디펜스가 D에서 9랭으로 올렸다.

지금까지 키하 솔플만 가능했는데
이제는 라비 하급 솔플도 가능해졌다.

왠만한 던전에 2명 이상이서 가면 잘 깬다^^

진짜 범위가 사기적이다^^.


Posted by 늑대랑