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   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
77 {$R *.RES}
78 {$R gikoResource.res}
79
80 var
81         hMutex: THandle;
82         Wnd{, AppWnd}: HWnd;
83         i: Integer;
84         CDS: TCopyDataStruct;
85 const
86         MutexString: string = 'gikoNaviInstance';
87 begin
88         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
89         if hMutex <> 0 then begin
90                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
91                 Wnd := FindWindow('TGikoForm', nil);
92                 if Wnd <> 0 then begin
93                         //\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³
94                         try
95                                 SetForegroundWindow(Wnd);
96                         except
97                 //\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
98                         end;
99                         if IsIconic(Wnd) then
100                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
101 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
102 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
103 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
104
105                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
106                         for i := 1 to ParamCount do     begin
107                                 CDS.dwData := 0;
108                                 CDS.cbData := Length(ParamStr(i)) + 1;
109                                 GetMem(CDS.lpData, CDS.cbData);
110                                 try
111                                         StrPCopy(CDS.lpData, ParamStr(i));
112                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
113                                 finally
114                                         FreeMem(CDS.lpData);
115                                 end;
116                         end;
117                 end;
118
119                 CloseHandle(hMutex);
120         end else begin
121                 //\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
122                 hMutex := CreateMutex(nil, False, PChar(MutexString));
123                 Application.Initialize;
124                 Application.Title := '\83M\83R\83i\83r';
125                 Application.ShowMainForm := False;
126                 Application.CreateForm(TMainWindow, MainWindow);
127   Application.CreateForm(TFavoriteDM, FavoriteDM);
128   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
129   Application.CreateForm(TGikoDM, GikoDM);
130   Application.CreateForm(TInputAssistDM, InputAssistDM);
131   Application.CreateForm(TGikoForm, GikoForm);
132   Application.Run;
133                 ReleaseMutex(hMutex);
134         end;
135 end.
136