hamid_73
چهارشنبه 06 فروردین 1393, 09:02 صبح
سلام دوستان من می خوام یه پروژه بسازم که بتونه تعداد صفحاتی که پرینت شده رو بفهمه و کنترل کنه که از یه تعدادی بیشتر نشه و نمی خوام که مجبور باشم همه تنظیمات پرینتر رو به برنامم اضافه کنم (مثل تعیین نوع صفحه و ....)
برا همین می خوام کاربر هر فایلی رو که خواست با کنترل پراکسس ران کنه و پرینت بگیره
من میخوام برنامم در بک گراند کار کنه و مدام صف پرینتر رو چک کنه و تعداد صفحاتی که پرینت میشه رو به دست بیاره و به کاربر نمایش بده
منظورم این نیست که مثلا بگه صفحه 1 از 10 منظورم اینه که صب کنه تا پرینت صفحات تموم بشه بعد بگه که چند تا صفحه پرینت بشه.
پروژه اصلی من برای یه دانشگاهه که می خوان دانشجو ها بتونن یه تعداد صفحه رو به صورت رایگان چاپ کنند و بعد از اون پولی چاپ کنن من تمامه کاراش رو کردم فقط مشکلم شمردن تعداد صفحات پرینتره من خیلی از راه ها رو امتحان کردم هیچ کدومشون به دردم نخورد شما دوستان اگه راه حله بهتری دارین که مجبور نباشم صفحات پرینت شده رو بشمارم خیلی ممنون میشم که راهنمایی کنین مرسی:قلب:
یکی از راهایی که با دوسته خوبم sohil_ww (http://barnamenevis.org/member.php?274781-sohil_ww) رفتم و فکر کنم شاید بشه یه کاری روش انجام داد، این روشه زیره ولی به خاطر حلقه بی نهایتی که مدام باید بره صف رو چک کنه مشکله بزرگی شده برام
این لینکه کلاسش
لینک (http://dl.esfandune.ir/images/4yw5skptu9n7j2boecp9.rar)
این کد رو تو کنترل بکگراندورکر نوشتم.
دوستان خواهش می کنم کمک کنین این پروژه خیلی برام مهمه
int text = 0;
while (true)
{
Print obj = new Print();
if (obj.NUMBEROFPAGE > 0)
{
text = obj.NUMBEROFPAGE;
MessageBox.Show(text.ToString());
ConnectionString();
OpenConnection();
using (cmd = new SqlCommand("INSERT INTO tbl_Rep(ID, Countt, Date) VALUES (@ID, @Countt, @Date)", conn))
{
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@ID", lbl_ID.Text);
cmd.Parameters.AddWithValue("@Countt", text.ToString());
cmd.Parameters.AddWithValue("@Date", Class.Public_Class.Date_Shamsi());
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("ذخیره شد");
}
Thread.Sleep(5000);
}
برا همین می خوام کاربر هر فایلی رو که خواست با کنترل پراکسس ران کنه و پرینت بگیره
من میخوام برنامم در بک گراند کار کنه و مدام صف پرینتر رو چک کنه و تعداد صفحاتی که پرینت میشه رو به دست بیاره و به کاربر نمایش بده
منظورم این نیست که مثلا بگه صفحه 1 از 10 منظورم اینه که صب کنه تا پرینت صفحات تموم بشه بعد بگه که چند تا صفحه پرینت بشه.
پروژه اصلی من برای یه دانشگاهه که می خوان دانشجو ها بتونن یه تعداد صفحه رو به صورت رایگان چاپ کنند و بعد از اون پولی چاپ کنن من تمامه کاراش رو کردم فقط مشکلم شمردن تعداد صفحات پرینتره من خیلی از راه ها رو امتحان کردم هیچ کدومشون به دردم نخورد شما دوستان اگه راه حله بهتری دارین که مجبور نباشم صفحات پرینت شده رو بشمارم خیلی ممنون میشم که راهنمایی کنین مرسی:قلب:
یکی از راهایی که با دوسته خوبم sohil_ww (http://barnamenevis.org/member.php?274781-sohil_ww) رفتم و فکر کنم شاید بشه یه کاری روش انجام داد، این روشه زیره ولی به خاطر حلقه بی نهایتی که مدام باید بره صف رو چک کنه مشکله بزرگی شده برام
این لینکه کلاسش
لینک (http://dl.esfandune.ir/images/4yw5skptu9n7j2boecp9.rar)
این کد رو تو کنترل بکگراندورکر نوشتم.
دوستان خواهش می کنم کمک کنین این پروژه خیلی برام مهمه
int text = 0;
while (true)
{
Print obj = new Print();
if (obj.NUMBEROFPAGE > 0)
{
text = obj.NUMBEROFPAGE;
MessageBox.Show(text.ToString());
ConnectionString();
OpenConnection();
using (cmd = new SqlCommand("INSERT INTO tbl_Rep(ID, Countt, Date) VALUES (@ID, @Countt, @Date)", conn))
{
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@ID", lbl_ID.Text);
cmd.Parameters.AddWithValue("@Countt", text.ToString());
cmd.Parameters.AddWithValue("@Date", Class.Public_Class.Date_Shamsi());
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("ذخیره شد");
}
Thread.Sleep(5000);
}