OSDN Git Service

2ちゃん語を独立したクラスにした
[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   SaveFile in 'SaveFile.pas',
23   Sort in 'Sort.pas',
24   ThreadControl in 'ThreadControl.pas',
25   ItemDownload in 'ItemDownload.pas',
26   RoundData in 'RoundData.pas',
27   RoundName in 'RoundName.pas' {RoundNameDialog},
28   NewBoard in 'NewBoard.pas' {NewBoardDialog},
29   Dolib in 'Dolib.pas',
30   UBase64 in 'Encrypt\UBase64.pas',
31   UCryptAuto in 'Encrypt\UCryptAuto.pas',
32   KeySetting in 'KeySetting.pas' {KeySettingForm},
33   FavoriteAdd in 'FavoriteAdd.pas' {FavoriteAddDialog},
34   NewFavoriteFolder in 'NewFavoriteFolder.pas' {NewFavoriteFolderDialog},
35   FavoriteArrange in 'FavoriteArrange.pas' {FavoriteArrangeDialog},
36   Favorite in 'Favorite.pas' {FavoriteDM: TDataModule},
37   AddressHistory in 'AddressHistory.pas' {AddressHistoryDM: TDataModule},
38   Preview in 'Preview.pas',
39   HTMLDocumentEvent in 'HTMLDocumentEvent.pas',
40   Kotehan in 'Kotehan.pas' {KotehanDialog},
41   MonaUtils in 'MonaUtils.pas',
42   HintWindow in 'HintWindow.pas',
43   GikoUtil in 'GikoUtil.pas',
44   ToolBarSetting in 'ToolBarSetting.pas' {ToolBarSettingDialog},
45   ToolBarUtil in 'ToolBarUtil.pas',
46   YofUtils in 'YofUtils.pas',
47   AbonUnit in 'AbonUnit.pas',
48   IndividualAbon in 'IndividualAbon.pas' {IndividualAbonForm},
49   Trip in 'Trip.pas',
50   GikoXMLDoc in 'GikoXMLDoc.pas',
51   ExternalBoardManager in 'ExternalBoardManager.pas',
52   ExternalThreadItem in 'ExternalThreadItem.pas',
53   ExternalBoardItem in 'ExternalBoardItem.pas',
54   ExternalBoardPlugInMain in 'ExternalBoardPlugInMain.pas',
55   ExternalFilePath in 'ExternalFilePath.pas',
56   MojuUtils in 'MojuUtils.pas',
57   crc in 'gzip_delphi2\crc.pas',
58   gzip in 'gzip_delphi2\gzip.pas',
59   zlib in 'gzip_delphi2\zlib.pas',
60   bmRegExp in 'bmRegExp\bmregexp.pas',
61   GikoCoolBar in 'Component\GikoCoolBar.pas',
62   GikoListView in 'Component\GikoListView.pas',
63   GikoPanel in 'Component\GikoPanel.pas',
64   KuroutSetting in 'KuroutSetting.pas' {KuroutOption},
65   GikoDB in 'GikoDB.pas',
66   GestureModel in 'GestureModel.pas',
67   Gesture in 'Gesture.pas',
68   GikoBayesian in 'GikoBayesian.pas',
69   Y_TextConverter in 'res\ExternalBoardPlugIn\Y_TextConverter.pas',
70   HTMLCreate in 'HTMLCreate.pas',
71   ListViewUtils in 'ListViewUtils.pas',
72   GikoDataModule in 'GikoDataModule.pas' {GikoDM: TDataModule},
73   BrowserRecord in 'BrowserRecord.pas',
74   GikoMessage in 'GikoMessage.pas';
75
76 {$R *.RES}
77 {$R gikoResource.res}
78
79 var
80         hMutex: THandle;
81         Wnd{, AppWnd}: HWnd;
82         i: Integer;
83         CDS: TCopyDataStruct;
84 const
85         MutexString: string = 'gikoNaviInstance';
86 begin
87         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
88         if hMutex <> 0 then begin
89                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
90                 Wnd := FindWindow('TGikoForm', nil);
91                 if Wnd <> 0 then begin
92                         //\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³
93                         SetForegroundWindow(Wnd);
94                         if IsIconic(Wnd) then
95                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
96 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
97 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
98 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
99
100                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
101                         for i := 1 to ParamCount do     begin
102                                 CDS.dwData := 0;
103                                 CDS.cbData := Length(ParamStr(i)) + 1;
104                                 GetMem(CDS.lpData, CDS.cbData);
105                                 try
106                                         StrPCopy(CDS.lpData, ParamStr(i));
107                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
108                                 finally
109                                         FreeMem(CDS.lpData);
110                                 end;
111                         end;
112                 end;
113
114                 CloseHandle(hMutex);
115         end else begin
116                 //\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
117                 hMutex := CreateMutex(nil, False, PChar(MutexString));
118                 Application.Initialize;
119                 Application.Title := '\83M\83R\83i\83r';
120                 Application.ShowMainForm := False;
121                 Application.CreateForm(TMainWindow, MainWindow);
122   Application.CreateForm(TFavoriteDM, FavoriteDM);
123   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
124   Application.CreateForm(TGikoDM, GikoDM);
125   Application.CreateForm(TGikoForm, GikoForm);
126   Application.Run;
127                 ReleaseMutex(hMutex);
128         end;
129 end.
130