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