DiskDir Extended

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

kesdoputr,
Here is discussion topic for plugin DiskDirExtended, not DiskDir. DiskDirExtended doesn't support Unicode names yet, so it won't show you correct names for lists created with DiskDirW.

Anyway, if there is no BOM in a file, it is quite hard to detect if it is UTF-8 encoded so even with Unicode support it may be treated as ANSI file.
User avatar
TrePe
Junior Member
Junior Member
Posts: 41
Joined: 2004-02-10, 23:30 UTC
Location: Slovakia

Post by *TrePe »

Hi everybody.

UTF support was in my plan and I tried it. But soon I found out this is very error prone and thus time consuming task.

At least I finally forced myself to push my sources to github, so here they are:
https://github.com/TrePe0/diskdir-extended

So if there is anybody that wants to give it a try, please do so.
sanjkoc
Junior Member
Junior Member
Posts: 20
Joined: 2004-07-13, 15:48 UTC
Location: Italy

Post by *sanjkoc »

Ciao!
When I'm browsing in a panel the files 'inside' a .lst file, is there a way I can force the other panel to go to the real file/dir (if available)?

I mean, something like Ctrl-left/right in normal panels.

I use .lst files as indexes to find files in various places, but then I'd like to have an easy way to jump where the file is.

Thank you very much.
AJC (#62576)
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6450
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

sanjkoc wrote:Ciao!
When I'm browsing in a panel the files 'inside' a .lst file, is there a way I can force the other panel to go to the real file/dir (if available)?

I mean, something like Ctrl-left/right in normal panels.

I use .lst files as indexes to find files in various places, but then I'd like to have an easy way to jump where the file is.

Thank you very much.
Ctrl-left/right works here for dirs from a lst list.
For files it opens the dir in which the file is.
sanjkoc
Junior Member
Junior Member
Posts: 20
Joined: 2004-07-13, 15:48 UTC
Location: Italy

Post by *sanjkoc »

Horst.Epp wrote:Ctrl-left/right works here for dirs from a lst list.
For files it opens the dir in which the file is.
Thanx for your answer.

Sure they do! But they open the dir of the lst file.

I wrote "like Ctrl-left/right" because I'm looking for something that opens the other panel to the dir of the real file (the one that was compresses with DiskDirExtended), if available.

If within a '.lst panel' I do F3 the contents of the real file is listed; so the plugin, of course, knows the absolute pathname of the file, at least I'd like to have it.

I'm playing with cm_CopyFullNamesToClip, but I get strange results.

Thank you for any help.
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6450
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

sanjkoc wrote:
Horst.Epp wrote:Ctrl-left/right works here for dirs from a lst list.
For files it opens the dir in which the file is.
Thanx for your answer.

Sure they do! But they open the dir of the lst file.
...
No, thats wrong !
They open the dir which the cursor is on in the files list.
If the cursor is on a file in the list they open the dir in which the real file is.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Horst.Epp,
When you press Ctrl+Left/Right inside archive, TC opens same archive in another panel, but not the folder where the real file is (e.g. real file is C:\dir\file.txt, file in archive is D:\archive.lst\dir\file.txt, and Ctrl+Left/Right opens D:\archive.lst\dir and not C:\dir).

sanjkoc,
Unfortunately WCX interface doesn't provide any way to tell where unpacked file is, plugin is only able to unpack file to a dir that TC specifies in unpack command (try to press F3 on any file and take a look on its path in Lister's title - it will be somewhere in temp directory). However since the format is simple, some third-party tool or script may be useful here (it will only need to get focused file path and find this file in archive in order to get its real path - only first list file line is required to get its root dir).

E.g. this simple script may be used for this task:

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="ddeGotoRealFile.cab"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ddeGotoRealFile.cab"

TVNDRgAAAACKAgAAAAAAACwAAAAAAAAAAwEBAAIAAABNQgAAdAAAAAEAAxWnAAAAAAAAAAAAR0il
tSAAZGRlR290b1JlYWxGaWxlLmJhdABxAgAApwAAAAAAR0jLtCAAZGRlR290b1JlYWxGaWxlLnBz
MQDWRawNDgIYA1uAgI0AEIIxAAADACQzAGAPZdDQ+icifE2ZbVcifxKiWcsWCo3dEEJJNbwY0O0p
d9rdSknvWf77IDAAAEgAwIoIALjAEldc4uJNhUvLILyF9Sz3Qs+gEmvc+pLJbjFlQbfA82CaOP9n
/////6H/AAAAAAAAGBkGAYp6vwb9fof5T2CIXYIivw7CWCY4tHdwy1XNFbCwdjVtW7tIegA4SZFT
0qLLTZOQJL1wRlOOUxgva4qGogUWEOSzL5IVw6Lch4W3fD2I42KWb4QHbnJnTDcUaeIYZPzErK5m
opfl8Oy3e7qloCN825Mx753U7Ypt5eWYLhkJOHj9AzR/gbSj/xQazDNrPJIvCO+RINnhaPUZFl9y
MBb92Q2SwsZx/IULgFLxbzvTb8pVzGxE0FVQzTGZVWQPMrwqllxjpEiG6anU8ocRQc2D9vAy+kBi
n+cQw4jI8W2WrmpsO+TDWqwdtc2NiIi5Y9bhK+aYlvtEkeV7vZ1C88Zwz98Fqkl5/RXlGrc8+h/6
YdTbF0H/BWgNw04URYL8aI0gZEKLrzp+blFfOAZ4sOOLG3oql5xwNc83E8r3eicTC2U6v5gQlf/E
e2nuWvtMdEeLv1ZnWXiyz9lgQzzJ35x7NEeytI2pP9JuwODkfDfLENPKUlPGxp7Gq867dvfNU1tV
KXyBF+Vz/puvHwJz1CnVS98fnSVVAJk=
Save this as ddeGotoRealFile.b64 and decode using TC decoder, then unpack to any folder and drag ddeGotoRealFile.bat to TC buttonbar. Finally set button parameters to %Z%P%N and set its option to start minimized. Optionally you can specify second argument with TC command line arguments (by default script will jump to real file from DDE archive in target panel of current TC instance), e.g.:

Code: Select all

Command: ddeGotoRealFile.bat
Parameters: %Z%P%N "/O /S /R={0}"
Start path:
Run minimized: yes
sanjkoc
Junior Member
Junior Member
Posts: 20
Joined: 2004-07-13, 15:48 UTC
Location: Italy

Post by *sanjkoc »

MVV,
wow, thank you very much!!

I had the same idea, but I wrote it in Autoit, I'm not a powershell guy :)
If you want, here's my version (still very raw, indeed)

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="Z.au3"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Z.au3"

I2luY2x1ZGUgPFdpbkFQSS5hdTM+DQoNCkxvY2FsICRzcywgJGRkLCAkZmxzdA0KTG9jYWwgJGhX
bmQgPSBXaW5HZXRIYW5kbGUoIltDTEFTUzpUVE9UQUxfQ01EXSIpDQpJZiBAZXJyb3IgVGhlbiBF
eGl0DQoNCkNsaXBQdXQoIiIpDQpfV2luQVBJX1Bvc3RNZXNzYWdlKCRoV25kLCAxMDc1ICwgMjAx
OCwgMCkNClNsZWVwKDIzKQ0KJHNzID0gQ2xpcEdldCgpDQpJZiBAZXJyb3IgVGhlbiBFeGl0DQoN
CiR3dyA9IFN0cmluZ0luU3RyKCRzcywgIi5sc3RcIiwgMCkNCklmICR3dyBUaGVuDQogICAkZmxz
dCA9IFN0cmluZ01pZCgkc3MsIDEsICR3dyArIDMpDQogICAkZGQgPSBGaWxlUmVhZExpbmUoJGZs
c3QpDQogICBJZiBAZXJyb3IgVGhlbiBFeGl0DQogICAkZGQgJj0gU3RyaW5nTWlkKCRzcywgJHd3
ICsgNSkNCkVuZElmDQoNCklmIE5vdCBGaWxlRXhpc3RzKCRkZCkgVGhlbg0KICAgJGRkID0gU3Ry
aW5nVHJpbVJpZ2h0KCRkZCwgMSkNCiAgIElmIE5vdCBGaWxlRXhpc3RzKCRkZCkgVGhlbiBFeGl0
DQpFbmRpZg0KDQpSdW4oImM6XFd1dGlcVG90YWxDbWRcVE9UQUxDTUQuRVhFIC9PIC9TIC9SPSIg
JiAkZGQp
Many thanx!!
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

sanjkoc wrote:I had the same idea, but I wrote it in Autoit, I'm not a powershell guy :)
Just like I'm not an AutoIt guy. :D
I don't know PowerShell for too long but it is available on almost every PC now, and it has access to entire .Net, so it is nice.
sanjkoc wrote:If you want, here's my version (still very raw, indeed)
I have some notes regarding it:
1. Sometimes we don't want to lose our clipboard contents so it is better to avoid commands that copy names to it (command line parameters are good for that; there is also a way to get names from TC using WM_COPYDATA message, you can search for corresponding topics).
2. It is better to always quote path in TC command line like in my script (paths with spaces must be quoted).
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6450
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

MVV wrote:Horst.Epp,
When you press Ctrl+Left/Right inside archive, TC opens same archive in another panel, but not the folder where the real file is (e.g. real file is C:\dir\file.txt, file in archive is D:\archive.lst\dir\file.txt, and Ctrl+Left/Right opens D:\archive.lst\dir and not C:\dir).

sanjkoc,
Unfortunately WCX interface doesn't provide any way to tell where unpacked file is, plugin is only able to unpack file to a dir that TC specifies in unpack command (try to press F3 on any file and take a look on its path in Lister's title - it will be somewhere in temp directory). However since the format is simple, some third-party tool or script may be useful here (it will only need to get focused file path and find this file in archive in order to get its real path - only first list file line is required to get its root dir).

E.g. this simple script may be used for this task:

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="ddeGotoRealFile.cab"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ddeGotoRealFile.cab"

TVNDRgAAAACKAgAAAAAAACwAAAAAAAAAAwEBAAIAAABNQgAAdAAAAAEAAxWnAAAAAAAAAAAAR0il
tSAAZGRlR290b1JlYWxGaWxlLmJhdABxAgAApwAAAAAAR0jLtCAAZGRlR290b1JlYWxGaWxlLnBz
MQDWRawNDgIYA1uAgI0AEIIxAAADACQzAGAPZdDQ+icifE2ZbVcifxKiWcsWCo3dEEJJNbwY0O0p
d9rdSknvWf77IDAAAEgAwIoIALjAEldc4uJNhUvLILyF9Sz3Qs+gEmvc+pLJbjFlQbfA82CaOP9n
/////6H/AAAAAAAAGBkGAYp6vwb9fof5T2CIXYIivw7CWCY4tHdwy1XNFbCwdjVtW7tIegA4SZFT
0qLLTZOQJL1wRlOOUxgva4qGogUWEOSzL5IVw6Lch4W3fD2I42KWb4QHbnJnTDcUaeIYZPzErK5m
opfl8Oy3e7qloCN825Mx753U7Ypt5eWYLhkJOHj9AzR/gbSj/xQazDNrPJIvCO+RINnhaPUZFl9y
MBb92Q2SwsZx/IULgFLxbzvTb8pVzGxE0FVQzTGZVWQPMrwqllxjpEiG6anU8ocRQc2D9vAy+kBi
n+cQw4jI8W2WrmpsO+TDWqwdtc2NiIi5Y9bhK+aYlvtEkeV7vZ1C88Zwz98Fqkl5/RXlGrc8+h/6
YdTbF0H/BWgNw04URYL8aI0gZEKLrzp+blFfOAZ4sOOLG3oql5xwNc83E8r3eicTC2U6v5gQlf/E
e2nuWvtMdEeLv1ZnWXiyz9lgQzzJ35x7NEeytI2pP9JuwODkfDfLENPKUlPGxp7Gq867dvfNU1tV
KXyBF+Vz/puvHwJz1CnVS98fnSVVAJk=
Save this as ddeGotoRealFile.b64 and decode using TC decoder, then unpack to any folder and drag ddeGotoRealFile.bat to TC buttonbar. Finally set button parameters to %Z%P%N and set its option to start minimized. Optionally you can specify second argument with TC command line arguments (by default script will jump to real file from DDE archive in target panel of current TC instance), e.g.:

Code: Select all

Command: ddeGotoRealFile.bat
Parameters: %Z%P%N "/O /S /R={0}"
Start path:
Run minimized: yes
I suggest to add /A to the parameters.
Parameters: %Z%P%N "/O /S /A /R={0}"
Without it will change into archives and not to the archive in the file list.
sanjkoc
Junior Member
Junior Member
Posts: 20
Joined: 2004-07-13, 15:48 UTC
Location: Italy

Post by *sanjkoc »

MVV wrote:I have some notes regarding it:
1. Sometimes we don't want to lose our clipboard contents so it is better to avoid commands that copy names to it (command line parameters are good for that; there is also a way to get names from TC using WM_COPYDATA message, you can search for corresponding topics).
2. It is better to always quote path in TC command line like in my script (paths with spaces must be quoted).
Thank you for your notes. I completely agree with you, but I did the au3 quickly, just to see if it could work ;) Now I've to make it better.

You're too kind: the path in TC command line not quoted is really an error, sorry.

I studied WM_COPYDATA and also did something with it, but I can't honestly say I understand it 100% (or 23%..); my problem is that in the forum there're a lot of people that really master it, but nobody had (and took) the time to do a "WM_COPYDATA for dummies (with working samples in Autoit)" :)

I know there're dozens of post about it and I read them again and again, but there are ahk, ait, C++, Delphi, VB.NET samples, not always working: a big chaos in my head... but, hey, I'm one of the dummies!

Thanx again. Ciao!
AJC (#62576)
Skif_off
Member
Member
Posts: 132
Joined: 2013-09-30, 13:13 UTC

Post by *Skif_off »

2sanjkoc
Try script for example

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="GoTo2.au3.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="GoTo2.au3.zip"

UEsDBBQAAAAIAFaXSUhvBALuXAQAAAYJAAAJAAAAR29UbzIuYXUztVVbj9JAFH4n4T+MFWyr7G7B
S1TUiMVbAiyBGqLuhtQyLk1KS9ohXv6fiS9qNP6AilS7sHQX0KjRRM9MC4V1Nb7Yh87MmXP5znfO
zORfeQfe7tRHfTR0p+4oeL8xRJ/c3dEM+R/ZZG2y70+GLhJOrhsOEZOJPEKgPQ76wS7qD0fuYOjR
tecOp35/DMJ9d+yNfFDMSdlz61JuXbqQTCQTxzUnmVA2lUJJLhePXyvUjhcLSiGZ4NKFHrFukzSH
uLS8WS4XKsXrtWa1oNxKb90huqETHTtbNy3Fyq2rvdNcMpG+l66mK8nEI62ja5bprLcMI5NLJtbQ
xgZa+yPyv3inANeyFCRmWCuWYqtPboNzutzsEoFv6GZD1UkRG+oTPoOykiTSvZuG9UA1kAwwCEo1
yk15s3qXZoYuI+mxJJ2BFEuWBiqptiJn4N8wW1XVhplTLdH1Dd3AdFXSTTZWVdKmnm8/RCm506Li
+9I2unQFZZHSxoAIwVd2dq5Zj4Uz59EpdEa6cC6D+AVFPCxeDscBevMaCoPG7u7AGwfHeDE0vf5Y
J8nEdbN1+yGNk3/+zdtDQaTvo2D/wBt4o58gHHiT4YG/Pw32UDgBNgejn2gpTfBJE4NsgaCbmNxS
zZaBBf6+XCrU6xcVVvEmlHwbwtOcrmLbtuz/kEnYRoCijomiEwBxta7ZepdU1A4GgznzK1APac3Z
6LsjfzD+Ds08m/5A0ZEIG2oGnqBy4KXZrGPV1tolhwiLSmW3qZNXwWj2xQVHzL6PmKUHlqzaYEuH
zS42hbALpJCbxfbaEaWOuHn51X83dCkxL7x+8HEv+AD0BNPhwXeIRHEijkcnWHfBwHNHcsW6bY6j
hlWGXQjDg37YhLBdJ7Zu7tRw11A1vJzkvH2Zo7+YhGIAu7XF0z9Fk382GfkM6kZ06aDJ7Js3mfZn
3hTO7z7cSZ+Dgb9HOWEIAbtDnMiZuERNU5GbWqupWZ0OFFPgIcYiYl2hwa4bDv63Pnu7BIhxGLli
LMbdR5svPjw3eqa22gjdiO/o0KtVBonJ6GrBUL1r6FSdsrIRFQk0QYGqAcWh5AaclZQOwhxSLLYj
0Z3oA34qFjnEEQW8BfiZdkrfjgmLvxomPduMkEXfnKr4Y84uU29Hyef+4z1GS7is4Mdhu1GGYJ2/
fPnKEk9z7g5XMGUAXexyvGGoOwhi86t8OnKoSWkyIMerco1masNPbtsNQRJhFlqv2HXlIsQAq6Jh
QAF6GpFtrBIscFpbte9zYBXWpQSHchFFPIWysMNtc+Ihb1b3SVEl6lEOe4Zl7jS7xM63Hll2Kw+z
yDzWhTuKmgsRLnhPMnFuf1KOwzL9gqMJvMyL0M+5s+fQyVBQ5MV/sc9l4n24C+v6UzwH80/2p1ft
q8Q+wlxWDQP4cLB9OkcfaS6DON0kdKhjs1XGjqPu4AZdtx+ZLRjpWzJXWnlOQfioq9pqh1t+Qzkj
lP0OJsYqiof7cLXnkolfUEsBAj8AFAAAAAgAVpdJSG8EAu5cBAAABgkAAAkAJAAAAAAAAAAgAAAA
AAAAAEdvVG8yLmF1MwoAIAAAAAAAAQAYACeEPV5KY9EBSgRskEVj0QFKBGyQRWPRAVBLBQYAAAAA
AQABAFsAAACDBAAAAAA=
Russian comments, sorry.

P.S. My help file: internal, user-defined and CD commands.

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="_full.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="_full.zip"

UEsDBBQAAAAIABO3SUjf8RSM8wIAAKQJAAAJAAAAX2Z1bGwuYXUz1VZta+JAEP4u+B+WIE28vqVq
76BSuBBrW9BWTA452iLbZKqBdRN2N2jv199sopcYryB3LdzlQ15mnnl29smTIdcsfqaMuDGXijQm
w6l7P/rec3yHXBJ7Zdsdp17bwfguwoZD566Xozrtdr1WrzXmvouBScSvQd1QHjKwzAd34Hjehe/f
+85g6g57T2ZTQyc8HFGB8OkNor1ARIkaiThY1zUzwsgduvFigSEEtjq2TbrBYjpMmYrGwOkC+hED
iUB5VQKasJjqhPfKA09hjLKYg6lhTKfdi0cfFsmjSbqEwYvSCVFNiGg2zzJ5l6avgx45JhFXIBIB
ShI1B5JQKSEkYSQkoZLIOBUBnCoqZqAQKxXQkMQv2UKnGWmX+EgTJ8CrDJZsYgnhsCSKPuPTiVZB
y427DvL9WSVRmnkSiuRGiCIZhKUkOyK4VTzpXWUSd8nlex6a8FYLxNEw63XrtX7KA1LdRtEmwaPH
mEsZs4xUgmi3TkLGjCNioNj6MoqlGoKUdAb6cb7kIV613zaYii8xvEyooAvMbFbCGNvEbFz2ioe6
sQ/R4Bvu4jiEl4hDWNFh541tCzGIA5Sukfyys5bGUyINlCuAKrCMYE7Fg0EOCIYjPhsAL7EckjPM
GE/GDl/y2qOK/o4wxe9jNk2U6IbLWIRdvFuXF1gPlC63kGkj55k20vrpLXixcIZ3ZGCZV2aTHJLW
+WfyKQ8MzeY+9a2jIq9nRvQDinb2YmhvM4yUKBHs5UQPeLh24mTXimmG2pqjZSdupl7hxN1+inab
H+xRt1dxZnVc6GmRDYs+ozM9A81tT8nCow2GpvvqjvHcEHhy52Ji2U28y6srXuzhGv+is3Vff+5r
t+rr3l/5WjezV/2uqzfl7+Hp/8fSmvaN34m1Dg3pR4oBOsXIIfivMkZEvMjiRo7qx4I0YgSdET8m
X/JgufzgUhvcyiste9VBB9irc2cj9x2sVH7npCq+1avge8tqrTXHGjkGlQpe+mUqEIVUPwFQSwEC
PwAUAAAACAATt0lI3/EUjPMCAACkCQAACQAkAAAAAAAAACAgAAAAAAAAX2Z1bGwuYXUzCgAgAAAA
AAABABgACHPRmWtj0QFVq65wa2PRAVWrrnBrY9EBUEsFBgAAAAABAAEAWwAAABoDAAAAAA==
sanjkoc
Junior Member
Junior Member
Posts: 20
Joined: 2004-07-13, 15:48 UTC
Location: Italy

Post by *sanjkoc »

2Skif_off
Thank you! Thank you very much! Спасибо! Grazie!

I like your files, just what I needed!
May I somewhere see other autoit scripts of yours (even not TC related)? I see there's a lot to learn :)

I was just playing with WM_COPYDATA in TC, to get the pathname of file under caret (without using %P %N...) and (thanx ZoSTeR!) I came out with this.

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="TC_GetD.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="TC_GetD.zip"

UEsDBBQAAgAIAJiySUhxsijWNgIAAGEGAAALAAAAVENfR2V0RC5hdTO1VFFv2jAQfkfiP1guasKa
TRS2PYx1UpZQVglG1GRDUzVFHvEoknGQ7Qx+/s52AiFlGw8rDyG5+7677853breG6OKOL1iRUfR+
/OUuyLlUhCs52r0ixeBDu3Wxqtwx5dmUSkmWtPS1W7ONch3gzfjoF+VqmmfU8dB1V/vGLP9BGOo8
gv/wJaj6SlhBNcK40A3SiQUlirpOQqVygA6me7pcSUXFVC7d3q7Xe+17yJkVIr0t+CL9mYt0Pk2D
WfQt9BPfMSlTwPaTwMVxhMEAySSEr+U8AD7vAZc3x6oA8jHfuT0P3xaMoYioR07WFHsaJq22kDKq
KHJNBSb18OV//LVbukZUqe1sxDrI12vCMygH+7hru5cE8Dlf8TFVn8DHqIsfgokfx++SZJb4kzSY
ht9Nndk2JIoA2pcLF49xF12h/pu36IU1mIgdttGgCeWAi5VY8SW815MfQIAIGQNQsVDl0eHFIxEP
GF2iWqArdA0GbETsCTFV2u+WOJgXaO2pLJES9URQJlgqmoZJK6CcgVOism0usqF9bpQ4reM4jNVj
O3YWvO/VSj6LMdgzoCBdCEg7VUVV8TFfE4gQ91QVQp9VWttMV0+Fh6p9MfOpu3uIb2ZnxDM9Yc8z
tn/aUdA25xmoWcFcw982IoKsdSvMix1qYaraN+OcM61HKPnh3EwpQo1u2uM4zmHvq9I4iQ478G9i
v0l8OrGniYMmsSH16U415e03y0NNBWVsc6H9RY3FV7f180zEb1BLAQIUABQAAgAIAJiySUhxsijW
NgIAAGEGAAALAAAAAAAAAAEAIAAAAAAAAABUQ19HZXRELmF1M1BLBQYAAAAAAQABADkAAABfAgAA
AAA=
Please, feel free, if you want, to tell me if it's ok, or there's a better way, or whatever you think about it ;)
Ciao
Skif_off
Member
Member
Posts: 132
Joined: 2013-09-30, 13:13 UTC

Post by *Skif_off »

2sanjkoc
TC_GetD.au3 not work with AutoItx64, but it's probably not problem. I use x86+x64, dwData='G'+256*'W' (Unicode) and a slightly modified functions:

Code: Select all

Func _Msg2TC($prmCommand = "LP")
    $hTC = WinGetHandle("[CLASS:TTOTAL_CMD]")
    $dwData = Asc("G") + 256 * Asc("W")
    $lpDataLen = StringLen($prmCommand)
    $lpData = DllStructCreate("char[" & $lpDataLen + 1 & "]")
    DllStructSetData($lpData, 1, $prmCommand)
    $lpDataPtr = DllStructGetPtr($lpData)
    $structCOPYDATA = DllStructCreate("ulong_ptr;dword;ptr")
    DllStructSetData($structCOPYDATA, 1, $dwData)
    DllStructSetData($structCOPYDATA, 2, $lpDataLen)
    DllStructSetData($structCOPYDATA, 3, $lpDataPtr)
    $ptrCOPYDATA = DllStructGetPtr($structCOPYDATA)
    $arrReturn = DllCall("user32.dll", "int", "SendMessageW", "hwnd", $hTC, "uint", $WM_COPYDATA, "wparam", $hGUI, "lparam", $ptrCOPYDATA)
EndFunc

Func Our_Func_for_WM_COPYDATA($hWnd, $iMsg, $wParam, $lParam)
    $returnCOPYDATA = DllStructCreate("ulong_ptr;dword;ptr", $lParam)
    $returnDWData = DllStructGetData($returnCOPYDATA, 1)
    $returnLPDataLen = DllStructGetData($returnCOPYDATA, 2)
    $returnLPDataPtr = DllStructGetData($returnCOPYDATA, 3)
    $returnLPData = DllStructCreate("wchar[" & $returnLPDataLen + 1 & "]", $returnLPDataPtr)
    $retValue = DllStructGetData($returnLPData, 1)
EndFunc
There are ZoSTeR's examples on AutoIt in some boards (AutoHotkey is more popular), my AutoIt skills are not very large: it's just a small scripts for convenience :) If it can be useful, for example (but Russian comments, sorry).
sanjkoc
Junior Member
Junior Member
Posts: 20
Joined: 2004-07-13, 15:48 UTC
Location: Italy

Post by *sanjkoc »

2Skif_off
Many thanks! You're my hero! :) Very kind and helpfull.

Now I've a lot to study, but it's what I was asking for.
And I've to improve my Russian, I already can count to five, but may not be enough :)

Thanks also to all the people of the forum who takes the time to help other people.

Поехали!
AJC (#62576)
Post Reply