תוכנה להחזרת קבצים ש"נעלמו" ע"י וירוס - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

תוכנה להחזרת קבצים ש"נעלמו" ע"י וירוס


eido300

Recommended Posts

שלום לאחרונה נתקלתי שוב בווירוס שמעלים תיקיות וקבצים מdok, המון אנשים לא יודעים שבשביל להחזיר את הקבצים למצבם הקודם צריך פקודה קצרה בcmd (attrib) אז בניתי תוכנה שעושה את זה במקומם.

בעיקרון התוכנה פשוטה רק כמה שורות קוד.

אבל בכל זאת אשמח לדעת אם יש בה בעיה כלשהיא

זה הקוד:

  private void button1_Click(object sender, EventArgs e)        {
string lineToCmd =string.Format("/c attrib -s -h -r /d /s {0}*.*",textBox1.Text);
if (textBox1.Text!= null)
{
ProcessStartInfo psi =new ProcessStartInfo ("cmd.exe");
psi.WindowStyle= ProcessWindowStyle.Hidden;
psi.Arguments=lineToCmd;
Process.Start(psi);
}


}

זה החלק העיקרי בקוד, בtextbox מכניסים את האות של הdok +:\ (הוא לא נותן לי להכניס את התו \ בתוך מחרוזת...)

זה מצרף את מה שהכניסו לשורה lineToCmd וזה מועבר לcmd בתור ארגומנט.

יש כאן משהו לא בסדר? אולי צריך איכשהו לשחרר משאבים או משהו כזה?

קישור לתוכן
שתף באתרים אחרים

להריץ CMD על כל קובץ זה פעולה סקריפטית המתאימה לVBS או BATCH. לא לתכנות.

מה זה dok? ומה הקלט שמתקבל בtextBox?

זה בC#?

קח אפשרות פשוטה יותר:

void ChangeAtrr(string path){
var dir = new DirectoryInfo(path);


foreach (var folder in dir.GetDirectories())
{
folder.Attributes &= ~FileAttributes.ReadOnly;
folder.Attributes &= ~FileAttributes.System;
}


foreach (var file in dir.GetFiles())
{
file.Attributes &= ~FileAttributes.ReadOnly;
file.Attributes &= ~FileAttributes.System;
}
}

קישור לתוכן
שתף באתרים אחרים

סיבכתם את הצורה עם הקודים.

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

אם יש בעיה בכונן E לדוגמא, אז להפעיל את e.bat

פשוט מאד ומוצלח.

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

קישור לתוכן
שתף באתרים אחרים

להריץ CMD על כל קובץ זה פעולה סקריפטית המתאימה לVBS או BATCH. לא לתכנות.

מה זה dok? ומה הקלט שמתקבל בtextBox?

זה בC#?

קח אפשרות פשוטה יותר:

void ChangeAtrr(string path){
var dir = new DirectoryInfo(path);


foreach (var folder in dir.GetDirectories())
{
folder.Attributes &= ~FileAttributes.ReadOnly;
folder.Attributes &= ~FileAttributes.System;
}


foreach (var file in dir.GetFiles())
{
file.Attributes &= ~FileAttributes.ReadOnly;
file.Attributes &= ~FileAttributes.System;
}
}

א. האמת לא הכרתי את זה, יפה חידשת לי...

ב.dok זה disk on key.

ג.הקלט זה האות שמסמל את הdok, זה משתלב במחרוזת של הattrib, וככה המחשב יודע על איזה כונן לעשות את זה.

ד.כן זה ב#c...

- - - תגובה אוחדה: - - -

סיבכתם את הצורה עם הקודים.

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

אם יש בעיה בכונן E לדוגמא, אז להפעיל את e.bat

פשוט מאד ומוצלח.

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

אם תפתח את הקובץ הזה בתור קובץ טקסט (פשוט תשנה את הסיומת לtxt, אני מניח שאתה יודע את זה אבל אני רוצה להיות בטוח) תראה שזה עושה בערך את אותה פעולה כמו שהתוכנה שלי עושה, רק שאני כתבתי את זה ב#c, והם בשפה אחרת (אין לי מושג איזה).

קישור לתוכן
שתף באתרים אחרים

אני לא צריך לשנות שום סיומת, פשוט קליק ימני ו-EDIT, אבל אני מניח שאתה יודע את זה אבל אני רוצה להיות בטוח.

,

רק שהפקודה היא מאית ממה שאתה רשמת, פשוטה ועושה את העבודה.

אלו פקודות דוס סטנדרטיות, פעם אחרונה שבדקתי.

קישור לתוכן
שתף באתרים אחרים

אני לא צריך לשנות שום סיומת, פשוט קליק ימני ו-EDIT, אבל אני מניח שאתה יודע את זה אבל אני רוצה להיות בטוח.

,

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

רק שהפקודה היא מאית ממה שאתה רשמת, פשוטה ועושה את העבודה.

אלו פקודות דוס סטנדרטיות, פעם אחרונה שבדקתי.

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

גם אני צירפתי את מה שבניתי, נראה לי יותר ידידותי, אתה מוזמן להעיף מבט.

קישור לתוכן
שתף באתרים אחרים

חיפשתי את זה ולא מצאתי משהו שיכול להועיל לי (לפחות לא בתוצאות הראשונות).

ההודעת שגיאה היא Unrecognized escape sequence

חיפשתי גם את זה ולא מצאתי משהו שעוזר לי.

התו הזה משמש גם בשביל לאתחל קוד יוניקוד במשתנה מסוג char כמו שכתוב כאן, ניסיתי לעשות בדיוק כמו שבהדגמה ועדין מופיעה השגיאה.

קישור לתוכן
שתף באתרים אחרים

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

קישור לתוכן
שתף באתרים אחרים

נתקלתי בוירוס הזה פעם.

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

אז הרצתי חיפוש מהיר בגוגל ומייד מצאתי את התשובה.

ופשוט הרצתי שורת ATTRIB אחת פשוטה והכל חזר.

קישור לתוכן
שתף באתרים אחרים

נכון, אבל יש המון אנשים שלא יודעים לא איך לעשות את זה ולא איך לחפש את זה בגוגל, ובשבילם (והאמת גם כי שיעמם לי ובגלל שהמון זמן לא תרגלתי את #C) החלטתי לבנות את התוכנה הזאת.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...