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   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
45 {$R *.RES}
46 {$R gikoResource.res}
47
48 var
49         hMutex: THandle;
50         Wnd{, AppWnd}: HWnd;
51         i: Integer;
52         CDS: TCopyDataStruct;
53 const
54         MutexString: string = 'gikoNaviInstance';
55 begin
56         hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, PChar(MutexString));
57         if hMutex <> 0 then begin
58                 //\83~\83\85\81[\83e\83b\83N\83X\82ª\91\8dÝ\82µ\82½\8fê\8d\87\82Í\8bN\93®\92\86\8e~
59                 Wnd := FindWindow('TGikoForm', nil);
60                 if Wnd <> 0 then begin
61                         //\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³
62                         SetForegroundWindow(Wnd);
63                         if IsIconic(Wnd) then
64                                 SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, -1);
65 //                      AppWnd := GetWindowLong(Wnd, GWL_HWNDPARENT);
66 //                      if (AppWnd <> 0) and (IsIconic(AppWnd)) then
67 //                              SendMessage(AppWnd, WM_SYSCOMMAND, SC_RESTORE, -1);
68
69                         //\82Å\81A\88ø\90\94\82ª\82 \82Á\82½\82ç\8bN\93®\8dÏ\82Ý\83M\83R\83i\83r\82É\91\97\82é
70                         for i := 1 to ParamCount do     begin
71                                 CDS.dwData := 0;
72                                 CDS.cbData := Length(ParamStr(i)) + 1;
73                                 GetMem(CDS.lpData, CDS.cbData);
74                                 try
75                                         StrPCopy(CDS.lpData, ParamStr(i));
76                                         SendMessage(Wnd, WM_COPYDATA, 0, LParam(@CDS));
77                                 finally
78                                         FreeMem(CDS.lpData);
79                                 end;
80                         end;
81                 end;
82                 CloseHandle(hMutex);
83         end else begin
84                 //\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
85                 hMutex := CreateMutex(nil, False, PChar(MutexString));
86                 Application.Initialize;
87                 Application.Title := '\83M\83R\83i\83r';
88                 Application.ShowMainForm := False;
89                 Application.CreateForm(TMainWindow, MainWindow);
90   Application.CreateForm(TFavoriteDM, FavoriteDM);
91   Application.CreateForm(TAddressHistoryDM, AddressHistoryDM);
92   Application.CreateForm(TGikoForm, GikoForm);
93   Application.Run;
94                 ReleaseMutex(hMutex);
95         end;
96 end.
97