Page 1 of 3

LWBlat GUI

Posted: Thu May 23, 2013 9:37 am
by lwc
The latest stable version of LWBlat GUI (please vote to make it public) was made for Blat v2.6.2 which was Blat's latest version for years.

I want to update it for Blat's new v3.1.1, but I need help with v3's new Unicode support.
When using non Latin characters in the body, etc., Blat sends them in Gibberish.
It may happen because developers are supposed to use a file called blatdll.h, which is a C++ header file.

But my program was made with AutoIt.

So feel free to either mention here or in AutoIt's official forums how to make it work.

My current relevant code is:

Code: Select all

DllCall("blat.dll,"int","Send","str", "list of Blat parameters...")

Re: LWBlat GUI

Posted: Thu May 23, 2013 10:27 am
by guinness
Do you want suggestions other than fixing your issue? As I have a couple I can offer.

Re: LWBlat GUI

Posted: Thu May 23, 2013 11:28 am
by lwc
Sure, I'm open to suggestions.

In fact, anyone can submit ideas in the program's tracker (see official site in the aforementioned link).

Re: LWBlat GUI

Posted: Thu May 23, 2013 11:42 am
by guinness
OK, well what stood out for me was your version of _GetIP is outdated (I updated this in the latest AutoIt beta and it can be found on the Forum.) Secondly, you're including functions from the includes, so why not just include the file and use Jos' Obfuscator to strip the code.

Re: LWBlat GUI

Posted: Thu May 23, 2013 1:23 pm
by lwc
As soon as I'll release the new version, it'll use whatever _GetIP the latest stable AutoIt uses.

What do you mean by "include the file"? Why should I bother to use Obfuscator? This is an open source program anyway so there's nothing to hide. Regarding space, it's less than 0.5 Mb so it's small enough even without Obfuscator.

Re: LWBlat GUI

Posted: Thu May 23, 2013 11:04 pm
by guinness
I meant just use #include <Inet.au3> instead of directly copying it and you need to do a little bit more studying of what Obfuscator does, I use it in my open source software to strip functions I don't use.

Re: LWBlat GUI

Posted: Thu May 23, 2013 11:20 pm
by lwc
Are you sure you're using the latest version? It does #include <Inet.au3> and does not copy and paste _GetIP(). You can download the source version and see for yourself. So what are you talking about?

If you're interested to know, I can happily tell you the official _GetIP() includes a fix submitted by none other than yours truly. Until they released the fix, I resorted to using my own _GetIP in order to employ the fix manually. Maybe one of the older versions of my program had this manual fix, but I can assure you it's not there since at least 2011.

Regarding Obfuscator, I admit I didn't know it removes unneeded functions. Is there a real benefit in it for a program that's pretty small anyway?

Re: LWBlat GUI

Posted: Thu May 23, 2013 11:52 pm
by guinness
I'm looking at the source code on google code, which I can only presume is where you keep the source code.

I can assure you that I am aware of your previous Track Ticket(s) and the current _GetIP in AutoIt v3.3.8.1 is different to v3.3.6.1 and in v3.3.9.4 it's >> http://www.autoitscript.com/forum/topic ... ntry858868 as I update the UDFs and help file.

Yes, there is a benefit. Just try it.

Re: LWBlat GUI

Posted: Fri May 24, 2013 12:01 am
by guinness
Anyway, your request to the Blat tracker is more than likely to be rejected for reasons which I won't state on a non-AutoIt related site.

If you open up blatdll.h you will notice that for Unicode you should use SendW instead of Send/SendA.

Code: Select all

DllCall("blat.dll,"int","SendW","wstr", "list of Blat parameters...")

Re: LWBlat GUI

Posted: Fri May 24, 2013 2:27 am
by lwc
Oh, I meant the stable source code (it's a separate download as required by the license). You meant the nighties' source code, which wasn't updated.

I've just updated the nighties' source code. Can you beta test it for me before I release the new version?

Anyway, I was aware of "SendW", but not of "wstr". All I needed to know was "wstr". How did you find it? This word doesn't exist in blatdll.h.
To tell you the truth, I see no logic in ANSI support now that Blat only runs in Unicode systems.

Re: LWBlat GUI

Posted: Fri May 24, 2013 2:35 am
by guinness
lwc wrote:Anyway, I was aware of "SendW", but not of "wstr". All I needed to know was "wstr". How did you find it? This word doesn't exist in blatdll.h.
To tell you the truth, I see no logic in ANSI support now that Blat only runs in Unicode systems.
They have ANSI support for systems that are pre-Windows 2000.

Because I work on the UDFs especially WinAPI/WinAPIEx and just know that str is for an ANSI string and wstr is for a wide character string, it's something you just know.

Could you create a compiled version with the dll etc and then I will test. I also see you're using Dim, swap this for Global instead. As to why search the AutoIt Forum for Dim usage, I've discussed many times as to why it shouldn't be used.

Re: LWBlat GUI

Posted: Fri May 24, 2013 11:35 am
by lwc
guinness wrote:They have ANSI support for systems that are pre-Windows 2000.
Sorry, I misread the following for general support:
ChangeLog.txt wrote: 3.0.4
[+] If 32-bit Unicode code is run with Windows 9x/ME, exit with error code 14
because Unicode is not supported with Windows earlier than Windows 2000.
Anyway, Blat has its own distribution. Can't you just put the AU3 file in Blat's folder and run it? I've not only got rid of the DIMs (mostly leftovers from the original script), but also started using the new built-in _StringEncrypt function.

Re: LWBlat GUI

Posted: Fri May 24, 2013 12:04 pm
by guinness
_StringEncrypt is old, outdated and not safe. Use the Crypt functions instead.

Try this >> http://www.autoitscript.com/forum/topic ... ?p=1028231

I will wait until you release a stable version as I'm too busy to start messing around with Blat files etc..I have my own projects to contend with tonight.

Re: LWBlat GUI

Posted: Fri May 24, 2013 1:19 pm
by lwc
Fine, using Crypt now.

Wish you'd check the nightly because my stable version wouldn't contain Blat either. Like I said, it has its own distribution.
Having Blat is a requirement. You then just put my EXE/AU3 in the same folder and run it.

P.S.
Got this when trying to use Obfuscator:
-###2 Obfuscation Error: Found Execute() statement which will lead to problems running your obfuscated script.
>### current Func: StringRegExpReplace_callback

Re: LWBlat GUI

Posted: Sat May 25, 2013 12:29 am
by guinness
It's not an error per say, read the documentation carefully of Obfuscator. Just use the /StripOnly command or provide me with the commandline you used?

Also, do I have to install blat on my system?