עבור לתוכן

sendkeys בג'אווה

Featured Replies

פורסם

שלום

שמעתי אל איזהשהי פונקציה שנקראת SENDKEYS שזה ךמעשה גורם לתוכנה לדמות לחיצה של מקש על המקלדת

הנושא הזה מאוד מעניין אותי אבל מצאתי מדריכים אליו שנוגעים רק בויסואל בייסיק ואני רוצה לדעת איך עושים את זה בג'אווה

אני תלמיד כיתה יא מתחיל אז לא להעמיס יותר מדי ולהסביר בעדינות 8)

תודה

פורסם

בג'אווה זה קל מאוד הייתי אומר

תשתמש ב class בשם Robot

אפשר איתה לשלוח קלט עם המקלדת והעכבר

פורסם
  • מחבר

תסביר עוד.... אין לי מושג מה אמרת ואיך ליישם את זה

יעזור מאוד אם תכתוב לי את כל התוכנית וזהו :P

אני פשוט רוצה תוכנה שנגיד אני אומר לה להקליד J אז היא פשוט מקלידה את זה כמו המקלדת...

ולא סתם מציגה לי על המסך

אלא לוחצת

תודה

מה זה בכלל ROBOT?

פורסם

אתה צריך ללמוד איך משתמשים באתר של סאן ;)

בכל מקרה, הנה הדף של Robot:

http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html

והנה תכנית דוגמא:

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class RobotTest {

/**
* @param args
* @throws AWTException
* @throws InterruptedException
*/
public static void main(String[] args) throws AWTException, InterruptedException {
// TODO Auto-generated method stub
Robot rbt = new Robot();
Thread.sleep(3000); // give time to check in notepad or w/e
// output robot
rbt.keyPress(KeyEvent.VK_R);
rbt.keyPress(KeyEvent.VK_O);
rbt.keyPress(KeyEvent.VK_B);
rbt.keyPress(KeyEvent.VK_O);
rbt.keyPress(KeyEvent.VK_T);
rbt.keyRelease(KeyEvent.VK_R);
rbt.keyRelease(KeyEvent.VK_O);
rbt.keyRelease(KeyEvent.VK_B);
rbt.keyRelease(KeyEvent.VK_O);
rbt.keyRelease(KeyEvent.VK_T);

}

}

פורסם
  • מחבר

שמע העתקתי את התוכנה שלא בנית לי והיא לא כותבת לי "ROBOT" בתוך הפנקס רשימות...

זה מה שזה אמור לעשות לא?

הפעלתי אותה (באקליפס) ואז עברתי לפנקס רשימות ולא קרה כלום

עריכה:

אוקיי זה עובד!!!

עכשיו בוא נתקדם שלב קדימה!

דבר ראשון אני רוצה לשלב מספר

כלומר שזה יקליד מספר

עכשיו.... אני לא רוצה להגיד לו אותו מראש

אלא לעשות לולאה ושיקליד כל פעם את המונה של הלולאה

זאת אומרת שאם הלולאה תלך מ1 עד 10 הוא יקליד

12345678910

אה ודרך אגב תודה רבה רבה!

פורסם

אפשר בסדר 0123456789 ככה:

for(int i = KeyEvent.VK_0; i <= KeyEvent.VK_9; i++) {
rbt.keyPress(i);
rbt.keyRelease(i);
}

לעשות בסדר אחר, כמו שאמרת למשל צריך דרך אחרת

הדבר היחיד שעולה לי בראש עכשיו זה מערך עם סדר בנוי מראש של 1234567890

פורסם
  • מחבר

תודה אתה עוזר לי מאוד מאוד אבל אני עדיין לא מצליח לעשות משהו

אני רוצה שכל פעם אני אקרא מספר בין 0 ל 9 ואז התכנית תדפיס אותו

מה שניסיתי לעשות זה לקחת את הטקסט שעשית ולמחוק את הלולאה ולעשות סתם לדוגמא בתוך התוכנית I=5 אבל זה

לא הדפיס אותו כי מחקתי את הI+KEYEVENT משהו ורק אז הבנתתי שזה חשוב

אז בקיצור איך אני עושה את זה?

לקרוא מספר ואז להקליד אותו

פורסם

אתה מתכוון למשהו כזה?

		System.out.println("Enter a 0-9 number");
int i = (int) System.in.read();
rbt.keyPress((i+KeyEvent.VK_0));
rbt.keyRelease((i+KeyEvent.VK_0));

פורסם
  • מחבר

משום מה הוא שם לי קו אדום מקווקו מתחת לביטוי int i = (int)System.in.read(); או יותר נכון מתחת ל System.in.read

עריכה : תיקתנתי את זה

עשיתי פשוט READER.nextINT וזה עובד ככה

תודה רבה!! עזרת לי מאוד

אם יהיו לי בעיות אני אדבר איתך

אם אתה עדיין מוכן לעזור כי לא חירפנתי אותך כבר

תודה

פורסם

תעשה ככה:

במקום -

public static void main(String[] args) {

תכתוב

public static void main(String[] args) throws Exception {

אם עוד לא למדת על Exceptions בג'אווה פשוט תכתוב את זה ותבין יותר מאוחר...

עריכה:

אני בסדר בינתיים :silly:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים