PDA

View Full Version : فرم همیشه فعال



shahinghorbani
شنبه 30 تیر 1386, 05:37 صبح
من می خوام یک برنامه بنویسم که یک رشته ر ابا مشخص کردن فونت و سرعت بگیره و روی صفحه نمایش حرکت بده و نوشته همیشه بالاترین فرم باشد یعنی هر برنامه ای که باز می شود باز هم نوشته در حال حرکت دیده شود. حالا چطور باید نوشته را همیشه بالاتر از بقیه قرار داد و حرکتش را چطور باید درست کرد.ممنون میشم منو کمک کنید.

رها
شنبه 30 تیر 1386, 09:48 صبح
در مورد حرکت نوشته باید با یه تایمر و رویداد اون position نوشته رو جابه جا کنید.
اما منظورتون از اینکه هر برنامه ای که باز می شه، چیه؟ یعنی هر برنامه ای غیر از برنامه شما؟

newgoldenman
یک شنبه 31 تیر 1386, 02:02 صبح
من می خوام یک برنامه بنویسم که یک رشته ر ابا مشخص کردن فونت و سرعت بگیره و روی صفحه نمایش حرکت بده و نوشته همیشه بالاترین فرم باشد یعنی هر برنامه ای که باز می شود باز هم نوشته در حال حرکت دیده شود. حالا چطور باید نوشته را همیشه بالاتر از بقیه قرار داد و حرکتش را چطور باید درست کرد.ممنون میشم منو کمک کنید.

برای اینکه یک فرم بالای همه ی فرمهای دیگه باشه، باید خاصیت TopMost اون رو true کنید.

shahinghorbani
یک شنبه 31 تیر 1386, 02:04 صبح
در مورد حرکت نوشته باید با یه تایمر و رویداد اون position نوشته رو جابه جا کنید.
اما منظورتون از اینکه هر برنامه ای که باز می شه، چیه؟ یعنی هر برنامه ای غیر از برنامه شما؟
اینکه بالاتر از بقیه برنامه ها باشد را پیداکردم که به چه صورتی است اما من موقعیت فرم را وقتی می خواهم مقدار دهی کنم میگه نمیشه یک مقدار int را به اون نسبت داد میشه اون خط برنامه را که باید نوشت را بنویسید ممنون میشم

newgoldenman
یک شنبه 31 تیر 1386, 02:21 صبح
اینکه بالاتر از بقیه برنامه ها باشد را پیداکردم که به چه صورتی است اما من موقعیت فرم را وقتی می خواهم مقدار دهی کنم میگه نمیشه یک مقدار int را به اون نسبت داد میشه اون خط برنامه را که باید نوشت را بنویسید ممنون میشم

فکر کنم میخواهید که موقعیت فرمتون رو توی صفحه ست کنید نه؟!



this.Location = new System.Drawing.Point(150, 150);


نقطه ی 150 و 150 !

shahinghorbani
پنج شنبه 04 مرداد 1386, 02:35 صبح
واقعا از کمک هاتون ممنون هستم. من یه سوال برام پیش اومده که نمی دونم اصلا چنین کاری امکان پذیر هست یا نه. میشه هر بار که ویندوز بالا میاد خودش بره آخرین رشته وارد شده را بخواند و نمایش بدهد و دیگه اصلا فرم گرفتن رشته نمایش داده نشه. یعنی ویندوز بالا بیاد و رشته را نمایش بده. رشته را باید توی یک دیتابیس ریخت اما چطوری خودش اجرا بشه.:متفکر::متفکر::متفکر:

MH2538
پنج شنبه 04 مرداد 1386, 06:08 صبح
سلام
اگر رشته هات کوتاه است می تونی اون ها رو تو رجیستری ذخیره کنی و از همون حا هم بخونی

رها
پنج شنبه 04 مرداد 1386, 07:43 صبح
واسه اجرا بعد از بالا اومدن ویندوز کافیه فایل اجراییت رو توی startup ویندوز بریزی.
رشته ها رو هم همونطور که دوستمون گفتند می تونی توی رجیستری یا فایل xml یا فایل ini یا اگر خیلی زیاد می شن توی دیتابیس مثل اکسس بریزی.

shahinghorbani
پنج شنبه 04 مرداد 1386, 16:17 عصر
از رجیستری چطوری میشه رشته خوند منبعی چیزی ندارید البته کار با پایگاه داده رو بلدم ولی یک رشته چند حرفی خیلی برنامه رو الکی سنگین میکنه.اگر لینکی بدید ممنون میشم.
در مورد استارت آپ آخه من میخوام فرم دومی که رشته را نشون می ده نشون داده بشه در حالیکه اگر برنامه را در استارت آپ بریزم فرم اول که در حالت اجرای برنامه نمایش داده میشود اجرا میشود اشتباه می گم؟ یعنی من میخوام وقتی برنامه را اجرا میکنیم فرم یک را نشان بده ولی وقتی ویندوز بالا میاد فرم دومی که رشته را نمایش میدهد بیاد.
یک مطلب دیگه هم هست اگه من فایل set up برنامه را بسازم در هر کامپیوتری قابل اجراست یا ملزومات دیگه ای هم داره؟؟

newgoldenman
جمعه 05 مرداد 1386, 00:17 صبح
وای!
دوست عزیز میدونید چند تا سوال رو همگی یه جایی پرسیدین؟!
در مورد تک تک سوالاتتون درون سایت یک جستجوی ساده کافیه (;

در ضمن!
شما نمونه ی برنامتون رو اینجا قرار بدین، من براتون همه ی کارهاشو انجام میدم تا اینجایی که مربوط به Setup میشه! این بحث رو دیگه توی سایت بگردین، همین چند وقت پیش بود که یدونه تاپیک خوب و عالی در این باره زده شد...

shahinghorbani
جمعه 05 مرداد 1386, 08:18 صبح
من یک فرم دارم که یک رشته را میگیرد و بعد ا ز مشخص کردن فونت و سرعت آن را د ریک فرم دیگر حرکت میدهد .که فرم دومی که رشته را نمایش میدهد هیچ دکمه و کنترلی ندارد و اونو از توی تسک منیجر فقط میشه بست. فقط مشکل اصلی من الان همینه که چطور وقتی ویندوز بالا میاد فرم دومی اجرا بشه جای اولی . کار با پایگاه داده و بقیه مطالب رو توی سایت میگردم ولی همچین مطلبی رو من هرچی گشتم پیدا نکردم که برنامه اگر دستی اجرا نشه و از توی استارآپ اجرا بشه خودش بره سراغ فرم دوم.

mehdi.mousavi
جمعه 05 مرداد 1386, 13:28 عصر
من یک فرم دارم که یک رشته را میگیرد و بعد ا ز مشخص کردن فونت و سرعت آن را د ریک فرم دیگر حرکت میدهد .که فرم دومی که رشته را نمایش میدهد هیچ دکمه و کنترلی ندارد و اونو از توی تسک منیجر فقط میشه بست. فقط مشکل اصلی من الان همینه که چطور وقتی ویندوز بالا میاد فرم دومی اجرا بشه جای اولی . کار با پایگاه داده و بقیه مطالب رو توی سایت میگردم ولی همچین مطلبی رو من هرچی گشتم پیدا نکردم که برنامه اگر دستی اجرا نشه و از توی استارآپ اجرا بشه خودش بره سراغ فرم دوم.



سلام.
اگر به main برنامه نگاه کنید، اونجا همچین کدی رو میبینید:

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());

Form1 فرم اولی هستش که در برنامه باز میشه. شما باید تو main برنامه از تو registry یا مثلا یه فایل .xml یا .ini بخونید که الان کدوم فرم باید باز بشه، و بر اساس اون جای Form1 اونیکی فرم رو new کنید و به Application.Run بدید.

shahinghorbani
جمعه 05 مرداد 1386, 18:49 عصر
آخه می خوام وقتی برنامه اجرا میشه فرم یک نمایش داده میشود ولی وقتی خودش از تو استارآپ اجرا میشه فرم 2 را بیاره . چه شرطی باید گذاشت؟

اَرژنگ
جمعه 05 مرداد 1386, 19:00 عصر
آخه می خوام وقتی برنامه اجرا میشه فرم یک نمایش داده میشود ولی وقتی خودش از تو استارآپ اجرا میشه فرم 2 را بیاره . چه شرطی باید گذاشت؟
همینطوری که برنامه خبر نداره که چطوری اجرا شده، شاید بتوانید که در استارت آپ با یک پارامتر شروعش کنید که بدواند که از استارت آپ شروع شده.
بعدش هم شرطتان را اضافه کنید.

shahinghorbani
شنبه 06 مرداد 1386, 01:34 صبح
منظورتان را متوجه نمی شوم مثلا چطوری میشه به پارامتر گفت اگر برنامه از استارت آپ شروع شد true بشود یا هر جور دیگه؟؟

اَرژنگ
شنبه 06 مرداد 1386, 03:23 صبح
منظورتان را متوجه نمی شوم مثلا چطوری میشه به پارامتر گفت اگر برنامه از استارت آپ شروع شد true بشود یا هر جور دیگه؟؟
نمیشه، و منظورم هم این نبود!
منظورم این بود که وقتی که در استارت‌آپ شروع میشه با یک پارامتر صداش بزنید .
مثال شروع در استارت آپ:
http://www.pctools.com/guides/registry/detail/109/

حالا فرض کنیم Notepad برنامه خودتان بود ، به آرگومنتهاش دسترسی داشتید:
این خط را
"Notepad"="c:\windows\notepad.exe".
با
" Notepad"="c:\windows\notepad.exe startup".
عوض کنید، حالا میدانید که موقع استارت آپ یک آرگومان startup به برنامه داده میشه.
ممکنه که طرزه دادن آرگومان به برنامه با این چیزی که من مثال میزنم فرق داشته باشه (چونکه امتحان نکردم که این روش درست است ولی در همان رجیستری باید یک چند تا مثال راه انداختن برنامه‌ها با آٓرگومنهایه مختلف باشه)ولی ایده همان است.

shahinghorbani
یک شنبه 07 مرداد 1386, 01:58 صبح
http://www.pctools.com/guides/registry/detail/109/

.
من این مثال را خواندم و متوجه شدم ولی ارتباط آن با برنامه و جریان این آرگومان را نفهمیدم . مثل اینکه این قسمت از برنامه خیلی مشکل است و کار من نیست . به هر حال خیلی ممنون از کمک هاتون.

اَرژنگ
یک شنبه 07 مرداد 1386, 04:57 صبح
من این مثال را خواندم و متوجه شدم ولی ارتباط آن با برنامه و جریان این آرگومان را نفهمیدم . مثل اینکه این قسمت از برنامه خیلی مشکل است و کار من نیست . به هر حال خیلی ممنون از کمک هاتون.
خیر، آسان است، کدام قسمتش مشکل دارید؟
منظور از آرگومان که قبلا در این تالار هم بحث شده بود یک چیزی مانند این است:
C:/Myprgram1.exe arg1 arg2 arg3 .. argN
تنها کاری که لازم است انجام بدید این است که در Program.cs
یک تغییر کوچکی بدید.
http://msdn2.microsoft.com/EN-US/library/cb20e19t(VS.71).aspx
اگر C# Arguments را گوگل کنید کلی مثال پیدا میکنید،

shahinghorbani
دوشنبه 08 مرداد 1386, 19:10 عصر
من این قسمت را متوجه نمی شوم که چطور باید آرگومان را اگر برنامه را اجرا کردیم با حالتی که برنامه از استارت آپ اجرا میشود متفاوت به یک تابع بفرستیم .

اَرژنگ
سه شنبه 09 مرداد 1386, 05:42 صبح
من این قسمت را متوجه نمی شوم که چطور باید آرگومان را اگر برنامه را اجرا کردیم با حالتی که برنامه از استارت آپ اجرا میشود متفاوت به یک تابع بفرستیم .
در یکی از پستهایه قبلیم گفتم که چگونه میوانید در استارت آپ برنامه را با آرگومان صدا کنید.
به طوره معمولی برنامه که اجرا میشه بدانه اآرگومان شروع میشه، نتیجتا وجود یا نبود اآرگومان را میتوانید استفاده کنید، و لازم نیست که به طوره معمولی با آرگومان صداش بزنید.

در ضمن شما لازم نیست که آرگومان به تابعی بفرستید، خوده آرگومنها به تابع Main فرستاده میشند، و شما وجود و یا نبودشان را در تابع Main چک میکنید.

shahinghorbani
سه شنبه 09 مرداد 1386, 15:38 عصر
این طور که متوجه شدم اگر برنامه از توی استارآپ اجرا بشود یک آرگومان خودش به تابع main می فرستد . درسته؟ یا به تابع دیگری می فرستد . لطفا اگر میشه اون خطی که در تابع باید چک شود را بنویسید.

Esy_Programmer
سه شنبه 09 مرداد 1386, 18:23 عصر
نام فایل اجرائی و جلوی اون پارامتر ورودی را بنویسید یا می تونید توی استارت آپ از یک فایل Batch استفاده کنید که محتوای اون این باشه:
پارامتر ورودی exe.نام فایل

Esy_Programmer
سه شنبه 09 مرداد 1386, 18:26 عصر
شما می تونید یک BatchFile توی استارت آپ با محتوای زیر بسازید و پارامتر را از متد Main بخونید : پارامتر ورودی exe.نام فایل\مسیر فایل