OSDN Git Service

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