Wednesday, December 27, 2017

FTP Indy Delphi Upload

https://stackoverflow.com/questions/33042220/upload-file-to-ftp-server-using-indy

uses
  ...
  OverbyteIcsFtpCli;

procedure FtpUploadFile( 
                             HostName: String; 
                             UserName: String; 
                             Password: String; 
                             UploadFileName: String; 
                             ToHostDir : String );
var
  FTP: TFtpClient;
begin
  FTP := TFtpClient.Create(nil);
  try
    FTP.HostName := HostName;
    FTP.Passive := True;
    FTP.Binary := True;
    FTP.Username := UserName;
    FTP.Password := Password;
    FTP.Port := '21';

    if not FTP.Open then
      raise Exception.Create('Failed to connect: ' + FTP.ErrorMessage);

    if (not FTP.User) or (not FTP.Pass) then 
      raise Exception.Create('Failed to login: ' + FTP.ErrorMessage);

    FTP.HostDirName := ToHostDir;
    if not FTP.Cwd then
      raise Exception.Create('Failed to change dir: ' + FTP.ErrorMessage);

    FTP.LocalFileName := UploadFileName;
    FTP.HostFileName := ExtractFileName(UploadFileName);

    if not FTP.Put then
      raise Exception.Create('Failed to upload file: ' + FTP.ErrorMessage);
  finally
    FTP.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   FtpLoadFile('rubilaxe.hostoi.com',  
                     '******', '******',
                     IncludeTrailingPathDelimiter( 
                          ExtractFilePath(Application.ExeName) ) +'datafile.zip',
                     '/files'  );
end;


http://beogradsko.blogspot.rs/2018/01/otvarac-kratko-uputstvo-za-instalaciju.html

Jer Windows 10 pamti samo poslednjih 30 dokumenata, a zamislite da ste inspektor, advokat, pravnik ili neki javni beležnik koji dnevno ima da otvori i odštampa na stotine i hiljade dokumentata, onda Vam sigurno treba ovaj program

Evo novi freeware za download:

https://goo.gl/zd26LY

Prvo raspakujete arhivu otvarac----password----raspakuj.zip koristeći password raspakuj.

A zatim prati uputstvo za instalaciju:

http://beogradsko.blogspot.rs/2018/01/otvarac-kratko-uputstvo-za-instalaciju.html

USER MANUAL:


1) In Windows Explorer, My Computer or My Documents just  right click mouse on document (readme.rtf or something else), Context Menu will appear

2) Click on option OTVORI in Context Menu

Evo nove verzije mnogo bolje, ako slučajno imate problema sa instalacijom kliknite na mojsetup.exe desnim tasterom miša i u Context Menu-ju odaberite "Run As Administrator", jer aplikacija kreira folder c:\otvarac pa može se desiti da Vam operativni sistem Windows traži da mu dozvolite ovu operaciju.

Naravno, ukoliko imate neki zaštitni program na sistemu dodajte folder i aplikaciju na listu dozvoljenih aplikacija.

Tehnologije koje sam primenio u ovoj mojoj aplikaciji:

Inno Setup Compiler, Mutex in FPC, FPC, Regedit in Inno, Memo box i jedna tekstualna datoteka baza.txt u koju se beleže svi programi i datoteke koje ste otvarali pomoću ove aplikacije (desni taster miša, pa opcija OTVARAC).

Veoma jednostavno i veoma efektno, a koliko je korisna aplikacija ne treba ni govoriti. Od sada veoma jednostavno i lako pronalazim Microsoft Office dokumente, čak i ukoliko sam ih dnevno otvarao po hiljadu.

Jer Windows 10 pamti samo poslednjih 30 dokumenata, a zamislite da ste inspektor, advokat, pravnik ili neki javni beležnik koji dnevno ima da otvori i odštampa na stotine i hiljade dokumentata, onda Vam sigurno treba ovaj program !!!

Zašto je bitno da u buduće obavezno otvarate datoteke na ovaj način, a ne duplim klikom na levi taster miša ili opcijom Open u Context Menu-ju ?

Jednostavno zato što ćete imati spisak svih otvorenih datoteka ikada, a on je nezamenjiv kod ljudi koji otvaraju veoma velik broj dokumenata i žele da imaju mogućnost evidencije svih pokretanih aplikacija, sa mogućnošću ponovnog startovanja istih - upravo iz ove aplikacije.





MUTEX in FPC

http://forum.lazarus.freepascal.org/index.php?topic=36280.0

  1. PROGRAM UNIQUEWAVE;
  2.  {$MODE OBJFPC}{$H+}
  3.  USES
  4.   Interfaces,
  5.   SysUtils,
  6.   Forms,
  7.   Windows,
  8.   uUNIQUEWAVE;
  9.   {$R *.RES}
  10.  CONST
  11.   MutexName = 'UNIQUEWAVE MuTeX';
  12.  VAR
  13.   hMutex: THandle;
  14. BEGIN
  15.  Try
  16.   hMutex:= CreateMutex(Nil, True, MutexName);
  17.    If GetLastError = ERROR_ALREADY_EXISTS
  18.    Then
  19.     Begin
  20.      CloseHandle(hMutex);
  21.      Exit;
  22.     End;
  23.   Try
  24.    RequireDerivedFormResource:= True;
  25.     Application.Title:= 'UNIQUEWAVE';
  26.     Application.Initialize;
  27.      wndGUI:= TwndGUI.Create(Application); //no need for a TaskbarButton
  28.      wndGUI.Show;
  29.     Application.Run;
  30.   Finally
  31.    If hMutex <> 0
  32.    Then CloseHandle(hMutex);
  33.   End;
  34.  Except
  35.   On E: Exception
  36.   Do wndGUI.Log('MAIN PRG'+sLineBreak+E.ClassName+sLineBreak+E.Message, True);
  37.  End;
  38. END.



program MutexExample;

uses
  Vcl.Forms, Vcl.Dialogs,
  System.SyncObjs, // defines TMutex
  Winapi.Windows,  // defines ERROR_SUCCESS
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

var
  AppMutex: TMutex = nil;
  MutexErr: Integer = 0;

procedure CheckSecondInstance;
const
  // any unique name will work--I chose to create a GUID
  UNIQUE_MUTEX_NAME = '{AD12094E-7308-4067-8CAC-565A1FF3ADDC}';
begin
  // try to create a mutex; don't need any security rights
  AppMutex := TMutex.Create(nil, True, UNIQUE_MUTEX_NAME);

  // check to see if it was successful
  MutexErr := GetLastError;

  // if not, previous instance of application already created the mutex
  if MutexErr <> ERROR_SUCCESS then
    ShowMessage(Application.Title + ' is already running.');
end;

begin
  // initialize app like normal, but don't start it yet
  Application.Initialize;
  Application.Title := 'Simple Mutex Example';

  // run our check here
  CheckSecondInstance;
  try
    // if the mutex was successfully created, this is the first instance of this app
    if MutexErr = ERROR_SUCCESS then begin
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end;
  finally
    // if a mutex was successfully created (and our app ran),
    // be sure to free it to release the mutex
    if Assigned(AppMutex) then
      AppMutex.Free;
  end;
end.

Šta reći, a ne zaplakati od sreće. 
Mutex, pa još u Lazarusu, pa radi lol.
PROGRAM UNIQUEWAVE;
 {$MODE OBJFPC}{$H+}
 
 USES
  Interfaces,
  SysUtils,
  Forms,
  Windows,
  uUNIQUEWAVE;
 
  {$R *.RES}
 
 CONST
  MutexName = 'UNIQUEWAVE MuTeX';
 
 VAR
  hMutex: THandle;
 
BEGIN
 Try
  hMutex:= CreateMutex(Nil, True, MutexName);
 
   If GetLastError = ERROR_ALREADY_EXISTS
   Then
    Begin
     CloseHandle(hMutex);
     Exit;
    End;
 
  Try
   RequireDerivedFormResource:= True;
    Application.Title:= 'UNIQUEWAVE';
    Application.Initialize;
     wndGUI:= TwndGUI.Create(Application); //no need for a TaskbarButton
     wndGUI.Show;
    Application.Run;
  Finally
   If hMutex <> 0
   Then CloseHandle(hMutex);
  End;
 Except
  On E: Exception
  Do wndGUI.Log('MAIN PRG'+sLineBreak+E.ClassName+sLineBreak+E.Message, True);
 End;
END.
 

MOŽE BITI SAMO JEDAN !
STARTUJTE SAMO JEDNU INSTANCU SVOJE APLIKACIJE !
KORISTITE MUTEX TEHNOLOGIJU !
Start only one instance of your application !
Use Mutex in Lazarus !

The Highlander: There can be only one



Monday, December 25, 2017

Evo novi freeware za download OTVARAČ, ali ne za flaše, nego za datoteke

Evo novi freeware za download:

https://goo.gl/zd26LY

Ovakav program ste oduvek želeli. Sve što otvorite se beleži u jedan spisak otvorenih datoteka koji posle možete pretraživati i otvarati duplim klikom sve što poželite.

Prvo raspakujete arhivu otvarac----password----raspakuj.zip koristeći password raspakuj.

A zatim prati uputstvo za instalaciju:

USER MANUAL:

In Windows Explorer right click mouse on document (readme.rtf or something else), Context Menu will appear

Click on option OTVORI in Context Menu



Jer Windows 10 pamti samo poslednjih 30 dokumenata, a zamislite da ste inspektor, advokat, pravnik ili neki javni beležnik koji dnevno ima da otvori i odštampa na stotine i hiljade dokumentata, onda Vam sigurno treba ovaj program !!!

Ukoliko radite u nekoj pravnoj sužbi ili što bi rekli "državni posao" onda imate sreće da ste pronašli ovaj program na internetu ("Kao kec na jedanaest").


Ukoliko ste "Glavni arhivar" kao gospodin Čvarkov, a ne koristite ovaj program, onda nešto nije uredu sa Vama :) 




Zašto je bitno da u buduće obavezno otvarate datoteke na ovaj način, a ne duplim klikom na levi taster miša ili opcijom Open u Context Menu-ju ?


Jednostavno zato što ćete imati spisak svih otvorenih datoteka ikada, a on je nezamenjiv kod ljudi koji otvaraju veoma velik broj dokumenata i žele da imaju mogućnost evidencije svih pokretanih aplikacija, sa mogućnošću ponovnog startovanja istih - upravo iz ove aplikacije.