OSDN Git Service

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