OSDN Git Service

多段ポップアップ対応をブランチ(bRESPOPUP)からマージ
[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   crc in 'gzip_delphi2\crc.pas',
56   gzip in 'gzip_delphi2\gzip.pas',
57   zlib in 'gzip_delphi2\zlib.pas',
58   bmRegExp in 'bmRegExp\bmregexp.pas',
59   GikoCoolBar in 'Component\GikoCoolBar.pas',
60   GikoListView in 'Component\GikoListView.pas',
61   GikoPanel in 'Component\GikoPanel.pas',
62   KuroutSetting in 'KuroutSetting.pas' {KuroutOption},
63   GikoDB in 'GikoDB.pas',
64   GestureModel in 'GestureModel.pas',
65   Gesture in 'Gesture.pas',
66   GikoBayesian in 'GikoBayesian.pas',
67   Y_TextConverter in 'res\ExternalBoardPlugIn\Y_TextConverter.pas',
68   HTMLCreate in 'HTMLCreate.pas',
69   ListViewUtils in 'ListViewUtils.pas',
70   GikoDataModule in 'GikoDataModule.pas' {GikoDM: TDataModule},
71   BrowserRecord in 'BrowserRecord.pas',
72   GikoMessage in 'GikoMessage.pas',
73   InputAssist in 'InputAssist.pas' {InputAssistForm},
74   InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule},
75   DefaultFileManager in 'DefaultFileManager.pas',
76   MoveHistoryItem in 'MoveHistoryItem.pas',
77   SambaTimer in 'SambaTimer.pas',
78   HistoryList in 'HistoryList.pas',
79   ReplaceDataModule in 'ReplaceDataModule.pas' {ReplaceDM: TDataModule},
80   ResPopupBrowser in 'ResPopupBrowser.pas';
81
82 {$R *.RES}
83 {$R gikoResource.res}
84
85 var
86         hMutex: THandle;
87         Wnd{, AppWnd}: HWnd;
88         i: Integer;
89         CDS: TCopyDataStruct;
90 const
91         MutexString: string = 'gikoNaviInstance';
92 begin
93         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
94         if hMutex <> 0 then begin
95                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
96                 Wnd := FindWindow('TGikoForm', nil);
97                 if Wnd <> 0 then begin
98                         //\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³
99                         try
100                                 SetForegroundWindow(Wnd);
101                         except
102                 //\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
103                         end;
104                         if IsIconic(Wnd) then
105                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
106 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
107 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
108 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
109
110                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
111                         for i := 1 to ParamCount do     begin
112                                 CDS.dwData := 0;
113                                 CDS.cbData := Length(ParamStr(i)) + 1;
114                                 GetMem(CDS.lpData, CDS.cbData);
115                                 try
116                                         StrPCopy(CDS.lpData, ParamStr(i));
117                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
118                                 finally
119                                         FreeMem(CDS.lpData);
120                                 end;
121                         end;
122                 end;
123
124                 CloseHandle(hMutex);
125         end else begin
126                 //\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
127                 hMutex := CreateMutex(nil, False, PChar(MutexString));
128                 Application.Initialize;
129                 Application.Title := '\83M\83R\83i\83r';
130                 Application.ShowMainForm := False;
131                 Application.CreateForm(TMainWindow, MainWindow);
132   Application.CreateForm(TFavoriteDM, FavoriteDM);
133   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
134   Application.CreateForm(TGikoDM, GikoDM);
135   Application.CreateForm(TInputAssistDM, InputAssistDM);
136   Application.CreateForm(TReplaceDM, ReplaceDM);
137   Application.CreateForm(TGikoForm, GikoForm);
138   Application.Run;
139                 ReleaseMutex(hMutex);
140         end;
141 end.
142