cyberia2ooo
New member
עטיפה לcommand line
אני רוצה לכתוב תוכנית שתספק לי עטיפה לcommand line תחת windows הדרך שלי, עד עכשיו, הייתה ליצור פרוסס של cmd.exe ופשוט לכוון את הstdout שלו ואת הstdin שלו לpipeים שלי, בעזרת קביעה של הערכים המתאימים בSTARTUPINFO של CreateProcess הבעיה הנוצרת היא כדלקמן: 1. קודם כל, תכניות כמו ftp הסטנדרטי שמגיע על כל מערכת, ודברים כמו תוכניות שנכתבו בפרל ומורצות בעזרת ActiveState יוצרות בעיות כשהן מחכות לinput (בכלל הftp לא נותן לי את אותו ההדר שהוא נותן לי כשאני מריץ אותו מcmd רגיל, וכשאני מכניס לו input הוא מתעלם מזה. תוכנות בפרל פשוט מתעלמות מהinput לגמרי, ומתנהגות כאילו הכנסתי מידע ריק) אבל דברים כמו nslookup שגם הם אינטרקטיבים, או edlin עובדים לי יפה מאד. 2. שזה היה יותר מצופה, כשאני מקיש על מקשים כמו Z^ או C^ התוכנית יוצאת. עכשיו זה מובן לחלוטין למה זה, אך רציתי לדעת אם יש דרך להתעלם מזה. אני יודע שאם הייתי משתמש בAPI של windows לConsole פונקציות כמו AllocateConsole וWriteConsoleInput וReadConsoleOutput הכל היה עובד כמו שצריך. אבל זה היה יוצר Console חדש... וזה לא מה שאני רוצה. אני רוצה בחלון טקסט פשוט להראות את הConsole, ובאותה הזדמנות לשמור לוג של כל הסשן. בקיצור, הAPI של Consoleים לא מתאים לי.... למישהו יש הצעות?
אני רוצה לכתוב תוכנית שתספק לי עטיפה לcommand line תחת windows הדרך שלי, עד עכשיו, הייתה ליצור פרוסס של cmd.exe ופשוט לכוון את הstdout שלו ואת הstdin שלו לpipeים שלי, בעזרת קביעה של הערכים המתאימים בSTARTUPINFO של CreateProcess הבעיה הנוצרת היא כדלקמן: 1. קודם כל, תכניות כמו ftp הסטנדרטי שמגיע על כל מערכת, ודברים כמו תוכניות שנכתבו בפרל ומורצות בעזרת ActiveState יוצרות בעיות כשהן מחכות לinput (בכלל הftp לא נותן לי את אותו ההדר שהוא נותן לי כשאני מריץ אותו מcmd רגיל, וכשאני מכניס לו input הוא מתעלם מזה. תוכנות בפרל פשוט מתעלמות מהinput לגמרי, ומתנהגות כאילו הכנסתי מידע ריק) אבל דברים כמו nslookup שגם הם אינטרקטיבים, או edlin עובדים לי יפה מאד. 2. שזה היה יותר מצופה, כשאני מקיש על מקשים כמו Z^ או C^ התוכנית יוצאת. עכשיו זה מובן לחלוטין למה זה, אך רציתי לדעת אם יש דרך להתעלם מזה. אני יודע שאם הייתי משתמש בAPI של windows לConsole פונקציות כמו AllocateConsole וWriteConsoleInput וReadConsoleOutput הכל היה עובד כמו שצריך. אבל זה היה יוצר Console חדש... וזה לא מה שאני רוצה. אני רוצה בחלון טקסט פשוט להראות את הConsole, ובאותה הזדמנות לשמור לוג של כל הסשן. בקיצור, הAPI של Consoleים לא מתאים לי.... למישהו יש הצעות?