Delphi 몇가지 Tip( 시작할때 메인폼 나타나지 않기, 부팅후 한번만 실행하기, Tray아이콘으로 현재 아이콘 가져가기 )

며칠전 아는 사람의 몇가지 질문을 보고 적은 내용입니다.

시작할때 메인폼을 화면에 나타내지 않기.

begin
  Application.Initialize;
  Application.ShowMainForm:=False;  
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

부팅 오직 한번만 프로그램을 실행하기….
도대체 무엇 때문에 이런용도를 쓰는지 알수 없습니다만, 필요하대서 찾아 봤습니다.

procedure TForm1.FormShow(Sender: TObject);
begin
  if GlobalFindAtom('THIS_IS_SOME_OBSCURE_TEXT')=0 then
    GlobalAddAtom('THIS_IS_SOME_OBSCURE_TEXT')
  else
  begin
    ShowMessage('한번만 실행됩니다. 다시 실행하시려면 재부팅후 사용해 주십시요.');
    Close;
  end;
end;

 

현재 프로그램의 아이콘을 Tray Icon으로 가져오기…

uses
  ShellAPI;
...
var
MyIcon: TNOTIFYICONDATA;
....
procedure TForm1.FormCreate(Sender: TObject);
begin
  MyIcon.cbSize:=SizeOf(MyIcon);
  with MyIcon do
  begin
    Wnd:=Form1.Handle;
    uID:=0;
    uFlags:=NIF_ICON+NIF_TIP;
    hIcon:=CopyIcon(Application.Icon.Handle);
  end;
  Shell_NotifyIcon(NIM_ADD, @MyIcon);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Shell_NotifyIcon(NIM_DELETE, @MyIcon);
end;

 

Author: yyjksw