סימולציה של ctrl c בC#

zag78

New member
סימולציה של ctrl c בC#

אני מוסר היום פרוייקט ללקוח שחלקו בדוט נט, אך עדיין נותר לי איזה באג:
בCMD רץ איזה תהליך שמחכה ללחיצה על ctrl c. אני צריך לכתוב בc# קוד ש"ישכנע" את הcmd שלחצו על הקונטרול C.

למעשה יש פונקציה סטטית פשוטה של מחלקת System.Windows.Forms.SendKeys בשם SendWait
והשימוש שלה הוא ;("SendKeys.SendWait("^C

הבעיה שהVS מסרב להכיר במחלקה הזאת. (למעשה הוא אפילו סירב להכיר בSystem.Windows.Forms, אם כי את זה הצלחתי להוסיף דרך add references)

יש לכם פיתרון?
 

Royi Namir

New member
מה זה מסרב להכיר ??

תבדוק הרשאות לתיקיות שים EVERYONE FULL CONTROL
יכול ליות שהוא מכיר וכשהוא בא לעדכן משו - יש שגיאת FILESYSTEM.
 
SendKey לא יעזור לך באפליקציה שקומפלה ל-console app

אלא אם תטרח לפתוח message pump ולהאזין לו (זה אפשרי, אך מיותר).
התשובה השנייה שקושרה מעלי מ-SO נכונה *למעשה*, אבל שגויה *בעקרון* כיוון ש:
1. שליחת CTRL+C *אינה* שקולה לסגירת stdin. אילו פעולות שונות שיכולות במקרים רבים להביא לתוצאה זהה.
2. מהיכן ההנחה הסמויה שהתהליך הזה שוגר מתוך הקוד שלך ע"י System.Diagnosrics.Process? גם אם כן, מהיכן ההנחה ש-IO redirection מהווה אופציה?

נסה לעבוד עם InputSimulator. גוגל יעזור לך.
 
למעלה