kkuzil.own@gmail.com

Posted
Filed under Development/Delphi

function GetWndHandleFromPID(dwPID: DWORD): HWND;
var
  h: HWND;
  dwCheckPID: DWORD;
begin
  Result := 0;
  h:= FindWindow(nil, nil);
  while h <> 0  do
  begin
    if GetParent(h) = 0 then
    begin // 최상위 핸들 체크 (컨트롤 무시)
      GetWindowThreadProcessId(h, @dwCheckPID);
      if dwCheckPID = dwPID then
      begin
        Result := h;
        exit;
      end;
    end;
    h:= GetWindow(h, GW_HWNDNEXT);
  end;
end;
2012/09/21 16:44 2012/09/21 16:44
Posted
Filed under Development/Delphi

  PEntry = ^TEntry;
  TEntry = packed record
    case Integer of
    0 : (Head: TEntryHead);
    1 : (Data: array [0..511] of AnsiChar);
  end;
이런 구조체가 있을때,
...
..

var
  e: TEntry;
begin
  ReadData(...., ...., @e);
end;

이 경우 포인터가 잘못 되었다는 메시지가 뜨면서 에러가 발생한다.
코드상.. 아무런 잘못도 없는거 같아서..
ReadData(...., ...., @e.Data[0]);

머 이렇게 해도 안되고..

그래도 계속 트라이 하는중에 알아냈다.

 TEntry = packed record

여기서 packed  빼 주니깐 된다는..

기본 바이트 정렬을 사용하지 않고 packed를 해주면
컴파일러가 내부 포인터를 어떻게 써야하는지 헷갈리나보다..

아무튼 다음에도 이런문제가 생기면 기억나도록 이렇게 기록함.
2012/07/31 16:00 2012/07/31 16:00
Posted
Filed under Windows
비스타 이상 부터는 시스템 폴더(System32)의 파일들은 삭제, 변경 할때
TrustedInstaller의 권한으로만 할 수 있다고 한다.

이게.. 아무리 찾아봐도 API로는 없고.. 따라서 시스템 파일들을 건드릴 방법이 없다.
하지만 방법은 있다. takeown.exe로 권한을 바꿔줄수 있다는..

사용방법

> takeown /F "파일경로"
이렇게 하면 해당 파일이 현재 계정의 권한으로 소유할 수 있게 된다.
> takeown /F "디렉토리경로" /R /D Y
이건 디렉토리 권한 설정이다. /R 은 하위까지, /D Y 는 물어보지말꼬 모두 Yes다


이렇게 파일을 소유 했으면 icacls.exe 권한을 부여 할 수 있게된다.

> icacls "경로" /grant administrators:F
요렇게 하면 administrators그룹에 모든권한 (F)를 줄 수 있게 된다.
특정 권한만 주고 싶으면 F를 다르게 설정 하면되겠지?

끝.
2012/07/23 17:53 2012/07/23 17:53
Posted
Filed under Windows
Invalid image size

난 아직 이 에러 메시지를 한번도 겪어보지 못했지만..
이런 경우가 발생하는 경우가 있다.
보통 이메세지가 뜨면 UI가 뜨지 않으며 프로그램이 그대로 종료되어 버린다.

대략 적인 원인은 윈도우 타이틀바 폰트를 너무 작게 해서 타이틀바에 아이콘을 우겨넣을
공간이 없을경우로 생각된다.

타이틀 폰트를 줄인다고 무조건 발생하는것도 아니고 해당 OS에서 지원되지 않는
사이즈를 프로그램 아이콘(*.ICO) 넣어다던가 했을때 나타날 수 있다.

사용자가 할 수 있는 해결 방법은 윈도우 디스플레이 설정창에서 바탕화면 설정에서
타이틀바 폰트를 크게 해주면 해결된다.

개발자가 할 수 있는 해결 방법은 정상적인 프로그램 아이콘(*.ICO)을 사용하면
별 문제 없다.

참고 : http://koban5555.blog9.fc2.com/blog-entry-687.html

끝.
2012/07/23 17:44 2012/07/23 17:44
Posted
Filed under Development/Java & Android
매번 설치 할때마다 다른 블로그를 보고 했는데..
그것도 좋지만 내가 간단하게라도 정리하는것도 좋을거 같았다.

1. java JDK 설치

다운로드 : http://www.oracle.com/technetwork/java/javase/downloads/index.html

에디션은 SE를 받도록 하자.
자바에 대해서 잘 모르지만, ME(모바일), EE(엔터프라이즈) 이렇게 라고 한다.
자바 설치가 완료되면 "시작 - 실행 - cmd" 로 들어가서

>java -version 이라고 쳐서 잘 설치가 됐는지 확인해 본다.
2012-05-23 현재 버전 java version "1.7.0_04"

2. eclipse 설치

다운로드 : http://www.eclipse.org/downloads/
뭔가 버전이 굉장히 많은데..


The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended
참조 : http://developer.android.com/sdk/eclipse-adt.html#installing
"Eclipse Classic" 깔자..


eclipse는 설치버전이 아니고 압축파일 형식이기 때문에 원하는곳에 압축풀면된다.
난 루트에 풀었다.. (C:\eclipse_classic)
시작하면 작업 폴더를 선택한다. (C:\taskSunk)
 

3. android 개발 툴킷 설치 (ADT) - eclipse

원래 android SDK를 먼저 설치해야 하지만 요즘은 많이 편해졌다.
ADT를 먼저 설치하면 자동으로 알아서 설치해 준다.
    1. Help - Install New Software - 상단에 Add 버튼 클릭
    2. Name : ADT Plugin
    3. Location : https://dl-ssl.google.com/android/eclipse/ 입력 후 OK
    4. 가운데 트리뷰에 "Developer Tools"에 체크 후 Next 완료되면 또 Next
    5. 동의하고 Finish - 설치

4. android SDK 설치

Menu - Window - Android SDK Manager
원하는버전 체크 후 설치~

2012/05/23 20:24 2012/05/23 20:24