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