Q&A

  • 윈도우 로그인 화면에 대해서 고수님들의 도움을 받고자 합니다.
안녕하세요 델파이 초초보입니다.
PC 보안 프로그램을 만들고 있는데 너무 힘이 드네요 ㅠ.ㅠ
고수님들의 도움을 받고자 글을 올리니 부디 왜면하지 마시고 답을 주셨으면 합니다.

1.우선 RF카드리더기가 PC와 232로 물려있습니다. 컴퓨터가 부팅되면서 윈도우 로그인화면이 뜨는데 이 로그인 화면을 나오지 않게 할려면 어떤 API 함수를 사용하면 되는지요? 이 로그인화면을 없애고 자동프로그램 실행으로 컴퓨터를 사용할수 있는 권한을 가진 사람만이 로그인 할수 있게끔 하려고 하거든요. PC방에 가면 많이 보시잖습니까?
컴퓨터가 부팅되면서 윈도우 로그인화면 말고 로그인 화면이 뜨지 않습니까? 그렇게 할려고 하거든요.

2.델파이 3.0을 사용하고 있는데요. Timage에서 gif 파일이 지원이 안되잖습니까?
gif 파일을 사용할 수 있는 방법은 없을까요?
이 gif 파일을 Bmp로 바꾼다거나..... 방법이 있으시면 알려주십시요.

3.아스키 코드값과 헥사값은 어떻게 다른가요.
명쾌하게 구분이 안가서요.232로 카드리더기와 PC가 통신을 하는데 있어서 아스키 코드값을 헥사값으로 또는 헥사값을 아스키 코드값로 바꿔야 하거든요.
간단한 예제를 들어주시면 정말로 감사하겠습다.

델파이를 배운지 얼마 안되 정말 너무 힘듭니다. 고수님들 정말 조언 부탁드립니다.

  
2  COMMENTS
  • Profile
    ㉯㉰감자 2002.05.10 02:44
    안녕하세요...

    OS를 몰로 사용하는지는 모르겠지만....

    NT 서버급 부터는 CTRL+ALT+DEL을 누른다음 로그인하니깐...

    그부분은 모르겠구요...9x나 NT 프로페셔널(2000프로,xp등포함)에서는

    자동 로그인을 지정 할 수 있습니다. 9x같은 경우에는...

    네트웍 설정쪽에 보시면 클라이언트인가? 설정 근처에...

    로그인 안물어 보고 바로 로그인 하게 할 수 있습니다.

    그렇게 설정한 후 ... 시작프로그램이나 ...

    레지스트리에다 자동으로 님께서 만든 프로그램을 실행하게 해놓으면

    되지 않을까 생각합니다.

    그리고 아스키값이나 헥사값이나 그게 그거입니다.

    같은 숫자입니다..

    일반적으로 아스키값이 65이면 A를 뜻하지만... 헥사값을

    65를 16진수로 표현한것 뿐입니다...

    rs232c에서 데이터가 넘어와도...결국 1바이트씩 넘어오기때문에..

    이 1바이트를 10진수로 표현하느냐, 16진수로 표현하느냐 문제죠..

    지금 질문한 것으로 봐서는 16진수 스트링으로 넘오온다면..
    (A라는 문자를 보내는데 실제로는 $41 (C에선 0x41)로 넘어 오는게 아니라
    '41' 이런형태로 넘어오는 경우)

    이런경에도 간단히..해결 방법이 있습니다.

    const
        S = '41';
    begin
        Label1.Caption := IntToStr(StrToIntDef('$'+S,0));
    end;

    이 예제는 문자 S에 16진수로 표현된 41이라는 문자열이 있다면...

    델파이에선 16진수  표현을 $를 붙여 사용하기 때문에..

    문자열 S앞에다 $를 붙여줍니다.

    그러면 '41'이 '$41'이라는 문자열이 되겠죠...

    이것을 숫자로 변환합니다.

    StrToIntDef( '$'+S, 0 );

    이것은 변환하다가 오류가 나면 0으로 처리하라는 말입니다.

    $4q 이런 16진수는 없으므로 S에 4q같은 문자가 있으면 오류가 나기때문에

    방지하기 위함입니다.

    숫자를 16진수 문자열로 바꾸는 함수는
      ====> intToHex(Value: Integer; Digits: Integer)
        Digits는 몇자리로 만들것인가입니다

    16진수 문자열을 숫자로 바꾸는 방법
      ====> StrToIntDef( '$'+문자열, 오류시지정할 값 );

    이렇게 하시면 됩니다.

    도움이 되었습니까?

    이상 허접 감자였습니다.


  • Profile
    궁금이 2002.05.10 10:16
    감자님 우선 감사의 말씀을 드립니다.
    제 질문에 관심을 가져 주시고 제가 몰랐던 사항들에 대해서 자세히 알려주시어 큰 도움이 되었습니다.
    감자님의 도움을 한번만 더 받고자 합니다.
    제가 232 통신을 하는데 있어서 문제가 있어서요. 넘 모르구요.
    저는 Tcomport을 사용해서 시리얼 통신을 하고 있습니다.
    패킷은 말씀드렸듯이 바이트로 오고 갑니다.
    패킷을 레코드에 담아서 보내고 응답을 string으로 받아서 다시 byte로 바꿀려고 하거든요. 제가 생각하는 것이 옪은가요?
    일단 응답은 오거든요. 그런데 string을 바이트로 어케 바꿔주나여
    도무지 갈피를 잡을수가 없습니다.
    bytes로 오는 것을 Tcomport에서 어떻게 받아야 하는지....
    전체적인 컨셉을 잡아 주시고 예제까지 들어주시면 감사하겠습니다.
    저는 넘 초보라서 고수님의 도움없이는  ㅠ.ㅠ