PDA

View Full Version : مبتدی: نمایش یک متن بصورت متحرک روی دسکتاپ



sard69
شنبه 30 آبان 1394, 22:53 عصر
سلام دوستان میخام یه برنامه ای بنویسم که طبق عکس زیر یه متن به صورت متحرک رو دسکتاپ نشون.

ممنون میشم راهنمایی کنین از کجا شروع کنم.
136953

AmiN0012
شنبه 30 آبان 1394, 23:59 عصر
از timer استفاده کن.
کد زیر ی نمونه از حرکته.str متن شما میباشد که در متغیر ذخیره هست.در رویداد tick تایمر بنویسید.

if (index == str.Length + 1)
{
timer1.Interval = 200;
index = 0;
label1.Text = "";
}
label1.Text = str.Substring(0, index);
index++;
if (index == str.Length + 1)
{
timer1.Interval = 2000;
}

محمد رضا فاتحی
یک شنبه 01 آذر 1394, 07:38 صبح
از timer استفاده کن.
کد زیر ی نمونه از حرکته.str متن شما میباشد که در متغیر ذخیره هست.در رویداد tick تایمر بنویسید.

if (index == str.Length + 1)
{
timer1.Interval = 200;
index = 0;
label1.Text = "";
}
label1.Text = str.Substring(0, index);
index++;
if (index == str.Length + 1)
{
timer1.Interval = 2000;
}

دوست عزیزم...سوالشون رو بادقت بخونید...روی دسکتاپ خواسته بودن نه لیبل!


سلام دوستان میخام یه برنامه ای بنویسم که طبق عکس زیر یه متن به صورت متحرک رو دسکتاپ نشون.

دوست عزیزم...راستش متحرکش رو خبر ندارم!! ولی یه تابع برات می نویسم که یه متن ثابت رو روی دسکتاپ نشون می ده...نمی دونم میشه بهینش کرد یا نه...


[DllImport("user32")]
internal static extern IntPtr GetDC(IntPtr hwnd);


[DllImport("User32.dll")]
internal static extern void ReleaseDC(IntPtr dc);
public void PaintRectangleToScreen()
{
IntPtr deskDC = GetDC(IntPtr.Zero);
Graphics g = Graphics.FromHdc(deskDC);
Font font = new Font("2 Jadid", 35, FontStyle.Bold);
DrawStringOnCenter(g, "شرکت نرم افزاری آبتین استار", font, new Point(0, -25), "blue");
}


یکم کد رو تغییر بدی حتی می تونی عکس رو هم روی دسکتاپ بزاری...فقط یه نکته.... متن عکس و هر تغییری که روی دسکتا با این تابع اعمال بشه موقت و با یه رفرش از بین میره:ناراحت:

sard69
یک شنبه 01 آذر 1394, 11:08 صبح
دوست عزیزم...سوالشون رو بادقت بخونید...روی دسکتاپ خواسته بودن نه لیبل!



دوست عزیزم...راستش متحرکش رو خبر ندارم!! ولی یه تابع برات می نویسم که یه متن ثابت رو روی دسکتاپ نشون می ده...نمی دونم میشه بهینش کرد یا نه...


[DllImport("user32")]
internal static extern IntPtr GetDC(IntPtr hwnd);


[DllImport("User32.dll")]
internal static extern void ReleaseDC(IntPtr dc);
public void PaintRectangleToScreen()
{
IntPtr deskDC = GetDC(IntPtr.Zero);
Graphics g = Graphics.FromHdc(deskDC);
Font font = new Font("2 Jadid", 35, FontStyle.Bold);
DrawStringOnCenter(g, "شرکت نرم افزاری آبتین استار", font, new Point(0, -25), "blue");
}


یکم کد رو تغییر بدی حتی می تونی عکس رو هم روی دسکتاپ بزاری...فقط یه نکته.... متن عکس و هر تغییری که روی دسکتا با این تابع اعمال بشه موقت و با یه رفرش از بین میره:ناراحت:




سلام ممنون فقط این خط رو خطا میگیره
DrawStringOnCenter(g, "شرکت نرم افزاری آبتین استار", font, new Point(0, -25), "blue");
متودش رو پیدا نمیکنه :ناراحت::ناراحت::ناراحت:

محمد رضا فاتحی
یک شنبه 01 آذر 1394, 11:50 صبح
شرمنده

private void DrawStringOnCenter(Graphics g, string str, Font font, Point offset,string color)
{
SizeF size = g.MeasureString(str, font);
// g.DrawString("sfdsfsdf", font, Brushes.Red, new PointF(23, 33));
//g.DrawString(str, font, Brushes.Blue,new PointF((Screen.PrimaryScreen.Bounds.Width - size.Width) + offset.X,(Screen.PrimaryScreen.Bounds.Height - size.Height) + offset.Y));
if (color == "red")
{
g.DrawString(str, font, Brushes.Red, new PointF((Screen.PrimaryScreen.Bounds.Width - size.Width) + offset.X, (25) + offset.Y));
}
else
{

g.DrawString(str, font, Brushes.Blue, new PointF((Screen.PrimaryScreen.Bounds.Width - size.Width) + offset.X, (25) + offset.Y));

}
}

pbm_soy
دوشنبه 02 آذر 1394, 00:12 صبح
نمیدونم هدف اصلی شما چی است؟ ولی نکته ای یادم افتاد بدنیست بگم
شما یک فایل html را میتوانید به عنوان زمینه دسک تاپ قرار دهید حالا میتوانید از تگ marquee هم برای متحرک کردن متن یا هرچیز دیگر در دسک تاپ اسستفاده کنید
اگر هدف نوشتن برنامه باشد هم میتوانید برنامه ای بنویسید که یک فایل متنی با پسوند htm ایجاد کنید و داخلش تگهای html را ذخیره کنید بعلاوه متن یا هرچیزی که کاربر برای تحرک داده و سپس فایل را در فولدر wallpaper ویندوز کپی کنید و آنرا به عنوان زمینه دسک تاپ مشخص کنید

sard69
دوشنبه 02 آذر 1394, 08:54 صبح
نمیدونم هدف اصلی شما چی است؟ ولی نکته ای یادم افتاد بدنیست بگم
شما یک فایل html را میتوانید به عنوان زمینه دسک تاپ قرار دهید حالا میتوانید از تگ marquee هم برای متحرک کردن متن یا هرچیز دیگر در دسک تاپ اسستفاده کنید
اگر هدف نوشتن برنامه باشد هم میتوانید برنامه ای بنویسید که یک فایل متنی با پسوند htm ایجاد کنید و داخلش تگهای html را ذخیره کنید بعلاوه متن یا هرچیزی که کاربر برای تحرک داده و سپس فایل را در فولدر wallpaper ویندوز کپی کنید و آنرا به عنوان زمینه دسک تاپ مشخص کنید
سلام دستتون درد نکنه.
هدف من یه اطلاع رسانی عمومی روی کامپیوتر های شبکه هست مثه عکسی که گذاشتم.
چطوری html رو میشه به عنوان پس زمینه دسکتاپ ویندوز7 گذاشت؟؟

elec60
دوشنبه 02 آذر 1394, 09:13 صبح
اين کار با WPF خيلی راحت قابل انجام هست.
کافيه یه Window با بک گراند Transparent بسازيد و خاصيت AllowTransparency رو هم True کنيد و يه Lable و يا TextBlock روی Window قرار بدين و با Animation (مثلا DoubleAnimation و يا DoubleAnimationUsingKeyFrames) بدون نياز به Timer انيميشن ايجاد کنيد...

کارهايي ميتونيد انجام بدين که تو ويندوزفرمز خوابشم نميشه ديد. برای مثال ميتونيد کل انيميشنهای مربوط به متن موجود در PowerPoint رو بسازيد!

mohammadali10
دوشنبه 02 آذر 1394, 09:35 صبح
سلام دوست من
میتونی فرمت رو به حالت شیشه ای دربیاری و حالت فرمتم روی none بزاری و بعد یک تایمر بزاری رو فرم و کد زیر را قرار بدی در تایمر


لیبل =نوشتت// label1.Left++;
if (label1.Left==تا جایی که میخوای بره)
{
timer1.Enabled = false;


موفق باشی