please take a look to a code below:
Code: Select all
var
key_event: tcefkeyevent;
str: widestring;
q: integer;
begin
str:='super.login_myusername';
key_event.focus_on_editable_field := 1;
key_event.modifiers := GetCefKeyboardModifiers(ord(str[q]), 0000000);
for q := 1 to length(str) do
begin
FillChar(key_event, SizeOf(tcefkeyevent), 0);
key_event.kind := KEYEVENT_KEYDOWN;
key_event.character := str[q];
key_event.windows_key_code := ord(str[q]);
key_event.native_key_code := 0000000;
action_browser.browser.Host.SendKeyEvent(@key_event);
FillChar(key_event, SizeOf(tcefkeyevent), 0);
key_event.kind := KEYEVENT_CHAR;
key_event.character := str[q];
key_event.windows_key_code := ord(str[q]);
key_event.native_key_code := 0000000;
action_browser.browser.Host.SendKeyEvent(@key_event);
FillChar(key_event, SizeOf(tcefkeyevent), 0);
key_event.kind := KEYEVENT_KEYUP;
key_event.character := str[q];
key_event.windows_key_code := ord(str[q]);
key_event.native_key_code := 0000000;
action_browser.browser.Host.SendKeyEvent(@key_event);
end;
end;
1. Completely ignore a dot char (.) and few more chars like #$%^&*( , but send fine a chars like ! and @, for example.
2. When the char "y" occurs in string, it hangs: I have to click to the field manually, then it continues to send the rest keys after "y".
What am I doing wrong? Thanks in advance for answers!