diff options
author | eddie-0815 <eddie-0815@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-11-20 21:02:37 +0000 |
---|---|---|
committer | eddie-0815 <eddie-0815@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-11-20 21:02:37 +0000 |
commit | ce484ce148d1db51ddb3cda575786f0871843cb3 (patch) | |
tree | 16380707a09822ce266bc5a3e7c8427273289073 /Game/Code/Classes/UPlatformWindows.pas | |
parent | 34b0cb8bd025b40f52cff91bd9c29cd02faee7c2 (diff) | |
download | usdx-ce484ce148d1db51ddb3cda575786f0871843cb3.tar.gz usdx-ce484ce148d1db51ddb3cda575786f0871843cb3.tar.xz usdx-ce484ce148d1db51ddb3cda575786f0871843cb3.zip |
Changed Platform from Interface to Class.
Added TerminateIfAlreadyRunning and GetGamePath to UPlatform.pas.
Fixed a bug in THookManager.Create ("SpacetoAllocate-1").
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@617 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r-- | Game/Code/Classes/UPlatformWindows.pas | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/Game/Code/Classes/UPlatformWindows.pas b/Game/Code/Classes/UPlatformWindows.pas index 7e65d700..afdcebcf 100644 --- a/Game/Code/Classes/UPlatformWindows.pas +++ b/Game/Code/Classes/UPlatformWindows.pas @@ -12,9 +12,10 @@ uses Classes, UPlatform; type
- TPlatform = class(TInterfacedObject, IPlatform)
+ TPlatformWindows = class(TPlatform)
public
- Function DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray;
+ Function DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray; override;
+ function TerminateIfAlreadyRunning(var WndTitle : String) : Boolean; override;
end;
implementation
@@ -99,7 +100,35 @@ begin Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;
-Function TPlatform.DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray;
+//------------------------------
+//Start more than One Time Prevention +//------------------------------ +function TPlatformWindows.TerminateIfAlreadyRunning(var WndTitle : String) : Boolean;
+var
+ hWnd: THandle;
+ I: Integer; +begin
+ Result := false;
+ hWnd:= FindWindow(nil, PChar(WndTitle));
+ //Programm already started + if (hWnd <> 0) then + begin + I := Messagebox(0, PChar('Another Instance of Ultrastar is already running. Continue ?'), PChar(WndTitle), MB_ICONWARNING or MB_YESNO); + if (I = IDYes) then + begin + I := 1; + repeat + Inc(I); + hWnd := FindWindow(nil, PChar(WndTitle + ' Instance ' + InttoStr(I))); + until (hWnd = 0); + WndTitle := WndTitle + ' Instance ' + InttoStr(I); + end + else + Result := true; + end; +end;
+
+Function TPlatformWindows.DirectoryFindFiles(Dir, Filter : WideString; ReturnAllSubDirs : Boolean) : TDirectoryEntryArray;
var
i : Integer;
SR : TSearchRecW;
|