-
Content Count
60 -
Joined
-
Last visited
-
Days Won
2
Everything posted by chmichael
-
Hello, I get a "attachment.asm" or (.htm if it's html) in the e-mail ICS 9.3 SVN sends. Any ideas ? Thank you
-
ICS 9.3 SVN SMTP Attachment
chmichael replied to chmichael's topic in ICS - Internet Component Suite
It's fixed with ICS V9.4 - Part 6 -> Fixed bug introduced in V9.3 which corrupted the Content-Transfer-Encoding header line if not 7bit. -
ICS 9.3 SVN SMTP Attachment
chmichael replied to chmichael's topic in ICS - Internet Component Suite
I'll take a deeply look when i find some time -
ICS 9.3 SVN SMTP Attachment
chmichael replied to chmichael's topic in ICS - Internet Component Suite
I think the error is header for whatever reason it's not the correct eg: v9.1: Content-Transfer-Encoding: quoted-printable v9.3: Content-Transfer-Encoding: q Seems 9.3 doesn't apply the correct header values Also Return-Path: <> is empty (in both v9.1 and v9.3) -
ICS 9.3 SVN SMTP Attachment
chmichael replied to chmichael's topic in ICS - Internet Component Suite
Hello, Here's the function which i send the e-mails function SendEMail(const AArgs: TArray<String>): String; var FSMTP: TSSLSmtpCli; begin FSMTP := TSSLSmtpCli.Create(nil); FSMTP.SslContext := TSslContext.Create(nil); FSMTP.SslContext.SslMinVersion := sslVerTLS1_2; with FSMTP do begin Host := 'my.emailserver.com'; Port := '587'; Username := 'myuser@emailserver.com'; Password := 'mypassword'; AuthType := smtpAuthAutoSelect; ContentType := smtpHtml; // Important !!! Set it First //Allow8bitChars := False; //ConvertToCharset := True; CharSet := 'UTF-8'; HdrFrom := 'myuser@emailserver.com'; HdrTo := 'myuser@emailserver.com'; RcptName.Text := HdrTo; HdrSubject := UTF8Encode(VarToStr(AArgs[0])); if Length(AArgs) > 1 then MailMessage.Text := UTF8Encode(VarToStr(AArgs[2])); OpenSync; MailSync; Result := ErrorMessage; FreeAndNil(FSMTP.SslContext); FreeAndNil(FSMTP); end; end; Using the v9.3 SVN version the e-mail which it sends adds an extra attachment which v9.1 didn't: (either plaintext either html) -
Hello, Anyone translated MSQuic headers for Delphi use ? Seems to be the best implementation atm. Thank you
-
Experimenting with message protocols and DNS
-
This isn't a problem in a year from now most will use Windows 11. Messaging protocols and middleware benefit also. Yes i know it's time consuming task but you can make sell it. atm only esegece has native delphi http/2 support as far i know. It would be nice to have a benchmark between esegece HTTP/2 vs ICS HTTP 1.1.
-
Hello, How can i check if a TCP port is open over Internet with timeout using ICS ? Thank you
-
TCP Port Check with timeout
chmichael replied to chmichael's topic in ICS - Internet Component Suite
Got it! Thanks! -
TCP Port Check with timeout
chmichael replied to chmichael's topic in ICS - Internet Component Suite
Ok, i fixed the routine to work both on main and on a thread. It works correctly locally but remotely it always connect OK even if the "server/port" is closed. Any ideas ? btw, doSocketRemoteClick has the same behavior. function IsInternetPortOpenICS(const AIPAddress: AnsiString = ''; const APort: Word = 0; const ATimeOut: NativeUInt = INFINITE): Boolean; var IpLogClient: TIcsIpStrmLog; FThreadID, FTimeout: NativeUInt; begin Result := False; try FThreadID := GetCurrentThreadId; IpLogClient := TIcsIpStrmLog.Create(nil); IpLogClient.LogProtocol := logprotTcpClient; IpLogClient.RemoteHost := AIPAddress; IpLogClient.RemoteIpPort := APort.ToString; //IpLogClient.onLogProgEvent := Form9.onCliLogProgEvent; //IpLogClient.CheckPing := True; //IpLogClient.PingWaitSecs := 1; if FThreadID <> MainThreadID then IpLogClient.MultiThreaded := True; IpLogClient.StartLogging; FTimeout := 0; while FTimeout < ATimeout do begin if FThreadID = MainThreadID then Application.ProcessMessages else IpLogClient.ProcessMessages; Result := IpLogClient.States[0] = logstateOK; if Application.Terminated or Result then Break; Inc(FTimeout, 10); Sleep(10); end; IpLogClient.StopLogging; finally if Assigned(IpLogClient) and IpLogClient.AnyStateOK then IpLogClient.StopLogging; FreeAndNil(IpLogClient); end; end; -
TCP Port Check with timeout
chmichael replied to chmichael's topic in ICS - Internet Component Suite
Hello Angus, How can i get the result ? (Is open or not) Do i have to use application.processmessages ? I'm going to use this routine in a thread. Thank you function IsInternetPortOpenICS(const AIPAddress: AnsiString = ''; const APort: Word = 0; const ATimeOut: NativeUInt = INFINITE): Boolean; var IpLogClient: TIcsIpStrmLog; begin try IpLogClient := TIcsIpStrmLog.Create(nil); IpLogClient.MaxSockets := 1; IpLogClient.LogProtocol := logprotTcpClient ; IpLogClient.RemoteHost := AIPAddress; IpLogClient.RemoteIpPort := APort.ToString; IpLogClient.CheckPing := False; IpLogClient.StartLogging; Result := // Check if connected ??? IpLogClient.StopLogging; finally if Assigned(IpLogClient) and IpLogClient.AnyStateOK then IpLogClient.StopLogging; FreeAndNil(IpLogClient); end; end; -
TCP Port Check with timeout
chmichael replied to chmichael's topic in ICS - Internet Component Suite
Well I'm using the following code to do what you're saying but for some reason it doesn't always work! Eg. even if the server port is closed it will return "True". -
Hello, When i'm closing the application eg, after 30 seconds OTL will raise an exception with error code 1400 invalid window handle. Any ideas ? Thank you Code: var FTask1: IOmniTimedTask; FTask2: IOmniTimedTask; procedure StartTimedTasks(const Task: IOmniTask); begin FTask1 := Parallel.TimedTask.Every(1000).Execute(DoSometing1); FTask2 := Parallel.TimedTask.Every(1000).Execute(DoSometing2); end; procedure TFormApplication.FormShow(Sender: TObject); begin Parallel.Async(StartTimedTasks); end;
-
Hello, Anyone knows how to copy the Bits from a ID3D11Texture2D which it has different RowPitch than Bitmap.Width * 4 ? if FTexture.RowPitch = FBitmap.Width * 4 then for I := 0 to FBitmap.Height - 1 do Move(FTexture.pData[4 * FBitmap.Width * I], FBitmap.Scanline^, 4 * FBitmap.Width); else ????? Thank you
-
I have checked that but it doesn't check the RowPitch.
-
Bitmaps2Video for Windows Media Foundation
chmichael replied to Renate Schaaf's topic in I made this
For streaming it's always the same -
Bitmaps2Video for Windows Media Foundation
chmichael replied to Renate Schaaf's topic in I made this
Well if you use it for internal use or streaming purposes you don't care. -
Bitmaps2Video for Windows Media Foundation
chmichael replied to Renate Schaaf's topic in I made this
bme.AddFrame(bm, false); It took 53 milliseconds to encode a 8k image faster than turbo-jpeg and with lower size as you say. Imagine using a TMemoryStream you can do whatever you want with the frames and i'll don't care about the expensive initialization. I don't understand why it creates a 10s video instead of 1s ... -
Bitmaps2Video for Windows Media Foundation
chmichael replied to Renate Schaaf's topic in I made this
That goes to my first request " 1) Encode to Stream". As far the compression HEIF actually uses H.265 compression but there is not any hardware acceleration in Delphi or at least haven't found any! https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format HEIF files containing HEVC-encoded images are also known as HEIC files. Such files require less storage space than the equivalent quality JPEG.[2][3] Thank you -
Bitmaps2Video for Windows Media Foundation
chmichael replied to Renate Schaaf's topic in I made this
I was hoping i could use H264/5 hardware encoder/decoder for a single image. It should be faster and smaller than turbo-jpeg. -
Bitmaps2Video for Windows Media Foundation
chmichael replied to Renate Schaaf's topic in I made this
Can you add: 1) Encode to Stream 2) Hardware encode only 1 image ? Thank you -
Just curious, anyone tried Skia for resampling ?
-
Yeap, ReduceColors doesn't have this issue!
-
Did you find any solution ? I have the same problem!