반응형 전체 글5190 [IT/유래] 붙이는 메모지의 탄생 1970년대 3M사에서 근무하던 스펜서 실버라는 연구원이 있었다. 그는 강력한 접착제를 만들기 위해 밤낮으로 실험에 몰두했다. 그러던 어느날 원료를 잘못 배합했는지, 너무나도 약한 접착제가 만들어졌다. 손으로 떼면 떨어지고, 또 붙었다가 다시 떼어지기를 반복하는 것이었다. 강력한 접착제를 만들어야 했던 그의 입장에서는 쓰디쓴 실패를 맛본 셈이었다. 한 쪽 구석에 박혀있던 `잘 떼어지는` 접착제가 빛을 본 건 테이프 사업부에서 근무하던 직원인 아트 프라이 덕분이었다. 교회 성가대에서 노래를 부르던 그는 찬송가 페이지에 종이를 끼워두곤 했는데, 매번 종이가 빠져나가 그걸 찾느라 허둥대기 일쑤였다. 그러다 생각한 것이 바로 접착제. 그는 스펜서 실버가 만든 접착제를 종이의 한쪽 끝에 바르고 찬송가에 붙이기 시.. 2011. 8. 1. [개발/MFC] MFC가 제공하는 List Class - CStringList ■ MFC가 제공하는 List Class - CStringList ※ MFC 가 제공하는 List Class - 양방향 포인터를 가지는 이중 연결 리스트(Doubly-Linked List) - 리스트의 처음 부분을 가리키는 포인터(Head) 와 끝 부분을 가리키는 포인터(Tail)가 있다. 따라서 어느 방향으로든 순환하는 것이 가능하다. MFC가 제공하는 List Class ① 템플릿 클래스 (Template Class) ② 비 템플릿 클래스 (Nontemplate Class) ① 템플릿 클래스 (Template Class) - afxtempl.h 헤더파일 필요. - 원하는 종류의 데이터 타입을 프로그래머가 결정 - 비 템플릿 클래스가 제공하는 모든 기능을 구현할 수 있기 때문에 템플릿 클래스 사용을 권.. 2011. 8. 1. [개발/MFC] 프로세스가 살아있는지 검사, 프로세스 죽이기 프로세스가 살아있는지 검사, 프로세스 죽이기 프로세스가 살아있는지 검사 // uses 에 TlHelp32 추가 functionIsRunningProcess(constProcName: String) : Boolean; var Process32: TProcessEntry32; SHandle: THandle; Next: Boolean; begin Result:=False; Process32.dwSize:=SizeOf(TProcessEntry32); SHandle :=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0); // 프로세스 리스트를 돌면서 매개변수로 받은 이름과 같은 프로세스가 있을 경우 True를 반환하고 루프종료 ifProcess32First(SHandle, Pro.. 2011. 8. 1. [개발/MFC] 동적으로 COM Server 등록하기 (DLL, OCX) [개발/MFC] 동적으로 COM Server 등록하기 (DLL, OCX) DLL 등을 등록하려면 regsvr32 DLL이름 으로 등록한다. (등록해제는 regsvr32 /u DLL이름) 동적으로 등록하는 방법이 있었다. RegisterComServer(DLL이름); ex) 프로젝트 파일(.dpr)에서 한다. programRegistComServer; uses Forms, ComObj, Main in'Main.pas'{Form1} {$R *.res} constDLL_FILE='xx.dll'; begin Application.Initialize; ifFileExists(DLL_FILE) then begin RegisterComServer(DLL_FILE); // DLL 등록 end else begin App.. 2011. 8. 1. [개발/MFC] 바탕화면 바꾸기 procedure 바탕화면_바꾸기(이미지파일: String; 바둑판형식: Boolean); const 바탕화면_복구 = 29699; var Reg: TRegIniFile; 바탕화면_핸들: HWND; begin // 레지스트리에 바탕화면에 대한 항목 세팅 Reg := TRegIniFile.Create('Control Panel'); Reg.WriteString('desktop', 'Wallpaper', 이미지파일); if바둑판형식 thenReg.WriteString('desktop', 'TileWallpaper', '1') else Reg.WriteString('desktop', 'TileWallpaper', '0'); // 바탕화면 변경 메세지 보냄 바탕화면_핸들:=FindWindow('ExploreWC.. 2011. 8. 1. [개발/delphi] 절대 죽지 않는 프로그램 만들기 dpr 프로젝트 파일을 아래와 같은 형태로 만들면 된다. programProject1; uses Forms, Windows, Messages, Unit1 in 'Unit1.pas'{Form1}; {$R *.res} var Msg: tagMSG; 종료금지: Boolean; const WM_MYQUIT = WM_USER+2533; begin 종료금지:=True; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; while종료금지 do begin whilePeekMessage(Msg, 0, 0, 0, PM_REMOVE) do begin ifMSG.message = WM_MYQUIT then begin 종료금지:=Fal.. 2011. 8. 1. [개발/MFC] regsvr32.exe 를 사용하지 않고 ActiveX DLL을 레지스트리에 등록하기 [개발/MFC] regsvr32.exe 를 사용하지 않고 ActiveX DLL을 레지스트리에 등록하기 activeX DLL 을 regsvr32를 사용하지 않고 등록하는 방법이 델파이로 된게 있어서 가져왔다. 직접 만들어서 해볼려고 하니 시간이 부족하다... Unit Unit1; Interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = Class(TForm) btRegistryDll: TButton; btUnRegistryDll: TButton; Procedure btRegistryDllClick(Sender: TObject); Procedure btUnRegis.. 2011. 8. 1. [개발/delphi] Vista에서 프로그램 권한상승하기 여기 없어서 문서와 소스 올립니다. Windows Vista에서 레지스트리나 RegisterWindowMessage...뭐 좀 건드는거 하면 조용히 실행 안해서 프로그램 오류인가 비스타와 궁합 등등 속썩이는 경우. 관리자 권한으로 실행하여 User Account Control (UAC)을 띄워하라고 하여 했더니 되고요. 설치시하거나 델2007이상하면 되다는데 그럴 여건은 안되고... 첨부 문서대로 res파일을 만든후, 빌드하면 실행파일의 권한이 상승되어 비스타에서 잘 됩니다. 여기저기 찾아봐도 어려운 말이 많아서요, 일단 간단하게 되긴되는데 맞는 방법인지는.... (첨부파일의 WindowsVista.rc, WindowsVista.manifest 그대로 사용하시려면 1,2 생략 해도 됩니다) 1. 일단 메.. 2011. 8. 1. [개발/Delphi] IE 띄우기, IE 실행하기 단 아래와 같이 하면 IE가 뜬다. 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('http://www.naver.com'); fina.. 2011. 8. 1. 이전 1 ··· 467 468 469 470 471 472 473 ··· 577 다음 반응형