OSDN Git Service

バタ67
[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   Sort in 'Sort.pas',
23   ThreadControl in 'ThreadControl.pas',
24   ItemDownload in 'ItemDownload.pas',
25   RoundData in 'RoundData.pas',
26   RoundName in 'RoundName.pas' {RoundNameDialog},
27   NewBoard in 'NewBoard.pas' {NewBoardDialog},
28   Dolib in 'Dolib.pas',
29   UBase64 in 'Encrypt\UBase64.pas',
30   UCryptAuto in 'Encrypt\UCryptAuto.pas',
31   KeySetting in 'KeySetting.pas' {KeySettingForm},
32   FavoriteAdd in 'FavoriteAdd.pas' {FavoriteAddDialog},
33   NewFavoriteFolder in 'NewFavoriteFolder.pas' {NewFavoriteFolderDialog},
34   FavoriteArrange in 'FavoriteArrange.pas' {FavoriteArrangeDialog},
35   Favorite in 'Favorite.pas' {FavoriteDM: TDataModule},
36   AddressHistory in 'AddressHistory.pas' {AddressHistoryDM: TDataModule},
37   Preview in 'Preview.pas',
38   HTMLDocumentEvent in 'HTMLDocumentEvent.pas',
39   Kotehan in 'Kotehan.pas' {KotehanDialog},
40   HintWindow in 'HintWindow.pas',
41   GikoUtil in 'GikoUtil.pas',
42   ToolBarSetting in 'ToolBarSetting.pas' {ToolBarSettingDialog},
43   ToolBarUtil in 'ToolBarUtil.pas',
44   YofUtils in 'YofUtils.pas',
45   AbonUnit in 'AbonUnit.pas',
46   IndividualAbon in 'IndividualAbon.pas' {IndividualAbonForm},
47   Trip in 'Trip.pas',
48   GikoXMLDoc in 'GikoXMLDoc.pas',
49   ExternalBoardManager in 'ExternalBoardManager.pas',
50   ExternalThreadItem in 'ExternalThreadItem.pas',
51   ExternalBoardItem in 'ExternalBoardItem.pas',
52   ExternalBoardPlugInMain in 'ExternalBoardPlugInMain.pas',
53   ExternalFilePath in 'ExternalFilePath.pas',
54   MojuUtils in 'MojuUtils.pas',
55   gzip in 'gzip_delphi2\gzip.pas',
56   zlib in 'gzip_delphi2\zlib.pas',
57   bmRegExp in 'bmRegExp\bmregexp.pas',
58   GikoCoolBar in 'Component\GikoCoolBar.pas',
59   GikoListView in 'Component\GikoListView.pas',
60   GikoPanel in 'Component\GikoPanel.pas',
61   KuroutSetting in 'KuroutSetting.pas' {KuroutOption},
62   GikoDB in 'GikoDB.pas',
63   GestureModel in 'GestureModel.pas',
64   Gesture in 'Gesture.pas',
65   GikoBayesian in 'GikoBayesian.pas',
66   Y_TextConverter in 'res\ExternalBoardPlugIn\Y_TextConverter.pas',
67   HTMLCreate in 'HTMLCreate.pas',
68   ListViewUtils in 'ListViewUtils.pas',
69   GikoDataModule in 'GikoDataModule.pas' {GikoDM: TDataModule},
70   BrowserRecord in 'BrowserRecord.pas',
71   GikoMessage in 'GikoMessage.pas',
72   InputAssist in 'InputAssist.pas' {InputAssistForm},
73   InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule},
74   DefaultFileManager in 'DefaultFileManager.pas',
75   MoveHistoryItem in 'MoveHistoryItem.pas',
76   SambaTimer in 'SambaTimer.pas',
77   HistoryList in 'HistoryList.pas',
78   ReplaceDataModule in 'ReplaceDataModule.pas' {ReplaceDM: TDataModule},
79   ResPopupBrowser in 'ResPopupBrowser.pas',
80   SkinFiles in 'SkinFiles.pas',
81   NewBoardURL in 'NewBoardURL.pas' {NewBoardURLForm},
82   ExtPreviewDatamodule in 'ExtPreviewDatamodule.pas' {ExtPreviewDM: TDataModule},
83   UpdateCheck in 'UpdateCheck.pas' {UpdateCheckForm},
84   SHA1Unit in 'SHA1Unit.pas',
85   PopupMenuUtil in 'PopupMenuUtil.pas',
86   PopupMenuSetting in 'PopupMenuSetting.pas' {PopupMenuSettingDialog},
87   Belib in 'Belib.pas',
88   WideMemo in 'WideMemo.pas',
89   ThreadSearch in 'ThreadSearch.pas' {ThreadSrch},
90   uLkJSON in 'lkJSON\uLkJSON.pas',
91   ThreadNGEdt in 'ThreadNGEdt.pas' {ThreadNGEdit};
92
93 {$R *.RES}
94 {$R gikoResource.res}
95
96 var
97         hMutex: THandle;
98         Wnd{, AppWnd}: HWnd;
99         i: Integer;
100         CDS: TCopyDataStruct;
101 const
102         MutexString: string = 'gikoNaviInstance';
103 begin
104         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
105         if hMutex <> 0 then begin
106                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
107                 Wnd := FindWindow('TGikoForm', nil);
108                 if Wnd <> 0 then begin
109                         //\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³
110                         try
111                                 SetForegroundWindow(Wnd);
112                         except
113                 //\8f\89\8aú\89»\82ª\8fI\82í\82Á\82Ä\82¢\82È\82¢\82Æ\83t\83H\83A\83O\83\89\83E\83\93\83h\82É\88Ú\82¹\82¸\82É\97á\8aO\94­\90
114                         end;
115                         if IsIconic(Wnd) then
116                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
117 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
118 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
119 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
120
121                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
122                         for i := 1 to ParamCount do     begin
123                                 CDS.dwData := 0;
124                                 CDS.cbData := Length(ParamStr(i)) + 1;
125                                 GetMem(CDS.lpData, CDS.cbData);
126                                 try
127                                         StrPCopy(CDS.lpData, ParamStr(i));
128                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
129                                 finally
130                                         FreeMem(CDS.lpData);
131                                 end;
132                         end;
133                 end;
134
135                 CloseHandle(hMutex);
136         end else begin
137                 //\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
138                 hMutex := CreateMutex(nil, False, PChar(MutexString));
139                 Application.Initialize;
140                 Application.Title := '\83M\83R\83i\83r';
141                 Application.ShowMainForm := False;
142                 Application.CreateForm(TMainWindow, MainWindow);
143   Application.CreateForm(TFavoriteDM, FavoriteDM);
144   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
145   Application.CreateForm(TGikoDM, GikoDM);
146   Application.CreateForm(TInputAssistDM, InputAssistDM);
147   Application.CreateForm(TReplaceDM, ReplaceDM);
148   Application.CreateForm(TExtPreviewDM, ExtPreviewDM);
149   Application.CreateForm(TGikoForm, GikoForm);
150   Application.CreateForm(TUpdateCheckForm, UpdateCheckForm);
151   Application.Run;
152                 ReleaseMutex(hMutex);
153         end;
154 end.
155