#C| שתי פקודות מורכבות - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

#C| שתי פקודות מורכבות


perperz

Recommended Posts

התכנות הוא בקונסול.

הפקודה הראשונה היא שברגע שהתהליך של Explorer יפעל, קוד: [pre] System.Console.WriteLine("bla bla bla");[/pre] שם התהליך של Explorer הוא iexplorer.exe.

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

תודה רבה לעוזרים smile.gif

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

תגדיר ברגע ש...

אם לא אכפת לך שיהיה delay של כמה שניות, אתה יכול לבדוק את רשימת ה-processes שרצים בעזרת לולאה פשוטה ו-timer thread שיקרא כל כמה שניות.

לגבי השניה:


MailMessage mail = new MailMessage();
mail.To = email;
mail.From = "you@yourcompany.com";
mail.Subject = "this is a test email.";
mail.Body = "this is my test email body";
SmtpMail.SmtpServer = "localhost"; //your real server goes here
SmtpMail.Send( mail );

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

יש לי שגיאת הרצה בנוגע לאימייל. הינה הקוד:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Diagnostics;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// משתנים לסיסמה //
ConsoleKeyInfo cki;
string pass = "";
string confirmpass = "";
// התחלת התוכנה - מסך פתיחה //
System.Console.WriteLine(" OOOOOOOOO RRRRRRR PPPPPPPP EEEEEEEE RRRRRRR EEEEEEEE ZZZZZZZZZZ");
System.Console.WriteLine(" OOOOOOOOO RR RR PPP PPP EEE RR RR EEE ZZZZ");
System.Console.WriteLine(" OOO OOO RRRRRRR PPP PPP EEE RRRRRRR EEE ZZZZ");
System.Console.WriteLine(" OOO OOO RRRR PPPPPPP EEEEEEEE RRRR EEEEEEEE ZZZZZ");
System.Console.WriteLine(" OOO OOO RR RRR PPP EEE RR RRR EEE ZZZZ");
System.Console.WriteLine(" OOOOOOOOO RR RRR PPP EEE RR RRR EEE ZZZZ");
System.Console.WriteLine(" OOOOOOOOO RR RRR PPP EEEEEEEE RR RRR EEEEEEEE ZZZZZZZZZZ");
System.Console.WriteLine("");
System.Console.WriteLine("");
System.Console.WriteLine(" Type: Console Application");
System.Console.WriteLine(" Program Langue: C#");
System.Console.WriteLine(" Created By: Or Perez");
System.Console.WriteLine(" Softwate State: Beta");
System.Console.WriteLine(" Created At: 25.08.2011");
System.Console.WriteLine(" The Date Today Is:");
System.Console.WriteLine("");
System.Console.WriteLine("");
System.Console.WriteLine("If You Want To Enter The Software, You Must Create An Account First.");
System.Console.WriteLine("");
System.Console.WriteLine("Username:");
string username = Console.ReadLine();
System.Console.WriteLine("");
System.Console.WriteLine("Password:");
do // נפתח ההסוואה של הסיסמה //
{
cki = Console.ReadKey(true);
Console.Write("*");
pass += cki.KeyChar;
} while (cki.Key != ConsoleKey.Enter);
Console.WriteLine(); // נסגר ההסוואה של הסיסמה //
System.Console.WriteLine("");
System.Console.WriteLine("Confirm Password:");
do // נפתח ההסוואה של האימות סיסמה //
{
cki = Console.ReadKey(true);
Console.Write("*");
confirmpass += cki.KeyChar;
} while (cki.Key != ConsoleKey.Enter);
Console.WriteLine(); // נסגר ההסוואה של האימות סיסמה //
if (pass == confirmpass)
{ // if (pass == confirmpass) נפתח //
System.Console.WriteLine("");
System.Console.WriteLine("Passwords Are Match.");
System.Console.WriteLine("");
System.Console.WriteLine("Email:");
string email = Console.ReadLine();
System.Console.WriteLine("");
System.Console.WriteLine("Verify Email:");
string verifyemail = Console.ReadLine();
if (email == verifyemail) // if (email == verifyemail) נפתח //
{ // תוכן התוכנה //
System.Console.WriteLine("");
System.Console.Write("Emails Are Match");
System.Console.WriteLine("");
System.Console.WriteLine("");
System.Console.WriteLine("A Verification Mail Is Being Sent To Your Email.");
System.Console.WriteLine("The Operation Might Take Few Minutes.");
System.Console.WriteLine("Please Verify It By Using Explorer.");
// שליחה של האימייל //
// בדיקה של התהליך iexplorer //
// במידה והתהליך פועל התוכנה ממשיכה, במידה ולא התוכנה לא עושה כלום //
System.Console.WriteLine("");
System.Console.WriteLine("Those Are Your Details, Please Write Them Down.");
System.Console.WriteLine("Username:");
System.Console.Write(username);
System.Console.WriteLine("");
System.Console.WriteLine("Password:");
System.Console.WriteLine(pass);
System.Console.WriteLine("Email:");
System.Console.WriteLine(email);
System.Console.WriteLine("");
} // סיום התוכנה //
else if (email != verifyemail)
{ // else if (email != verifyemail) נפתח //
System.Console.WriteLine("");
System.Console.WriteLine("Email Verification Failed");
} // else if (email != verifyemail) נסגר //
} // if (pass == confirmpass) נסגר //
else if (pass != confirmpass) // אם הסיסמה שונה מהאימות //
{ // else if (pass != confirmpass) נפתח //
System.Console.WriteLine("Passwords Verification Failed.");
} // else if (pass != confirmpass) נסגר //
System.Console.Read();
}
}
}

אשמח אם תסביר לי איך לשלב את שליחת האימייל בתוך הקוד.

(הדגשתי את המקום בו אני רוצה שהאימייל ישלח)

אוקיי לא הצלחתי להדגיש אבל הינה הקטע שצריך כדי להבין:

System.Console.WriteLine("A Verification Mail Is Being Sent To Your Email.");

System.Console.WriteLine("The Operation Might Take Few Minutes.");

System.Console.WriteLine("Please Verify It By Using Explorer.");

// שליחה של האימייל //

// בדיקה של התהליך iexplorer //

// במידה והתהליך פועל התוכנה ממשיכה, במידה ולא התוכנה לא עושה כלום //

System.Console.WriteLine("");

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

טוב הסתדרתי האימייל. תודה רבה :)

אבל אחי, אתה יכול להסביר לי איך עושים את זה:

"אם לא אכפת לך שיהיה delay של כמה שניות, אתה יכול לבדוק את רשימת ה-processes שרצים בעזרת לולאה פשוטה ו-timer thread שיקרא כל כמה שניות."?

תודה מראש =]

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

אוקיי הצלחתי חלק

הינה הקוד:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Diagnostics;
using System.Net;
using System.Net.Mail;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Process[] processlist = Process.GetProcesses();
foreach (Process theprocess in processlist)
{
if (theprocess.ProcessName == "iexplore")
System.Console.WriteLine("bla bla bla");

}
Console.Read();
}
}
}

עכשיו יש 2 בעיות קטנות.

א) השורה בלה בלה חוזרת על עצמה פעמיים. יכול להיות שזה בגלל שיש את אותו תהליך פעמיים?

ב) הפונקציה רצה רק פעם אחת, ואני רוצה שהיא תחזור על עצמה. איך אני עושה זאת?

תודה מראש

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

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

תכלס מה שמעניין אותך זה לדעת שיש או שאין iexplorer.exe ברשימת תהליכים.

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

לכן אתה יכול לשנות את הקוד שלך ללולאת while והתנאי הוא כל עוד לא מצאת (עדיף משתנה בוליאני) וכל עוד לא הגעת לסוף רשימת התהליכים.

דרך נוספת היא להשתמש בפקודה break שיוצאת מהלולאה.

לדעתי נכון יותר להשתמש בלולאת while כי כשאתה מגדיר לולאת foreach יש כאן אמירה מרומזת שאתה משהו על כל אובייקט במערך שזאת לא הכוונה שלך פה.

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

שים לב שבדרך כלל הזמן הוא במילי שניות ולכן כדי להגדיר שניה אתה רושם 1000

כשאתה יוצר את האובייקט אתה מגדיר מה ה interval (כל כמה זמן הוא יפעל)

ומה הוא יעשה (פוינטר לפונקציה - או איך שלא קוראים לזה ב#C)

ואז מפעיל אותו עם ()tick או ()start.

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

אינלי מושג איך אני עושה טיימר.

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

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

תודה לעוזרים :)

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

ארכיון

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

×
  • צור חדש...