본문 바로가기

Delphi Tip/Windows10

마우스 포인터 좌표의 윈도우 정보얻기 마우스 포인터 좌표의 윈도우 정보얻기 마우스 포인터가 있는 좌표의 윈도우의 핸들, 클래스, 명칭을 보여주는 예제입니다. unit unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private procedure ShowHwndAndClassName(C.. 2024. 3. 1.
시스템 정보 알아보기 시스템 정보 알아보기 CPU, OS, Memory, Hardware, Software의 정보들이 있는 레지스트리 정보입니다 CPU HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\??? 프로세서 ProcessorNameString Identifier Identifier 속도 ~MHz (NT) // CPU속도 측정 function GetCPUMHz: Double; var TimerHi, TimerLo: DWORD; PriorityClass, Priority: Integer; begin PriorityClass := GetPriorityClass( GetCurrentProcess ); Priority := GetThreadPriority( G.. 2024. 2. 27.
시스템 커스(Help) 바꾸기 시스템 커스 바꾸기 Windows.pas에 OCR 에 관련된 상수부분이 선언된곳이 있다 그곳에 OCR_HELP = 32651 이라고 선언해주시고 Windows.pas를 재컴파일 해주시면 시스템 커서를 바꾸실때 용의하다. { Cursor 바꾸기 OCR_NORMAL 일반적인 화살표 OCR_IBEAM 입력창 등에 사용되는 I빔 OCR_WAIT 모래시계 커서 OCR_CROSS 십자모양 커서 OCR_UP 위쪽 화살표 OCR_SIZE 크기조절 커서. 윈 NT에만 있음. OCR_SIZEALL과 동일. OCR_ICON 아이콘 커서. 윈 NT에만 있음. OCR_SIZENWSE NW to SE 크기조절 커서 OCR_SIZENESW NE to SW 크기조절 커서 OCR_SIZEWE 수평 크기 조절 커서 OCR_SIZENS .. 2024. 1. 30.
가상키 코드(Virtual Keys) 가상키 코드(Virtual Keys) OnKeyDown등에서 이용되는 Key값은 VK_* 형태를 지니는 상수로 정의되어 있다. 이 상수들 중 특정 키 값들을 몰라 해메는 경우가 있어 정리해 본다. 자판의 'A'에서 'Z'까지의 키보드는 VK_A부터 VK_Z까지로 구성되고, 자판의 '0'에서 '9'까 지의 값은 VK_0에서 VK_9와 같다. 이 값들은 문자의 ASCII값과 동일하다. 그 외 나머지 값은 아래와 같다. 이중 VK_Copy등 이용되지 않는 키 값(즉, 키보드로 누 를 수 없는 값)도 있다. 상수의 이름이 그대로 자판의 이름을 나타내므로 별도의 설명은 붙이지 않았다. VK_LButton = $01; VK_RButton = $02; VK_Cancel = $03; VK_MButton = $04; V.. 2023. 7. 11.
SendMessage 함수를 활용한 윈도우 메시지 전송 방법 델파이에서 SendMessage 함수를 활용한 윈도우 메시지 전송 방법 SendMessage 함수는 다른 윈도우로 메시지를 전송하여 효과적인 통신을 가능하게 해줍니다. SendMessage SendMessage 함수는 지정된 윈도우로 메시지를 보내는 역할을 합니다. 이 함수는 윈도우의 핸들, 전송할 메시지, 메시지 매개변수 및 메시지 데이터를 인자로 받습니다. 메시지를 보내면 수신측 윈도우의 메시지 처리기(Window Procedure)가 호출되어 해당 메시지를 처리합니다. [델파이에서 SendMessage 함수 사용하기] 델파이에서는 WinAPI를 사용하여 SendMessage 함수를 호출할 수 있습니다. 다음은 SendMessage 함수를 활용하여 다른 윈도우로 메시지를 보내는 예제입니다 const .. 2023. 6. 16.
윈도우즈 GUI 기본 폰트정보 구하기 윈도우즈 GUI 기본 폰트정보 구하기 // 다국어 프로그램 만들때 사용해 보세요 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type TCharSetRec = packed record Name: String; ID: Integer end; con.. 2023. 6. 7.
윈도우버전 확인하기 윈도우버전 확인하기 var OSVer : OSVERSIONINFOEX; begin OSVer.dwOSVersionInfoSize := SizeOf(OSVERSIONINFOEX); GetVersionEx(OSVer); ShowMessage(IntToStr(OSVer.dwMajorVersion) + '.' + IntToStr(OSVer.dwMinorVersion)); end; 버전 리스트 Windows 11 10.0* Windows 10 10.0* Windows Server 2022 10.0* Windows Server 2019 10.0* Windows Server 2016 10.0* Windows 8.1 6.3* Windows Server 2012 R2 6.3* Windows 8 6.2 Windows Se.. 2022. 2. 3.
델파이 윈도우 메세지 받는 방법 델파이 윈도우 메세지 받는 방법 - 보내는 통신규약은 아래와 같다고 가정. SendMessage(FindWindow(nil, 'frmDebug'), WM_USER+123, 0, lParam(LongInt(메세지))); 혹은 PostMessage 1. TApplicationEvents 이용 2. 폼에디터에 TApplicationEvents 를 하나 박아넣음 3. 박아넣은 TApplicationEvents 의 OnMessage 함수를 만든다 아래와 같은 모양으로. procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if Msg.message=WM_USER+123 then begin Memo1.Lines.. 2021. 8. 11.
델파이 WM_USER 메시지 델파이 WM_USER 메시지 윈도우 시스템은, 메시지구동 시스템이죠. 모든 이벤트는 메세지의 발생에 의해서 처리됩니다. 리스트박스 윈도우, 콤보박스윈도우등 모든 이런 각각의 윈도우들은 내부적 메시지처리에의해 원하는 동작을 하게 되는데, 이런 메시지외에 사용자 정의 메시지가 필요할때가 많죠. 예를들어, 콤보에 값이 변경될때, 부모에게 뿐 아니라, 다른곳에도 알려줄 필요가 있거나 할때요. ​ 그러면, 메시지의 값을 아무렇게나 정의해서 사용할수 없죠. #define WM_MY_TEST 100 처럼, 이런식으로 선언한다면, 이미 100이라는 값은 시스템이 내부적으로 예약해서 사용하는 메시지 상수일 수가 있습니다. 그래서, 사용자가 사용해도 되는 구역을 만들어뒀는데 그게 0x400 값부터 , 0x7FFF 까지 입.. 2021. 8. 10.
델파이 윈도우 폼에서 특정 부분 투명 델파이 윈도우 폼에서 특정 부분 투명 특정 폼의 내부가 투명하게 보이도록 하는 기능을 보여줍니다. 이 기능은 폼의 TransparencyKey 속성을 이용해 구현합니다. 간단한 캡처 프로그램을 만들다가 찾은 기능을 소개해볼까 합니다. 폼 안의 영역을 투명하게 해서 아래에 있는 UI가 보이도록 하는 기능입니다. 폼에 구멍을 뚫자 다음과 같은 작업을 해 준다 : 1. 폼에 Panel 개체를 배치하고, 배경색을 붉은 색으로 준다. (BackColor 속성을 Red로 설정한다.) 2. 폼의 TransparencyKey 속성을 Red로 준다. 투명화된 부분을 클릭하면, 클릭에 대한 이벤트로 현재 폼의 아래에 있는 윈도우가 받게 된다는 것을 알 수 있다. 2021. 8. 9.