GithubHelp home page GithubHelp logo

Comments (10)

rsify avatar rsify commented on September 26, 2024 1

robot.typeString('!@#$%^&*()') returns 1234567890 on windows, probably related.

from robotjs.

octalmage avatar octalmage commented on September 26, 2024

There's always a way! Thanks for bringing this to my attention. I'll look into it when I get some time.

from robotjs.

octalmage avatar octalmage commented on September 26, 2024

I looked into this for a few minutes and I believe the issue is in keypress.c. I'm curious if this is an issue on Windows though. I'll update when I have more time to test.

from robotjs.

octalmage avatar octalmage commented on September 26, 2024

Uh oh! That's silly.

from robotjs.

Deltatiger avatar Deltatiger commented on September 26, 2024

I will check this out on windows when I have the time.

from robotjs.

octalmage avatar octalmage commented on September 26, 2024

The Windows issue mentioned by @nikersify was fixed in #110.

from robotjs.

amaramth avatar amaramth commented on September 26, 2024

https://github.com/octalmage/robotjs/blob/master/src/keypress.c#L224 typeString prints one byte at a time; probably that's a utf8 string & any characters outside of ascii take more than one byte; it needs to handle this.

I'd love to get this fixed, but I don't know enough C to send a good pull request. I'm sure I could hack together something bad that works, though - would that help?

from robotjs.

giacomocerquone avatar giacomocerquone commented on September 26, 2024

Same problems here!
Let's try to explain it better. Let me point out that all the problems, bugs or whatever have been tested on Windows 10.

The exact problem reported from @nikersify is not present anymore. Point is that maybe the fix didn't include the keyTap function. In fact if I execute robot.keyTap('!'); it prints "1", it should be very easy, I think that the same fix used for typeString must be used over keyTap.
I would fix it by myself and submit a PR if I only be good in C... but the functions seem a bit complex to me so I trust in you 😄 @octalmage

Then skipping to the acceented words, there is a strange and inconsistent behavior between typeString and keyTap. Both of them don't work, but if I write robot.typeString('à'); and execute the script, it does nothing (it doesn't print "à" nor an error) but if I write robot.keyTap('à'); and execute, I get this:

robot.keyTap('�'); // That is an unknown char for the console and it's marked by an empty square
      ^

Error: Invalid key code specified.
    at Error (native)
    at Object.<anonymous> (C:\Users\test.js:5:7)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:456:32)
    at tryModuleLoad (module.js:415:12)
    at Function.Module._load (module.js:407:3)
    at Function.Module.runMain (module.js:575:10)
    at startup (node.js:160:18)
    at node.js:445:3

from robotjs.

amoshydra avatar amoshydra commented on September 26, 2024

Hi,

is sending Chinese character related to this issue? Chinese character doesn't work with robot.typeString on my Windows 10 machine.

I notice that keypress.c is using keybd_event to simulate keypress.

However, I have stumbled upon a question on stackoverflow about sending unicode with c++ on Windows.

It seems to suggest that sendInput should be used instead of keybd_event for sending unicode.

from robotjs.

dexmendonca avatar dexmendonca commented on September 26, 2024

Same bug on Linux

from robotjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.