OSDN Git Service

a4a7b7873e39a64cc3128d84d4adc2ac47eb5a53
[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   IndividualAbon in 'IndividualAbon.pas' {IndividualAbonForm},
49   Trip in 'Trip.pas',
50   GikoXMLDoc in 'GikoXMLDoc.pas';
51
52 {$R *.RES}
53 {$R gikoResource.res}
54
55 var
56         hMutex: THandle;
57         Wnd{, AppWnd}: HWnd;
58         i: Integer;
59         CDS: TCopyDataStruct;
60 const
61         MutexString: string = 'gikoNaviInstance';
62 begin
63         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
64         if hMutex <> 0 then begin
65                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
66                 Wnd := FindWindow('TGikoForm', nil);
67                 if Wnd <> 0 then begin
68                         //\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³
69                         SetForegroundWindow(Wnd);
70                         if IsIconic(Wnd) then
71                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
72 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
73 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
74 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
75
76                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
77                         for i := 1 to ParamCount do     begin
78                                 CDS.dwData := 0;
79                                 CDS.cbData := Length(ParamStr(i)) + 1;
80                                 GetMem(CDS.lpData, CDS.cbData);
81                                 try
82                                         StrPCopy(CDS.lpData, ParamStr(i));
83                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
84                                 finally
85                                         FreeMem(CDS.lpData);
86                                 end;
87                         end;
88                 end;
89
90                 CloseHandle(hMutex);
91         end else begin
92                 //\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
93                 hMutex := CreateMutex(nil, False, PChar(MutexString));
94                 Application.Initialize;
95                 Application.Title := '\83M\83R\83i\83r';
96                 Application.ShowMainForm := False;
97                 Application.CreateForm(TMainWindow, MainWindow);
98   Application.CreateForm(TFavoriteDM, FavoriteDM);
99   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
100   Application.CreateForm(TGikoForm, GikoForm);
101   Application.Run;
102                 ReleaseMutex(hMutex);
103         end;
104 end.
105