Changeset 15 for trunk/Packages/Common/UCommon.pas
- Timestamp:
- Mar 22, 2018, 8:31:19 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Packages/Common/UCommon.pas
r10 r15 6 6 7 7 uses 8 {$IFDEF Windows}Windows,{$ENDIF} 8 {$ifdef Windows}Windows,{$endif} 9 {$ifdef Linux}baseunix,{$endif} 9 10 Classes, SysUtils, StrUtils, Dialogs, Process, LCLIntf, 10 11 FileUtil; //, ShFolder, ShellAPI; … … 62 63 procedure OpenWebPage(URL: string); 63 64 procedure OpenFileInShell(FileName: string); 64 procedure ExecuteProgram( CommandLine:string);65 procedure ExecuteProgram(Executable: string; Parameters: array of string); 65 66 procedure FreeThenNil(var Obj); 67 function RemoveQuotes(Text: string): string; 68 function ComputerName: string; 69 function OccurenceOfChar(What: Char; Where: string): Integer; 70 function GetDirCount(Dir: string): Integer; 71 function MergeArray(A, B: array of string): TArrayOfString; 72 function LoadFileToStr(const FileName: TFileName): AnsiString; 66 73 67 74 … … 105 112 Path := IncludeTrailingPathDelimiter(APath); 106 113 107 Find := FindFirst( UTF8Decode(Path + AFileSpec), faAnyFile xor faDirectory, SearchRec);114 Find := FindFirst(Path + AFileSpec, faAnyFile xor faDirectory, SearchRec); 108 115 while Find = 0 do begin 109 DeleteFile UTF8(Path + UTF8Encode(SearchRec.Name));116 DeleteFile(Path + SearchRec.Name); 110 117 111 118 Find := SysUtils.FindNext(SearchRec); … … 286 293 L: LongWord; 287 294 begin 288 289 295 L := MAX_USERNAME_LENGTH + 2; 290 296 SetLength(Result, L); … … 301 307 end; 302 308 end; 303 309 {$endif} 310 311 function ComputerName: string; 312 {$ifdef mswindows} 313 const 314 INFO_BUFFER_SIZE = 32767; 315 var 316 Buffer : array[0..INFO_BUFFER_SIZE] of WideChar; 317 Ret : DWORD; 318 begin 319 Ret := INFO_BUFFER_SIZE; 320 If (GetComputerNameW(@Buffer[0],Ret)) then begin 321 Result := UTF8Encode(WideString(Buffer)); 322 end 323 else begin 324 Result := 'ERROR_NO_COMPUTERNAME_RETURNED'; 325 end; 326 end; 327 {$endif} 328 {$ifdef unix} 329 var 330 Name: UtsName; 331 begin 332 fpuname(Name); 333 Result := Name.Nodename; 334 end; 335 {$endif} 336 337 {$ifdef windows} 304 338 function LoggedOnUserNameEx(Format: TUserNameFormat): string; 305 339 const … … 395 429 end; 396 430 397 procedure ExecuteProgram( CommandLine:string);431 procedure ExecuteProgram(Executable: string; Parameters: array of string); 398 432 var 399 433 Process: TProcess; 434 I: Integer; 400 435 begin 401 436 try 402 437 Process := TProcess.Create(nil); 403 Process.CommandLine := CommandLine; 438 Process.Executable := Executable; 439 for I := 0 to Length(Parameters) - 1 do 440 Process.Parameters.Add(Parameters[I]); 404 441 Process.Options := [poNoConsole]; 405 442 Process.Execute; … … 416 453 417 454 procedure OpenWebPage(URL: string); 418 var419 Process: TProcess;420 Browser, Params: string;421 455 begin 422 456 OpenURL(URL); 423 {try 424 Process := TProcess.Create(nil); 425 Browser := ''; 426 //FindDefaultBrowser(Browser, Params); 427 //Process.Executable := Browser; 428 //Process.Parameters.Add(Format(Params, [ApplicationInfo.HomePage]); 429 Process.CommandLine := 'cmd.exe /c start ' + URL; 430 Process.Options := [poNoConsole]; 431 Process.Execute; 457 end; 458 459 procedure OpenFileInShell(FileName: string); 460 begin 461 ExecuteProgram('cmd.exe', ['/c', 'start', FileName]); 462 end; 463 464 function RemoveQuotes(Text: string): string; 465 begin 466 Result := Text; 467 if (Pos('"', Text) = 1) and (Text[Length(Text)] = '"') then 468 Result := Copy(Text, 2, Length(Text) - 2); 469 end; 470 471 function OccurenceOfChar(What: Char; Where: string): Integer; 472 var 473 I: Integer; 474 begin 475 Result := 0; 476 for I := 1 to Length(Where) do 477 if Where[I] = What then Inc(Result); 478 end; 479 480 function GetDirCount(Dir: string): Integer; 481 begin 482 Result := OccurenceOfChar(DirectorySeparator, Dir); 483 if Copy(Dir, Length(Dir), 1) = DirectorySeparator then 484 Dec(Result); 485 end; 486 487 function MergeArray(A, B: array of string): TArrayOfString; 488 var 489 I: Integer; 490 begin 491 SetLength(Result, Length(A) + Length(B)); 492 for I := 0 to Length(A) - 1 do 493 Result[I] := A[I]; 494 for I := 0 to Length(B) - 1 do 495 Result[Length(A) + I] := B[I]; 496 end; 497 498 function LoadFileToStr(const FileName: TFileName): AnsiString; 499 var 500 FileStream: TFileStream; 501 Read: Integer; 502 begin 503 Result := ''; 504 FileStream := TFileStream.Create(FileName, fmOpenRead); 505 try 506 if FileStream.Size > 0 then begin 507 SetLength(Result, FileStream.Size); 508 Read := FileStream.Read(Pointer(Result)^, FileStream.Size); 509 SetLength(Result, Read); 510 end; 432 511 finally 433 Process.Free; 434 end;} 435 end; 436 437 procedure OpenFileInShell(FileName: string); 438 begin 439 ExecuteProgram('cmd.exe /c start "' + FileName + '"'); 440 end; 512 FileStream.Free; 513 end; 514 end; 515 516 441 517 442 518 initialization
Note:
See TracChangeset
for help on using the changeset viewer.