עבור לתוכן

לקחת מיקום של תקייה שפתוחה C#

Featured Replies

פורסם

שלום חזרתי עם עוד שאלות מעצבנות אבל אני יודע שתענו לי :silly: חחח

יש דרך לקחת מיקום של תקייה שפתוחה קשה לי להסביר אז אני פשוט יביא דוגמא

נגיד פתוח אצלי במחשב תקיית הווינדוס בכונן C

אז אני יכול בדרך כל שהיא להציב ערך המשתנה STRING כל שהוא C:\Windows ?

בC# שחכתי לכתוב

פורסם

תוסיף את השפה לכותרת.

כן, זה אפשרי, אבל לא טריוויאלי. השאלה היא למה אתה רוצה לעשות את זה, כי סביר להניח שיש דרך יותר טובה לעשות מה שאתה רוצה.

פורסם
  • מחבר

אני עכשיו לומד את השפה C# ואני יודע את הבסיס אז אני חושב כל פעם על נושאים שמעניינים אותי או רעיונות לתוכנות ולפי זה לומד חומר בC#

עכשיו אני רוצה לעשות תוכנה לתקרא מהזכרון איזה קובץ פתוח ואז תגיד את המיקום שלו למשל קרום פתוח אז איפה התקייה שלו....

זה בשביל ללמוד להתעסק עם זכרון RAM

פורסם

מה? לא הבנתי מילה ממה שכתבת, ויתרה מכך לא הבנתי מה הקשר בין זה לשאלה המקורית שלך.

פורסם
  • מחבר

foreach (Process p in Process.GetProcesses())

ככה אני מקבל את כל התהליכים שעובדים עכשיו אני רוצה מיקום של כל קובץ

למשל מופיע לי Chrome*32.exe אז אני רוצה לדעת את המיקום של CHROME

פורסם

אז תחפש את Process ב-MSDN, תקרא את התיעוד שלו ואת הפונקציות שהוא מספק וככה תוכל לשלוף את המידע שתרצה.

פורסם
  • מחבר

[size=78%]foreach (Process process in Process.GetProcesses())[/size]
{
stringlPath = process.Modules[0].FileName;
MessageBox.Show(Path);
}






עשיתי ככה יש לך דרך יותר טובה?
ואיך אני גורם להשאיה נגיד של 3 שניות ואז ימשיך את הקוד?

פורסם

אם זה עובד לך זה פתרון סבבה.

השהיה מבצעים עם הפונקציה Thread.Sleep.

פורסם
  • מחבר

משום מה אחרי כמה תהליכים זה נתקע ומראה ארור

Additional information: A 32 bit processes cannot access modules of a 64 bit process.

אז יש לך פתרון חלופי?

פורסם

אכן, פה:

http://stackoverflow.com/questions/5497064/c-how-to-get-the-full-path-of-running-process

מסבירים שתהליכי 32 ביט לא יכולים לגשת למידע על תהליך 64 ביט. אתה יכול לקמפל את הפרוייקט שלך ל-64 ביט, או לחילופין להשתמש בשיטה האחרת שמוצעת בלינק שנתתי (שהיא קצת יותר מורכבת אבל הם טוענים שהיא תמיד תעבוד).

פורסם
  • מחבר

הפקודה GetProcessHowever לא קיימת אצלי אז שניתי את זה ל64BIT אבל זה אומר שזה יעבוד רק על מערכות? של 64BIT

פורסם

ה-GetProcessHowever זה סתם דוגמה, זה לא פונקציה אמיתית. התכוונתי לקוד שבהמשך, עם ה-WMI.

וכן, אם זה 64bit אז זה יעבוד רק על מערכות 64bit, אבל מצד שני על מערכות 32bit לא קיימת הבעיה הזו, כי אין אף יישומי 64bit אחרים. לכן במקרה כזה בונים את התוכנה שלך פעמיים - אחת עבור מערכות 32 ואחת עבור מערכות 64.

פורסם
  • מחבר

אתה יכול להסביר לי מזה VAR מזה WMI

ארכיון

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

דיונים חדשים