반응형
인터넷 사용이 필수가 된 요즘에는 MAC을 통한

인증방법이 네트워크 인증 방법의 하나로 사용되고 있다.

원칙상으로는 매번 다른 컴퓨터 다른 랜카드를 사용할 때마다, 다른 MAC을 사용해야 하지만.

PC에서는 다음과 같이 MAC을 변경할 수 있다.

[Windows 7]
1. 바탕화면,혹은 시작의 컴퓨터에서 마우스오른쪽->속성


2. 왼쪽 탭에서 장치관리자를 실행


3. 네트워크 어댑터에서 MAC을 변경하고자 하는, 랜카드를 찾아 더블클릭한다


4. 고급 탭의 네트워크 주소로 이동하여 값에 MAC값을 넣어준다.


[Linux]
터미널에서 다음과 같이 명령어를 입력하면된다.
1. ifconfig eth0 down (장치 정지)
2. ifconfig eth0 hw ether AA:AA:AA:AA:AA:AA (MAC입력)
3. ifconfig eth0 up (장치 다시시작)




반응형
반응형
윈도우 사용자라면 한번쯤은 고민 해봤을 고민일 듯이다

시스템 관련 설정을 건드리는 프로그램을 실행/설치시 항상 뜨는 화면인

"다음프로그램이 이 컴퓨터를 변경하는것을 허용하시겠습니까?" 라는 Y/N 대답

이와같은 과정을 귀찮게 생각하는 사람인 나는 다음과 같이 설정하여 이와같은 창이 뜨지 않도록 수정하였다.

1. 시작->제어판->사용자계정 클릭


2. 사용자 계정 컨트롤 설정 변경 클릭


3. 슬라이드를 알리지 않음으로 쭉 내려주고 확인!!







반응형
반응형
WebOS SDK설치
1.WebOS용 SDK를 다운받아 설치한다.
기기에 접근하여 cm7 을 설치하기 위해서는 WebOS용 SDK를 필요로 한다.

아래 링크로 접속하여 각각 Windows 버젼에 맞는 SDK를 다운받아준다.

https://developer.palm.com/content/resources/develop/sdk_pdk_download.html#windows


2. SDK의 설치가 끝났으면, Windows를 재부팅 해준다.
설치가 완료되었는지는 시작->실행->cmd->enter로 명령 프롬프트를 열고
novacom이라고 입력하여 다음과 같은 Message가 출력되면 제대로 설치가 된 것이다.


터치패드 안드로이드(CM7 Alpha3) 다운로드
일단 터치패드 유저를 위해 열심히 노력해주고 있는 CM팀에 감사하는 마음을 갖고
다음과 같은 과정을 수행한다.

1. 최신 CyanogenMode(CM)을 다운받는다
아래의 주소로 가서 최신버젼의 CM의 글을 클릭한다.
현재의 경우 Alpha3가 최신 버전이다.
http://rootzwiki.com/forum/278-cyanogenmod/


그리고 글 아래를 보면 아래와 같이 나오는데
그림에 표시되어 있는 것들을 다운로드 한다.

순서대로
1. Installer
2. UnInstaller
3. Android Kernel(CM)
4. 복구모드 관련
5. WebOS/안드로이드 멀티부팅 관련

받아놓는다.



2. Google Apps 다운로드
기본적으로 CM모드에서 안드로이드 앱스토어를 이용하기 위해서는 gapps를 다운받아야 한다.

아래 링크로 가면 다운받을 수 있다.
http://goo-inside.me/gapps/

각 Mode에 맞는 google Apps를 다운받아 설치한다. 2011-12-05현재 터치패드는 cm7을 사용하고 있으므로,
이에 해당하는 링크를 통해 받으면 된다.




CM 설치하기(제거는 다음 Chapter로 넘어가 주세요)
이전버전 설치하신분들은 제거 후 WebOS에서 다음과 같은 과정을 진행해 주세요
1. 터치패드를 PC에 연결하고 USB모드로 들어갑니다.
2.



이동식 디스크로 잡힌 TouchPad에 "cminstall" 폴더를 생성한다.
3. cminstall 폴더내에, 커널파일(CM), 리커버리모드파일, 멀티부팅파일, 구글앱스를 넣어준다.
4. 터치패드 상에서 USB연결을 해지한다.(USB선은 연결해놓은 채로 유지)
5. 터치패드 상에서 Setting->Device Info->Reset Option에서 Reboot을 눌러준다.
6. 재부팅이 시작되면 볼륨업 버튼을 누르고 있는다(하얀 USB 그림이 나올 때 까지)

7. 이제 컴퓨터 윈도우즈 상에서 '시작->실행->cmd->Enter키'로 명령 프롬포트 를 실행한후
8. Installer를 받은 디렉토리로 받아 다음과 같이 입력한다.

9. 그럼 터치패드 상에서 안드로이드가 설치 완료된 후 재부팅 된다.





CM 제거하기
1. 터치패드를 재부팅하고 볼륨업 버튼을 누르고 있는다(하얀 USB그림이 나올 때까지)
2. 이제 컴퓨터 윈도우즈 상에서 '시작->실행->cmd->Enter키'로 명령 프롬포트 를 실행한후
3. UnInstaller를 받은 디렉토리로 받아 다음과 같이 입력한다.


4. 터치패드 상에서 제거작업이 진행됩니다.
5. 이제 컴퓨터로 연결 후, 안드로이드 관련 파일을 지워주시면 제거는 모두 완료됩니다.





반응형
반응형


위는 제가 사용하고 있던 PC의 정보입니다.

64비트를 쓰면 3.5GB이상의 메모리도 당연히 인식이 되어야 하는데....

위와같이 3.5기가만 사용가능 이라고 나오네요..

위와 같은 문제는 Mainboard의 CMOS의 설정에 의해서, 발생하는 문제입니다.

그래서 CMOS설정을 보게되면,

다 아시겠지만, CMOS설정을 보기 위해서는 컴퓨터가 켜지고 Del키 혹은 F2와같이 버튼을 누르면 접근할 수 있습니다.

보통화면에 어떤키를 누르면 된다고 등장하기에 :) 잘 보고 누르시면 됩니다.

아래는 기본적인 CMOS설정화면입니다. 우리가 원하는 작업을 위해서는 Advanced 탭에 있는 Chip 설정으로 들어갈 것입니다.

CMOS의 화면은 메인보드마다 다르기 때문에 비슷한 옵션을 찾아보시면 될 것 같습니다.




AdvancedChipsetting에 가시면 North Bridge와 South Bridge설정이 보입니다.

여기서 North Bridge의 설정을 보시면




메모리 주소의 Remap에 관련된 Feature가 Disable 되어있는 것을 보실 수 있습니다.

이것을 Enable 시켜주시면 됩니다.



이제 CMOS를 저장하고 다시 켜보시면

RAM이 4기가를 쓸수있게 된것을 확인하실 수 있습니다.



반응형
반응형


안드로이드 폰 사용자라면 많이 본 화면!!

바로 위와같은 잠금해제 화면인데요


많은 사용자분들이 안드로이드 패턴으로, 비밀번호를 걸어놓고 사용하고 계십니다.


하지만 저같이 만사가 귀찮은 사람들은 위와같이 간단히 놓고 사용을 하게 되는데요 ㅋ


이마져도 귀찮아질 때, 이를 제거하는 팁입니다.


이 팁은 갤럭시 시리즈에만 적용되며, 타메이커 타 기종들은 적용되지 않습니다.



위와같이 전화 다이얼 항목에 다음과 같이 입력합니다.
*#46744674#

*#7594#


shutdown 체크

후 재부팅 하시면 적용됩니다.
하지만 이렇게 세팅을하면 전원버튼을 오래 누를시, 전원종료에 대한 메뉴가 등장하지 않아서
바로 꺼질 수 가 있습니다 :) ㅋ
이와같은 단점은 확인하시고 적용하시기 바랍니다.

원상복귀도 위와반대로 진행하시면 됩니다.



반응형
반응형
Dialog를 사용하였을때, 우리는 위의 표시줄을 없앤채로 사용할 수 있다.
그 경우에는 다이얼로그의 위치를 옮기게 만드는데 상당히 문제가 있다.
따라서, 다음과 같은 작업으로 테두리 드래그를 통해 다이얼로그를 옮길 수 있다.

클레스 마법사에서 메세지중, ON_NCHITTEST에 해당하는 것을 추가하고 다음과 같은 내용을 해주면 된다.

아래코드는
Board의 윗부분을 클릭했을 때,
System 함수를 클릭한것과 같은 Return값을 보여주게 된다.

LRESULT SizeWindowDlg::OnNcHitTest(CPoint point)
{
    // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
    UINT nHitTest = CDialog::OnNcHitTest( point );

    return ( nHitTest == HTTOP  ) ? HTCAPTION : nHitTest;
}

MSDN에서 HTTOP과 HTCAPTION을 검색하면, 다른 Dialog위치들에 대한 수정도 가능하다.
반응형
반응형
Dialog 에 OnInitDialog()함수내에 다음과 같은 구문을 추가하면 된다.

BOOL SizeWindowDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    typedef BOOL(WINAPI *SLWA)(HWND,COLORREF,BYTE,DWORD);
    SLWA pSetLayeredWindowAttributes = NULL;
    HINSTANCE hmodUSER32 = LoadLibrary(_T("USER32.DLL"));
   
    pSetLayeredWindowAttributes =    (SLWA)GetProcAddress(hmodUSER32,"SetLayeredWindowAttributes");

    HWND hwnd = this->m_hWnd;
    SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE) | WS_EX_LAYERED);
    BYTE byAlpha = 70; //투명도 설정
    COLORREF cr = GetSysColor(COLOR_BTNFACE);
    SetLayeredWindowAttributes( cr, byAlpha, LWA_COLORKEY );

return TRUE;
}


마지막의 LWA_COLORKEY 옵션의 변경을 통하여 여러 형태의 Dialog가 가능하다.

나머지는 MSDN을 참고하여 수정가능함
반응형
반응형
1. Fseek
Fopen으로 얻은 파일포인터 내에서 위치를 이동한다.
int fseek ( FILE * stream, long int offset, int origin );

stream - 작업을 수행할 스트림의 FILE 객체를 가리키는 포인터
offset - orgin 으로 부터 얼마나 떨어진 곳에 설정할 지에 대한 값
origin -

<stdio.h> 에 정의된 다음과 같은 상수들을 이용한다.
SEEK_SET 파일의 시작
SEEK_CUR 현재 파일 포인터의 위치
SEEK_END 파일의 끝

예제)
#include "stdio.h"
FILE *fp = fopen("test.txt","r");
fseek(fp, 0, SEEK_SET);


2. Feof
파일포인터 내에서 파일의 끝까지, 탐색하는 함수

Return
인자로 전달된 스트림의 파일 끝 지시자가 설정되어 있다면 0 이 아닌 값을 리턴한다.
그렇지 않을 경우 0 이 리턴된다.

int feof ( FILE * stream );

while(!feof(fp)){
    fscanf(fp,"%c",&temp);
}

반응형
반응형
아래 예제는 대문자에서 소문자로 변화해주는 예제 입니다.

ASCII Code표의 대문사 소문자 값의 차이를 이용해 구현하는 것으로

대문자는 ASCII 코드 65에서 90번 사이의 값을 갖습니다.

아스키코드표
http://ko.wikipedia.org/wiki/Ascii

char *small_letter(char *input){
  char *temp = (char*)malloc(sizeof(char)*256);
  for(unsigned int i = 0 ;; i++){
      if((input[i]>=65) && (input[i] <= 90)){
          temp[i] = (input[i] + 32);
      }
      else {
          temp[i] = input[i];
      }
      if(input[i] == '\0') break;
      if(input[i] == '\n') break;
  }
  return temp;
}

반응형
반응형
scandir을 이용하여, 파일리스트와 폴더리스트를 불러오는 방법이다

필수적으로,

참고 Link
fstat : http://codewiki.wikidot.com/c:system-calls:fstat
s_islnk: http://www.freepascal.org/docs-html/rtl/oldlinux/s_islnk.html

요구 include Files
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>

long_t getFileList(const str_t dir, str_t*& list)
{
     /* Scan directory */
     struct dirent** pp_item;
     struct stat fstat;

// scandir 함수를 이요해서 파일과 디렉토리 내용을 가져온다
     long_t item_cnt = scandir(".", &pp_item, NULL, alphasort);

     /* Count files */
     long_t file_cnt = 0;
//파일 개수만큼 loop를 돌린다.
     for(long_t i = 0; i < item_cnt; i++) {

//현재 폴더와 이전폴더는 무시하고
         if(!strcmp(pp_item[i]->d_name, ".") || !strcmp(pp_item[i]->d_name, "..")) continue;

         lstat(pp_item[i]->d_name, &fstat);
//Regular file과 Simbolic Link file일 경우
         if(S_ISREG(fstat.st_mode) || S_ISLNK(fstat.st_mode)) file_cnt++;
     }

     /* Allocate memory */
     str_t* pp_list;
     pp_list = new str_t [file_cnt];

     /* Copy the filenames to list */
     long_t index = 0;
     for(long_t i = 0; i < item_cnt; i++) {
         if(!strcmp(pp_item[i]->d_name, ".") || !strcmp(pp_item[i]->d_name, "..")) {
             free(pp_item[i]);
             continue;
         }

         lstat(pp_item[i]->d_name, &fstat);
         if(S_ISREG(fstat.st_mode) || S_ISLNK(fstat.st_mode)) {
             pp_list[index] = new char_t [strlen(pp_item[i]->d_name) + 1];
             strcpy(pp_list[index], pp_item[i]->d_name);

             index++;
         }
         free(pp_item[i]);
     }
     free(pp_item);

     list = pp_list;

     return file_cnt;
}
반응형

+ Recent posts