Opened 15 years ago
Last modified 15 years ago
#1083 closed Bug
ClipPut Function bug or limitation-from ticket 1043 — at Version 6
Reported by: | sistemas@… | Owned by: | Jon |
---|---|---|---|
Milestone: | 3.3.1.4 | Component: | AutoItX |
Version: | 3.3.0.0 | Severity: | Blocking |
Keywords: | clipboard ClipPut setclipboard characters length limitation | Cc: |
Description (last modified by Valik)
[from ticket 1043-more explanation]
If you put more than 127 characters into clipboard, this function fail and the clipboard is clear.
For understand this. The ClipPut function returns 0 (not a failure code), but the content of the clipboard is flushed, so the clipboard is empty after using ClipPut with a string with more than 127 characters.
I don't know why but I try with a string with {TAB},{CR}, and {LF} characters in this string.
I try with version 3.3.0 and beta version 3.3.1.1 and both have the same problem.
I don't know if this is a new limitation. But I think that the clipboard function must support 65535 chars at least.
But with version 3.2.12.1 this work fine and you can put into clipboard text with more than 127 characters.
So I must to put back the 3.2.12.1 version until this problem is fixed.
This happen with the 32bits version of the dll: AutoItX3.dll
Running under Windows 2003 R2 SP2 server.
If this can help...
Regards,
Ricky
if sTexto.value has more than 127 characters:
Clip.ClipPut sTexto.value FAIL!!! clipput flush the clipboard (empty)
Clip.ClipPut CStr(sTexto.value) FAIL!!!
Clip.ClipPut left(sTexto.value,128) FAIL!!!
Clip.ClipPut left(sTexto.value,127) WORK FINE
This is the script that fail:
sub main ' ***************************************************** ' * This script need AutoItX3.dll ' * ' * Download and extract from: ' * http://www.autoitscript.com/autoit3/downloads.shtml ' * ' * ' * Copy to: ' * C:\WINDOWS\system32\ ' * ' * register with command: ' * regsvr32.exe "C:\WINDOWS\system32\AutoItX3.dll" ' ***************************************************** on error resume next err.clear Set Clip = CreateObject ("AutoItX3.Control") 'verify if DLL is missing or unregister if err.number <> 0 then msgbox "Se requiere AutoItX3.dll para copiar al portapapeles con la funcion 'SetClipboard'!" & vbcrlf & "Consulte al administrador...", vbCritical, "Error!" else 'double check for errors copyerror = Clip.ClipPut(sTexto.value) copyerror = copyerror + Clip.error if copyerror = 0 then returnvalue = true else returnvalue = false msgbox "Error#" & copyerror & " al copiar al portapapeles con AutoItX3.dll!" & vbcrlf & "Consulte al administrador...", vbCritical, "AutoItX3.dll version " & Clip.version & " error!" end if 'verify if the content of the string was copy to the clipboard if Clip.ClipGet = sTexto.value then returnvalue = true else returnvalue = false msgbox "Hubo un error al copiar al portapapeles con AutoItX3.dll!" & vbcrlf & "Consulte al administrador...", vbCritical, "AutoItX3.dll version " & Clip.version & " error!" end if Set Clip = nothing end if on error goto 0 end sub
END OF THE SCRIPT *
example of the failure
input variable:sTexto.value
len(sTexto.value)=431
sTexto.value="Descripcion: RENOLIN SC 68 - Tambor x 205
Codigo: 100233 - T2
Densidad: 0,869
Unidad de Medida: Litro
Envase: Tambor
Capacidad: 205 LTS
Tipo de Envase: TAMBOR ORIGINAL
Peso Neto: 178,14 KGR
Peso Bruto: 196,14 KGR
Número ONU: 1268
Carga IMO:
Pos. Arancelaria: 2710.19.32.900Z
PROVEEDORES:
2710.19.32.900Z ALEMANIA FUCHS EUROPE SCHMIERSTOFFE GMBH "
Change History (7)
Changed 15 years ago by sistemas@…
comment:1 follow-ups: ↓ 2 ↓ 5 Changed 15 years ago by sistemas@…
I try to reopen the Ticket 1043 but I can't, so I create a new one.
comment:2 in reply to: ↑ 1 Changed 15 years ago by Ricky Valdivia <sistemas@…>
Perhaps the problem is the regional settings or unicode.
I use Spanish-Argentina for all, including non-unicode.
Wrong component selected in the ticket!!'''
Switch to AutoItX
comment:3 follow-up: ↓ 4 Changed 15 years ago by Ricky Valdivia <sistemas@…>
I really believe it's a unicode problem or definition type of the variables in AutoItX.dll
I test this:
1.) Run CLIPBRD.exe to see the clipboard in live.
2.) copy a lot of plain text to the clipboard, about 3000 chars.
3.) in debugging mode, test this sentence: Clip.ClipPut(Clip.ClipGet)
after that, the first 4 characters of the clipboard was replaced with this Unicode characters:
chrW(376)+chrW(2751)+chrW(376)+chrW(2751)+[rest of the clipboard]
in OEM Text this is similar to this:
chr(159)+chr(63)+chr(159)+chr(63)+[rest of the clipboard]
This is very strange, but I think is useful to detect the failure.
comment:4 in reply to: ↑ 3 Changed 15 years ago by Ricky Valdivia <sistemas@…>
Repeating the test:
1.) Copy to the clipboard the content of the example above (sTexto.value="Descripcion...")
2.) Running again Clip.ClipPut(Clip.ClipGet)
flush/empty the clipboard again.
comment:5 in reply to: ↑ 1 Changed 15 years ago by Valik
Replying to sistemas@…:
I try to reopen the Ticket 1043 but I can't, so I create a new one.
I guess you're too stupid to realize you can still add comments to a closed ticket?
Go read WikiStart. Now, before you even bother replying. It's perfectly clear you haven't read it because you've done a number of very annoying things that are covered by WikiStart.
comment:6 Changed 15 years ago by Valik
- Component changed from AutoIt to AutoItX
- Description modified (diff)
- Owner set to Jon
notepad++ display of the string example content