OSDN Git Service

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