본문 바로가기

Delphi Tip/인터넷24

웹 브라우져 URL주소 실행 ​ 웹 브라우져 URL주소 실행 ​ ​ 첫번째 방법 ​ Windows API 함수 중 하나인 ShellExecute 함수를 이용합니다. ​ 예제 ​ uses ShellAPI; ​ procedure OpenWebPage(const URL: string); begin ShellExecute(0, 'open', PChar(URL), nil, nil, SW_SHOWNORMAL); end; ​ procedure TForm1.Button1Click(Sender: TObject); begin OpenWebPage('사이트 주소') end; ​ ​ ​ ​ 두번째 방법 ​ 제가 예전에 프로그램에서 특정 url 로 이동할때 shellexecute 를 사용했을텐데요. 더 간단한 방법이 있습니다. 볼랜드 사이트서 본겁니다. un.. 2023. 7. 6.
델파이 완벽한 인터넷 체크 uses Winapi.WinInet, IdIcmpClient,IdGlobal; function Ping: Boolean; var IcmpClient: TIdIcmpClient; begin Button1.Enabled := False; Result:= False; if ftCheckInternetPing then begin IcmpClient:= TIdIcmpClient.Create(Nil); IcmpClient.ReceiveTimeout:= 2000; // 1~3초 사이면 충분 합니다. IcmpClient.Host:= '8.8.8.8'; // 구글 아이피로 설정 해뒀고 다른데 쓰셔도 됩니다. IcmpClient.PacketSize:= 24; try IcmpClient.Ping; if IcmpClient... 2022. 2. 25.
웹브라우저에 HTML 코드 밀어넣기 웹브라우저에 HTML 코드 밀어넣기 uses Windows, SysUtils, Classes, SHDocVw, ActiveX; ... ... procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: String); var sList: TStringList; mStream: TMemoryStream; begin // 1. 웹브라우저에 빈페이지 로딩 WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState 2021. 12. 15.
델파이 JSON 생성 (서브아이템포함) 델파이 JSON 생성 (서브아이템포함) user Json 추가 var JTopObj, JObj : TJSONObject; JArr : TJSONArray; JPair : TJSONPair; i : integer; begin JTopObj := TJSONObject.Create; JArr := TJSONArray.Create; for i := 1 to 2 do begin JObj := TJSONObject.Create; // Item block JObj.AddPair('array_index', TJSONNumber.Create( i ) ); // Array index (option) JObj.AddPair('itemDatetime', '20200708' ); JObj.AddPair('itemTaxAmoun.. 2021. 12. 14.
idHTTP JSON Post 방법 idHTTP JSON Post 방법 토큰 키값이 존재 시 다음과 같이 처리한다. procedure TForm1.Button6Click(Sender: TObject); var URL, Retorno: String; JsonStreamRetorno, JsonStreamEnvio: TStringStream; begin URL := 'https://0000000000000t'; //UTF-8로 받는다 JsonStreamEnvio := TStringStream.Create(Memo2.Text,TEncoding.UTF8); JsonStreamRetorno := TStringStream.Create(''); // Init request: try idHttp.Request.Clear; idHttp.IOHandler :.. 2021. 12. 13.
IdHTTP App ID, Key 존재시 IdHTTP App ID, Key 존재시 user System.JSON var s : String; JSON : TJSONObject; i : integer; rec_Data : TStringStream; Stream: TBytesStream; begin Stream := TBytesStream.Create; IdHTTP1.Request.CustomHeaders.Add('x-pharmsearch-app: 000000'); IdHTTP1.Request.CustomHeaders.Add('x-pharmsearch-key: 0000000'); IdHTTP1.Request.ContentType := 'application/json; charset=utf-8'; IdHTTP1.Request.ContentEncodi.. 2021. 12. 10.
웹브라우저에 HTML 코드 밀어넣기 웹브라우저에 HTML 코드 밀어넣기 uses Windows, SysUtils, Classes, SHDocVw, ActiveX; ... ... procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: String); var sList: TStringList; mStream: TMemoryStream; begin // 1. 웹브라우저에 빈페이지 로딩 WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState 2021. 12. 8.
현재 떠 있는 모든 IE 찾기 및 닫기 현재 떠 있는 모든 IE 찾기 및 닫기 모든 인터넷 익스플로러 핸들을 구해서 WM_CLOSE 메시지를 보낸다. function CloseAllInternetExplorer: Boolean; var WindowHandle: HWND; ClassName: array[0..260] of char; begin WindowHandle := GetWindow(GetDesktopWindow(), GW_CHILD); while WindowHandle > 0 do begin FillChar(ClassName, sizeof(ClassName), #0); GetClassName(WindowHandle, ClassName, sizeof(ClassName)); if SameText(ClassName, 'IEFrame') the.. 2021. 12. 7.
델파이에서 원하는 주소로 크롬실행 델파이에서 원하는 주소로 크롬실행 var URL: string; begin URL:= 'http://www.daum.co.kr/'; // ShellExecute(self.WindowHandle,'open', PChar(URL), nil, nil, SW_SHOW); //default browser ShellExecute(self.WindowHandle,'open','chrome.exe', PChar(URL), nil, SW_SHOW); 2021. 12. 6.
Delphi에서 Chrome Browser 사용하기 Delphi에서 Chrome Browser 사용하기 델파이 기본 웹브라우저 컴포넌트는 TWebBrowser인데. 이놈이 Internet Explorer를 맵핑해놓은거다. 기존에는 델파이로 응용프로그램을 구현할 때, 내부에 웹뷰가 필요하면 이 녀석을 사용했는데.. 아무래도 표준도 잘 안지키고, 버전별로 표준 구현의 차이가 심하여.. Chrome 브라우저를 웹뷰로 사용해보기로 함. 검색을 해보니. Delphi Chromium Embedded (DCEF) 라는 놈이 있는데, 이게 DCEF 1, DCEF 3 이렇게 나눠져있더라는... DCEF 1를 진행하다 개발이 중단된 거 같고, 그걸 포크해서 DCEF 3을 다시 개발한 거 같은데.. 잘은 모르겠고... 소스를 대략 보니 DCEF 3이 완성도가 더 있는 듯.... 2021. 12. 5.
IE 웹브라우저(Webbrowser) 화면을 이미지로 저장하기 IE 웹브라우저(Webbrowser) 화면을 이미지로 저장하기 uses MSHTML_TLB, JPEG, ActiveX, ComObj; procedure generateJPEGfromBrowser(browser: iWebBrowser2; jpegFQFilename: string; srcHeight: Integer; srcWidth: Integer; tarHeight: Integer; tarWidth: Integer); var sourceDrawRect: TRect; targetDrawRect: TRect; sourceBitmap: TBitmap; targetBitmap: TBitmap; jpeg: TJPEGImage; viewObject: IViewObject; begin sourceBitmap := TB.. 2021. 12. 2.
Internet explorer 띄우기 Internet explorer 띄우기 usesComObj; procedureTForm1.Button1Click(Sender: TObject); var IE: OleVariant; begin try IE:=CreateOleObject('Internetexplorer.Application'); // 위치, 크기 IE.Left:=0; IE.Top :=0; IE.Width :=500; IE.Height:=400; // IE 윈도우 상태 IE.Toolbar :=False; IE.Statusbar:=False; IE.Menubar :=False; // 띄우기 IE.Visible:=True; SetForegroundWindow(IE.HWND); IE.Navigate('인터넷주소URL'); finally IE:=Un.. 2021. 12. 1.
Capture element click in Internet Explorer Capture element click in Internet Explorer I’m trying to write an automatic IE form filler for myself. I’m able to get the URL (from IE not TWebBrowser) and if it’s “managed” by my app fill in the fields and submit it. I’d like to ask the user if they want to add a non-managed URL to the managed list when the submit button is clicked when a password field is found on the page. It seems to me tha.. 2021. 11. 30.
delphi로 IE 컨트롤 delphi로 IE 컨트롤 1. 기본적인 사항 모든 웹브라우저 컴퍼넌트는 IWebBrowser2 라는 인터페이스를 사용합니다. 델파이로만들던 VC로 만들던 VB로 만들던지 암튼간에 무조건 저 인터페이스를 사용합니다. 델파이의 TWebBrowser라는 컴퍼넌트 역시 MS의 웹브라우저 컴포넌트를 포장해서 쓰는관계로 IWebBrowser2 인터페이스를 가지고 있습니다. 바로 OleObject 퍼로퍼티가 그 놈입니다. IWebBrowser2 외에도 관련된 인터페이스들이 있는데, 계보를 따져보면 아래와 같습니다. IUnknown | IDispatch | IWebBrowser | IWebBrowserApp | IWebBrowser2 이 인터페이스들은 델파이의 컴포넌트 계보와 개념이 비슷합니다. 우리는 IWebBro.. 2021. 11. 29.
IE 현재 열려있는 주소값 읽어오기 IE 현재 열려있는 주소값 읽어오기 IE 현재 열려있는 주소값 읽어오기 { Code 1 **************************************} uses ddeman; function GetURL(Service: string): string; var ClDDE: TDDEClientConv; temp: PChar; begin Result := ''; //create a new DDE Client object ClDDE := TDDEClientConv.Create(nil); with ClDDE do begin SetLink(Service, 'WWW_GetWindowInfo'); temp := RequestData('0xFFFFFFFF'); Result := StrPas(temp); StrDis.. 2021. 11. 25.
Indy9 파일전송 예제 Indy9 파일전송 예제 Indy 9 버전으로 파일만 전송하는 간단한 루틴을 작성해보았습니다. 테스트된 예제입니다. 참고하시고, 즐거운 프로그래밍 하세요.. P.S : Indy10 으로 파일전송은 이 게시판에서 'Indy10' 으로 검색해보시면 찾으실 수 있습니다. unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; IdTCPClient1:.. 2021. 11. 24.
ActiveX Form기초부터 배포까지 ActiveX Form기초부터 배포 개발환경 : Windows XP pro, Delphi 6.0, IIS 5.2 - 새프로젝트를 시작하자. 델파이를 시작하고 메뉴->File->New->Other을 선택한다. New Items창에서 ActiveX텝으로 이동한다. Active Form을 선택하고 OK버튼을 클릭한다. - Active Form Wizard폼이 나타난다. New ActiveX Name : ActXRun을 입력하면 아래는 알아서 변경된다. OK버튼을 클릭한다. 경고메시지가 나오면 OK버튼을 클릭한다. - 이제부터가 시작이다. 일단 저장을 한다. 적당한 폴더를 선택(예제작성시는 c:\ActXRun폴더에 저장했다)하여 저장한다. - 컴포넌트 추가 TButton(예제작성시 이름은 기본값을 사용한다)을 .. 2021. 11. 23.
idhttp를 이용한 사이트 이미지 업로드 idhttp를 이용한 사이트 이미지 업로드 function IdHttpImgPost(URL:String;FormFieldName,FormFieldValue:array of STring; FormFieldCount : integer;FieldName,FileName,imgType:String): String; //user IdMultipartFormData; function GetHostNameFromURL(URL: String): String; var PosSlash: Integer; begin Result:=Trim(URL); Result:=MidStr(Result, Pos('://', Result)+3, Length(Result)); PosSlash:=Pos('/', Result); if PosSla.. 2021. 11. 22.
indy idhttp 이용해서 파일 업로드 indy idhttp 이용해서 파일 업로드 IdMultipartFormData 을 uses절에 추가할것 ============================================== uses IdMultipartFormData; procedure TForm1.Button1Click(Sender: TObject); var UploadFile: TIdMultiPartFormDataStream; Outputs: TStringStream; begin if OpenDialog1.Execute then begin UploadFile := TIdMultiPartFormDataStream.Create; Outputs := TStringStream.Create(''); try IdHTTP.Request.Conten.. 2021. 11. 19.
웹페이지 FillInForm 웹페이지 FillInForm procedure FillInForm(WB: ShDocVW.TWebbrowser; IDoc1: IHTMLDocument2; Document: Variant; OptionSelectedName: string); var IEFields: array[1..2] of string; var IEFieldsCounter: Integer; i,j,m: Integer; ovElements: OleVariant; begin IEFields[1] := 'file_list'; if Pos('frmBoard', Document.Title) 0 then while WB.ReadyState READYSTATE_COMPLETE do Application.ProcessMessages; for m := 0.. 2021. 11. 18.