עינת אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 03 September 2009 בשעה 20:45 | | IP רשוּם
|
|
|
|
שלום לכולם, יש לי קוד שאמור להריץ תוכנה כלשהי במחשב (QHOCR, זהו שם התוכנה) הקוד אמור לפתוח את התוכנה, לגשת אל ה open שלה, להעלות מסמך אותו התוכנה תבדוק, ואז לשמור את תוצאת הבדיקה, ולסגור את התוכנה. (בגדול - זוהי תוכנה לזיהוי תווים בתמונה או בדף סרוק, שמחזירה כפלט דף טקסט עם התווים שזיהתה)
מה שהקוד כרגע מבצע הוא לפתוח את התוכנה, וזה הכל. יש לי 2 בעיות עיקריות. 1. ניסיתי להגדיר Timer שימתין 10 שניות אחרי הרצת התוכנה (Process.start), ורק אז יחפש את החלון של התוכנה (FindWindow). במקרה והוא לא מוצא את חלון התוכנה, יופיע MessageBox עם ההודעה - "QHOCR is not running". והבעיה היא: הקוד אמנם מריץ את התוכנה אבל מיד אחרי שהתוכנה נפתחת מופיע בכל זאת ה - MessageBox עם ההודעה - "QHOCR is not running", ואחרי שאני סוגרת את ה - MessageBox שקפץ , הוא מופיע שוב (בכל 10 שניות הוא מופיע, כלומר - לא הגדרתי נכון את ה Timer.. כפי הנראה, וכן כנראה יש לו בעיה עם זיהוי התוכנה שפתח.. כי ה MessageBox אמור להופיע רק אם הוא לא מצא את החלון הנדרש)
2. כמו שכתבתי קודם, אני רוצה אחרי שהתוכנה נפתחת, להגיע אל ה open שלה (שזה אפשר בעזרת Ctrl+o) ואז לכתוב את מסלול המסמך לבדיקה, לפתוח אותו לתוכנה, ולשמור אותו... בקיצור - - SendKeys. - איך אני משתמשת בזה? אני יודעת מה הפקודה הנדרשת, למשל: ;("{SendKeys.Send("{ALT , אבל לא קורה מאומה בתוכנה, משום מה... (בנוסף, איך אני שולחת Ctrl + אות מסויימת, נניח)
שאלה אחרונה - לאחר הכל אני רוצה לסגור את התוכנה. איזו פקודה עושה את זה? (סגירת Process)
תודה על הכל, ומקווה שהבעיות היו מובנות - עינת
** הקוד מופיע בתגובה הבאה
|