안녕하세요 델파이 초초보입니다.
PC 보안 프로그램을 만들고 있는데 너무 힘이 드네요 ㅠ.ㅠ
고수님들의 도움을 받고자 글을 올리니 부디 왜면하지 마시고 답을 주셨으면 합니다.
1.우선 RF카드리더기가 PC와 232로 물려있습니다. 컴퓨터가 부팅되면서 윈도우 로그인화면이 뜨는데 이 로그인 화면을 나오지 않게 할려면 어떤 API 함수를 사용하면 되는지요? 이 로그인화면을 없애고 자동프로그램 실행으로 컴퓨터를 사용할수 있는 권한을 가진 사람만이 로그인 할수 있게끔 하려고 하거든요. PC방에 가면 많이 보시잖습니까?
컴퓨터가 부팅되면서 윈도우 로그인화면 말고 로그인 화면이 뜨지 않습니까? 그렇게 할려고 하거든요.
2.델파이 3.0을 사용하고 있는데요. Timage에서 gif 파일이 지원이 안되잖습니까?
gif 파일을 사용할 수 있는 방법은 없을까요?
이 gif 파일을 Bmp로 바꾼다거나..... 방법이 있으시면 알려주십시요.
3.아스키 코드값과 헥사값은 어떻게 다른가요.
명쾌하게 구분이 안가서요.232로 카드리더기와 PC가 통신을 하는데 있어서 아스키 코드값을 헥사값으로 또는 헥사값을 아스키 코드값로 바꿔야 하거든요.
간단한 예제를 들어주시면 정말로 감사하겠습다.
델파이를 배운지 얼마 안되 정말 너무 힘듭니다. 고수님들 정말 조언 부탁드립니다.
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( '$'+문자열, 오류시지정할 값 );
이렇게 하시면 됩니다.
도움이 되었습니까?
이상 허접 감자였습니다.