OSDN Git Service

AbonUnitをプロジェクトに追加
[gikonavigoeson/gikonavi.git] / gikoNavi.dpr
1 program gikoNavi;
2
3 {%ToDo 'gikoNavi.todo'}
4
5 uses
6   Windows,
7   SysUtils,
8   Forms,
9   Messages,
10   MainForm in 'MainForm.pas' {MainWindow},
11   Giko in 'Giko.pas' {GikoForm},
12   Splash in 'Splash.pas' {SplashWindow},
13   About in 'About.pas' {AboutDialog},
14   Option in 'Option.pas' {OptionDialog},
15   Editor in 'Editor.pas' {EditorForm},
16   Round in 'Round.pas' {RoundDialog},
17   ListSelect in 'ListSelect.pas' {ListSelectDialog},
18   Search in 'Search.pas' {SearchDialog},
19   GikoSystem in 'GikoSystem.pas',
20   Setting in 'Setting.pas',
21   BoardGroup in 'BoardGroup.pas',
22   SaveFile in 'SaveFile.pas',
23   Sort in 'Sort.pas',
24   ThreadControl in 'ThreadControl.pas',
25   ItemDownload in 'ItemDownload.pas',
26   RoundData in 'RoundData.pas',
27   RoundName in 'RoundName.pas' {RoundNameDialog},
28   NewBoard in 'NewBoard.pas' {NewBoardDialog},
29   Dolib in 'Dolib.pas',
30   UBase64 in 'Encrypt\UBase64.pas',
31   UCryptAuto in 'Encrypt\UCryptAuto.pas',
32   KeySetting in 'KeySetting.pas' {KeySettingForm},
33   FavoriteAdd in 'FavoriteAdd.pas' {FavoriteAddDialog},
34   NewFavoriteFolder in 'NewFavoriteFolder.pas' {NewFavoriteFolderDialog},
35   FavoriteArrange in 'FavoriteArrange.pas' {FavoriteArrangeDialog},
36   Favorite in 'Favorite.pas' {FavoriteDM: TDataModule},
37   AddressHistory in 'AddressHistory.pas' {AddressHistoryDM: TDataModule},
38   Preview in 'Preview.pas',
39   HTMLDocumentEvent in 'HTMLDocumentEvent.pas',
40   Kotehan in 'Kotehan.pas' {KotehanDialog},
41   MonaUtils in 'MonaUtils.pas',
42   HintWindow in 'HintWindow.pas',
43   GikoUtil in 'GikoUtil.pas',
44   ToolBarSetting in 'ToolBarSetting.pas' {ToolBarSettingDialog},
45   ToolBarUtil in 'ToolBarUtil.pas',
46   YofUtils in 'YofUtils.pas',
47   AbonUnit in 'AbonUnit.pas';
48
49 {$R *.RES}
50 {$R gikoResource.res}
51
52 var
53         hMutex: THandle;
54         Wnd{, AppWnd}: HWnd;
55         i: Integer;
56         CDS: TCopyDataStruct;
57 const
58         MutexString: string = 'gikoNaviInstance';
59 begin
60         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
61         if hMutex <> 0 then begin
62                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
63                 Wnd := FindWindow('TGikoForm', nil);
64                 if Wnd <> 0 then begin
65                         //\8aù\82É\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82Ì\83A\83N\83e\83B\83u\89»\81\95\83A\83C\83R\83\93\89»\82³\82ê\82Ä\82½\82ç\95\9c\8c³
66                         SetForegroundWindow(Wnd);
67                         if IsIconic(Wnd) then
68                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
69 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
70 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
71 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
72
73                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
74                         for i := 1 to ParamCount do     begin
75                                 CDS.dwData := 0;
76                                 CDS.cbData := Length(ParamStr(i)) + 1;
77                                 GetMem(CDS.lpData, CDS.cbData);
78                                 try
79                                         StrPCopy(CDS.lpData, ParamStr(i));
80                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
81                                 finally
82                                         FreeMem(CDS.lpData);
83                                 end;
84                         end;
85                 end;
86                 CloseHandle(hMutex);
87         end else begin
88                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\82Í\83A\83v\83\8a\83P\81[\83V\83\87\83\93\8bN\93®\91±\8ds
89                 hMutex := CreateMutex(nil, False, PChar(MutexString));
90                 Application.Initialize;
91                 Application.Title := '\83M\83R\83i\83r';
92                 Application.ShowMainForm := False;
93                 Application.CreateForm(TMainWindow, MainWindow);
94   Application.CreateForm(TFavoriteDM, FavoriteDM);
95   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
96   Application.CreateForm(TGikoForm, GikoForm);
97   Application.Run;
98                 ReleaseMutex(hMutex);
99         end;
100 end.
101