Development :  K-Meleon Forum
K-Meleon development related discussions. 
Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: July 25, 2007 03:08AM

Is there a way to send keystrokes (like Crtl-A, Crtl-C or Ctrl-Alt-รน)?

With utils (I prefer, because it handles also a wait function) , or luamacros or macros.

I need it for a macro.

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr





Edited 1 time(s). Last edit at 07/25/2007 03:08AM by JujuLand.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: Dorian
Date: July 25, 2007 06:52PM

Why do you want to do that?

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: July 25, 2007 09:02PM

To be able, when launching a macro to check spell, to mark all (the textbox) copy to the clipboard (I know that for that I have an ID command), and call an external spell checker (tinyspell+ here).

I shall try to see how it's made this function under Firefox2 (chrome + components ?)

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr




Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: kko
Date: July 25, 2007 10:46PM

Spellcheck{
id(ID_EDIT_SELECT_ALL);
id(ID_EDIT_COPY);
# call external spellchecker
# when finished (result in clipboard):
id(ID_EDIT_PASTE);
}

setmenu(TextPopup,macro,"Check spelling",Spellcheck);


What for do you want to send keystrokes?

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: July 25, 2007 11:11PM

Yes, but I ought to call automaticly the external spell checker.

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr




Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: kko
Date: July 26, 2007 01:33AM

Hmm, I guess that's a bit too complicated for a macro since the job isn't done by sending the keystrokes to the spell checker - you have to give feedback to the user highlighting misspelled words somehow and offering corrections. Don't know how you want to do that with a macro...

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: July 26, 2007 02:41AM

Something like this:

Mark all (macro)
Copy (macro)
Call an external tool (macro)
Create a special mark for macro (external tool)
Wait for macro mark ok (macro)
Call External Spell checker (external tool)
Paste in Spell checker (external tool)
Create a special mark for
Correction (Spell checker)
copy all (Spell checker)
modify mark for macro (tool)
End of tool
Mark all (macro)
Paste (macro)
End of macro.

In fact the big problem is how to wait for end spell checker job, and how to wait for end of tool (not to paste immediatelly)

I haven't say it's easy, but perhaps ...

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr




Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: mark307
Date: July 27, 2007 09:17PM

Perhaps WSH can do that. Here's bogus code.

-- macro
id(ID_EDIT_SELECT_ALL);
id(ID_EDIT_COPY);
# Spellchecker must return in 10secs.
pluginmsg(utils, "exec", "wscript spell.js", -1);
id(ID_EDIT_PASTE);
-- jscript
var shell = WScript.CreateObject("WScript.Shell");
shell.Run("tinyspell.exe");
WScript.Sleep(500);
shell.AppActivate("tinyspell");
WScript.Sleep(100);
shell.SendKeys("^v");
WScript.Sleep(3000);
shell.SendKeys("^c");

However, this concept is very weak because fixed wait and user interruption. The better solution is to use a spellcheck library and to embed into the browser. Are there FF extentions?
Thanks.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: July 28, 2007 02:31AM

You're right, it would be better to have it embed in the browser.

I'll look at the way Firefox do it.

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr




Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: erica
Date: August 02, 2007 07:07AM

I am really sorry,But is not the k-meleon attractive?
I want you to get along well with Mr(Mis) hao for me.
Should have been able to make splendid browser together.
Will it be difficult?
If there is an opportunity see you again.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: www_ngtech_gr
Date: August 17, 2007 02:08AM

I have implemented the idea presented here in Autoit (since it can easily manipulate windows & send keystrokes & mouse clicks) and produced an working Aspell spell checking macro for K-Meleon :
Spell checking macro for K-Meleon using Autoit & Aspell.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: September 03, 2007 11:18PM

@ www_ngtech_gr

I have test it, but I prefer not to use external tool (when possible). Look at what I've done.

@ mark307,

I have implemented a new aspell version that works without needing an external tool to wait for the end of the operation.

But I always have 2 problems with coding:

Just one can be treated under K-Meleon: the output used OEM format, and I need a EncodeOEM2UTF8 function.

I have found a source which can be simplificated and adapted to make this function.

If you can see it. Here is the C source:

-----------------------------------------
/* ========================================================================== */
/* */
/* oem2ansi.c */
/* (c) 2001 Author */
/* */
/* Description */
/* */
/* ========================================================================== */

#include <stdio.h>
const wchar_t cp437uni[128]={ /* 0x80..0xFF */
0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,
0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5,
0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9,
0x00FF,0x00D6,0x00DC,0x00A2,0x00A3,0x00A5,0x20A7,0x0192,
0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA,
0x00BF,0x2310,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB,
0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x03BC,0x03C4,
0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229,
0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,
0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0};

const wchar_t cp1252uni[32]={ /* 0x80..0x9F */
0x20AC,0x0020,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
0x02C6,0x2030,0x0160,0x2039,0x0152,0x0020,0x017D,0x0020,
0x0020,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
0x02DC,0x2122,0x0161,0x203A,0x0153,0x0020,0x017E,0x0178};

void put_utf8(wchar_t c) {
/* Code <0x10000 <0x800 <0x80
1. Byte 1110 xxxx 110x xxxx 0xxx xxxx
2. Byte 10xx xxxx 10xx xxxx
3. Byte 10xx xxxx */
if (c<0x80) {
putchar(c);
}else if (c<0x800) {
putchar((c>>6)|0xC0);
putchar(c&0x3F|0x80);
}else{
putchar((c>>12)|0xE0);
putchar((c>>6)&0x3F|0x80);
putchar(c&0x3F|0x80);
}
}

/* with no command-line argument, convert CP437 to UTF8,
with one (dummy) command-line argument, put this program to a "guess mode",
with two (dummy) command-line arguments, inverse guessing reaction,
returns 1 if OEM2UTF converted, 2..4 if ANSI2UTF converted,
2..3 if plain ASCII, 0 if not converted but Windows UTF8 header stripped,
-1 if conversion from UCS16 to UTF8 (Windows UCS16 header stripped too) */
int main(int argc) {
int c;
c=getchar();
if (c==0xEF) { /* Windows UTF8 header */
getchar(); /* skip 0xBB */
getchar(); /* skip 0xBF */
argc=0; /* don't convert */
}else if (c==0xFF) { /* Windows UCS16 header */
getchar(); /* skip 0xFE */
argc=-1; /* convert special */
}else goto inloop;
while (1) {
c=getchar();
inloop:
if (c==EOF) break;
if (argc<0) { /* UCS16 Intel */
c|=getchar()<<8;
}else{
if (c>=0x80) {
if (argc==2) {
if (c>=0xA6 && c!=0xE1) argc=4; /* ANSI, force convert */
else argc=1; /* OEM, force convert */
}else if (argc==3) {
if (c>=0xA6 && c!=0xE1) argc=1;
else argc=4;
}
if (argc==1) c=cp437uni[c-0x80];
if (argc==4 && c<0xA0) c=cp1252uni[c-0x80];
}
}
if (argc) put_utf8(c);
else putchar(c);
}
return argc;
}
--------------------------------------------------------------------------

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr





Edited 1 time(s). Last edit at 09/03/2007 11:21PM by JujuLand.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: mark307
Date: September 05, 2007 10:00PM

@JujuLand
I guess, because the EncodeUTF8 function doesn't work fine in 1.1, EncodeOEM2UTF8 doesn't too. As I wrote on other topic, a string in macro is already UTF8. A plugin can't control it.

I made sure that ID_EDIT_COPY copied characters by Unicode (UCS2?) and ANSI. ANSI format doesn't contain accents on mine. And so getclipboard statement can't get accents. This code didn't show accents on mine.
id(ID_EDIT_SELECT_ALL);
id(ID_EDIT_COPY);
$__data=getclipboard();
alert($__data);

regards,

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: September 05, 2007 11:40PM

If you're right, the only solution is to have the file to read in utf8 format directly to have it ok.

In this case the only solution is to modify this code to take entry from a file instead of keyboard and to put corrected strings in a file.

I'll try to do it.

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr




Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: Hao Jiang
Date: September 06, 2007 11:22PM

Sending keystroke to macros is good ideal, I suggest we can use this to bind some keystroke to mouse gestures, like page up or page down.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: September 07, 2007 02:18AM

I was not no more thinking here to what you say, even I had thougth of it and I agree with you it would be interesting.

In fact now, there is a problem with string which is saved by Aspell in OEM format and which ought to be in utf8 format for K-Meleon, and as the conversion functions seems not to work, I said I will do the conversion before returning to K-Meleon, in the batch.

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr





Edited 1 time(s). Last edit at 09/07/2007 02:41AM by JujuLand.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: mark307
Date: September 07, 2007 09:49PM

@JujuLand
If you can see characters with accent in a file outputted by aspell, it might be solution that copying texts the file to the clipboard directly by an external program. I think there is some such tools.

Thanks.

Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: JujuLand
Date: September 08, 2007 12:13AM

It's not exactly what I thought to do, I thought to convert with a tool (the source I found, but modified).

A+


Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:31.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/75.0

Web: http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr




Options: ReplyQuote
Re: Function needed in utils, or luamacros, or macros.
Posted by: shahabi
Date: October 06, 2007 11:15AM

hello
I Want to convert an arabic 8bit text to 16 bit text that can be decode with
mobile .
please help me.
thankyou

Options: ReplyQuote


K-Meleon forum is powered by Phorum.