forked from DSRCorporation/subtitle-workshop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSubtitleWorkshop.dpr
150 lines (137 loc) · 6.16 KB
/
SubtitleWorkshop.dpr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// This file is part of Subtitle Workshop
// URL: subworkshop.sf.net
// Licesne: GPL v3
// Copyright: See Subtitle Workshop's copyright information
// File Description: Subtitle Workshop main project file
program SubtitleWorkshop;
{$R 'Resources\Resources.res' 'Resources\Resources.rc'}
uses
Forms,
IniFiles,
SysUtils,
Windows,
Messages,
formAbout in 'Forms\formAbout.pas' {frmAbout},
formAdjustSubsEnterNewSyncPoint in 'Forms\formAdjustSubsEnterNewSyncPoint.pas' {frmEnterNewSyncPoint},
formAdjustSubtitles in 'Forms\formAdjustSubtitles.pas' {frmAdjustSubtitles},
formAutomaticDurations in 'Forms\formAutomaticDurations.pas' {frmAutomaticDurations},
formBatchConvert in 'Forms\formBatchConvert.pas' {frmBatchConvert},
formConvertCase in 'Forms\formConvertCase.pas' {frmConvertCase},
formCustomFormats in 'Forms\formCustomFormats.pas' {frmCustomFormats},
formDivideLines in 'Forms\formDivideLines.pas' {frmDivideLines},
formDurationLimits in 'Forms\formDurationLimits.pas' {frmDurationLimits},
formInfoErrors in 'Forms\formInfoErrors.pas' {frmInfoErrors},
formInfoErrorsSettings in 'Forms\formInfoErrorsSettings.pas' {frmInfoErrorsSettings},
formJoin in 'Forms\formJoin.pas' {frmJoin},
formMain in 'Forms\formMain.pas' {frmMain},
formOutputSettings in 'Forms\formOutputSettings.pas' {frmOutputSettings},
formSAMILangExtractor in 'Forms\formSAMILangExtractor.pas' {frmSAMILangExtractor},
formSaveAs in 'Forms\formSaveAs.pas' {frmSaveAs},
formSearchAndReplace in 'Forms\formSearchAndReplace.pas' {frmSearchAndReplace},
formSetDelay in 'Forms\formSetDelay.pas' {frmSetDelay},
formSetPauses in 'Forms\formSetPauses.pas' {frmSetPauses},
formSettings in 'Forms\formSettings.pas' {frmSettings},
formSplit in 'Forms\formSplit.pas' {frmSplit},
formTimeExpanderReducer in 'Forms\formTimeExpanderReducer.pas' {frmTimeExpanderReducer},
formVariousInfo in 'Forms\formVariousInfo.pas' {frmVariousInfo},
formCompositeCustomInfo in 'Forms\formCompositeCustomInfo.pas' {frmCompositeCustomInfo},
formUnbreakSubtitles in 'Forms\formUnbreakSubtitles.pas' {frmUnbreakSubtitles},
formSmartLineAdjust in 'Forms\formSmartLineAdjust.pas' {frmSmartLineAdjust},
formCombineSubtitles in 'Forms\formCombineSubtitles.pas' {frmCombineSubtitles},
formRoundTimeValues in 'Forms\formRoundTimeValues.pas' {frmRoundTimeValues},
formSubtitleAPIFormats in 'Forms\formSubtitleAPIFormats.pas' {frmSubtitleAPIFormats},
FileTypes in 'Units\FileTypes.pas',
Functions in 'Units\Functions.pas',
General in 'Units\General.pas',
CommonTypes in 'Units\CommonTypes.pas',
InfoErrorsFunctions in 'Units\InfoErrorsFunctions.pas',
OCRScripts in 'Units\OCRScripts.pas',
PascalScriptsFunctions in 'Units\PascalScriptsFunctions.pas',
Shortcuts in 'Units\Shortcuts.pas',
TreeViewHandle in 'Units\TreeViewHandle.pas',
Undo in 'Units\Undo.pas',
USubtitleAdjust in 'Units\USubtitleAdjust.pas',
USubtitleApi in 'Units\USubtitleApi.pas',
USubtitlesFunctions in 'Units\USubtitlesFunctions.pas',
VideoPreview in 'Units\VideoPreview.pas',
VTInPlaceEdition in 'Units\VTInPlaceEdition.pas',
DirectShow9 in 'Lib\DirectX\DirectShow9.pas',
DirectDraw in 'Lib\DirectX\DirectDraw.pas',
DirectSound in 'Lib\DirectX\DirectSound.pas',
Direct3D9 in 'Lib\DirectX\Direct3D9.pas',
DXTypes in 'Lib\DirectX\DXTypes.pas',
FastStrings in 'Lib\FastStrings.pas',
HTMLPars in 'Lib\HTMLPars.pas',
RegExpr in 'Lib\RegExpr.pas',
StrMan in 'Lib\StrMan.pas',
WinShell in 'Lib\WinShell.pas',
WAVDisplayerUnit in 'Waveform\WAVDisplayerUnit.pas',
WAVFileUnit in 'Waveform\WAVFileUnit.pas',
Renderer in 'Waveform\Renderer.pas',
DirectVobSubInterface in 'Waveform\DirectVobsubInterface.pas',
MiscToolsUnit in 'Waveform\MiscToolsUnit.pas',
VFW in 'Waveform\VfW.pas',
MiniScrollBarUnit in 'Waveform\MiniScrollBarUnit.pas',
SubStructUnit in 'Waveform\SubStructUnit.pas',
WaveformAdapter in 'Waveform\WaveformAdapter.pas',
formVerticalScaling in 'Forms\formVerticalScaling.pas' {VerticalScalingForm},
NetflixQualityCheck in 'Units\NetflixQualityCheck.pas',
uLkJSON in 'Lib\uLkJSON.pas',
FfmpegHelper in 'Waveform\FfmpegHelper.pas',
formAudioStreams in 'Forms\formAudioStreams.pas' {AudioStreamsForm},
formExecutionProgress in 'Forms\formExecutionProgress.pas' {frmExecutionProgress},
formNetflixQcResult in 'Forms\formNetflixQcResult.pas' {frmNetflixQcResult};
{$R *.res}
// -----------------------------------------------------------------------------
var
hWnd : THandle;
cds : CopyDataStruct;
i : Integer; //added by adenry
Ini : TIniFile;
begin
//{$IFDEF DEBU}MemChk;{$ENDIF} {added by Bdzl}
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\SubtitleWorkshop.ini');
if Ini.ReadBool('Settings', 'Allow more than one instance', True) = False then //False changed to True by adenry
begin
hWnd := FindWindow(SWindowClassName, nil);
if (hWnd <> 0) then
begin
//added by adenry: begin
//set focus to existing instance
SetForegroundWindow(hWnd);
//send all parameters to existing instance and show it
FillChar(cds, Sizeof(cds), 0);
for i := 1 to ParamCount do
begin
cds.dwData := 0;
cds.cbData := (Length(ParamStr(i))+1)*SizeOf(Char);
cds.lpData := PChar(ParamStr(i));
SendMessage(hWnd, WM_COPYDATA, 0, Integer(@cds));
end;
//if there are no parameters, just show the existing instance
if ParamCount = 0 then
begin
cds.dwData := 0;
cds.cbData := (Length(SJustRestoreSWParam)+1)*SizeOf(Char);
cds.lpData := PChar(SJustRestoreSWParam);
SendMessage(hWnd, WM_COPYDATA, 0, Integer(@cds));
end;
//added by adenry: end
//removed by adenry: begin
//cds.dwData := 0;
//cds.cbData := Length(ParamStr(1));
//cds.lpData := PChar(ParamStr(1));
//if ParamCount > 0 then
// SendMessage(hwnd,WM_COPYDATA, 0, Integer(@cds));
//removed by adenry: end
Ini.Free;
ExitProcess(0);
end;
end;
Ini.Free;
Application.Initialize;
Application.Title := 'Subtitle Workshop';
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
// -----------------------------------------------------------------------------