PDA

View Full Version : اضافه کردن برنامه به لیست Screen Saver ها



__siavash__
سه شنبه 25 اردیبهشت 1386, 04:26 صبح
این یه برنامه سادست که میشه ازش به عنوان Screen Saver استفاده کرد!
حالا میخوام ببینم چه جوری به لیست Screen saver های ویندوز اضافش کنم ؟

__H2__
سه شنبه 25 اردیبهشت 1386, 11:37 صبح
سلام
برنامه را با پسوند scr در پوشه Windows یا System32 کپی کنید.

__siavash__
سه شنبه 25 اردیبهشت 1386, 14:00 عصر
سلام
برنامه را با پسوند scr در پوشه Windows یا System32 کپی کنید.
برنامه رو با پسوند scr تو System32 کپی کردم، توی لیست اسکرین سیور ها هم اومد اما رو هر چی کلیک میکنم اجرا میشه! چه رو تب اسکرین سیور چه رو دکمه Setting ؟

__H2__
سه شنبه 25 اردیبهشت 1386, 14:21 عصر
سلام
تمام برنامه های عادی باید کار کنند!!!!!؟؟؟؟؟!!!!!
چون در اصل فایلهای scr همان exe هستند!
برای تنظیمات هم اگر خواستید باید برای سوییچ s\ خط فرمان کد نویسی کنید.

__siavash__
سه شنبه 25 اردیبهشت 1386, 17:48 عصر
سلام
تمام برنامه های عادی باید کار کنند!!!!!؟؟؟؟؟!!!!!
چون در اصل فایلهای scr همان exe هستند!
برای تنظیمات هم اگر خواستید باید برای سوییچ s\ خط فرمان کد نویسی کنید.
یعنی چه جوری ؟
منظورم اینه که مثلا اگه دکمه Setting رو بزنیم یه فرم از برنامه که باید طراحی بشه باز بشه و مثلا سرعت ظاهر شدن دایره ها و قطر اونا و .. رو بشه تنظیم کرد ؟

bashiry
سه شنبه 25 اردیبهشت 1386, 17:53 عصر
خود اسکرین سیور تنظیمات مخصوص خودش رو داره.
با اون سوئیچ تنظبماتش باز میشه

__siavash__
سه شنبه 25 اردیبهشت 1386, 18:04 عصر
خود اسکرین سیور تنظیمات مخصوص خودش رو داره.
با اون سوئیچ تنظبماتش باز میشه
مگه اون صفحه تنظیم که با زدن دکمه Setting باید باز بشه رو نباید براش درست کنیم ؟
من حالا میخوام ببینم چه جوری وقتی اون دکمه Setting زده شد مثلا فرم frmSetting که تو پروژه درست کردیم باز بشه .

bashiry
سه شنبه 25 اردیبهشت 1386, 18:22 عصر
میخوایی اسکرین سیور رو خودت درست کنی یا می خوایی اسکرین سیور آماده رو ببری تو لیست؟
من درست متوجه نشدم

S_VB.max
سه شنبه 25 اردیبهشت 1386, 18:41 عصر
برای تنظیمات هم اگر خواستید باید برای سوییچ s\ خط فرمان کد نویسی کنید.

سوییچ c/ برای زمانی است که دکمه Settings کلیک شده
سوییچ s/ برای زمانی است که اسکرین سیور بوسیله ویندوز یا کاربر (باز زدن دکمه Preview) شروع شده باشه
سوییچ a/ برای تغییر دادن پسورد انتخاب شده (در ویندوز 95 و 98)
سوییچ p/ ؟؟ نمی دونم یادم نیست

__siavash__
سه شنبه 25 اردیبهشت 1386, 20:48 عصر
من اینو کاملتر کردم و براش یه فرم تنظیمات گذاشتم حالا برنامه رو با پسوند scr تو پوشه system32 کپی میکنم


سوییچ c/ برای زمانی است که دکمه Settings کلیک شده

یعنی چه کدی رو و کجا باید بنویسم تا بعد از زدن دکمه Setting فرم frmSetting ظاهر بشه ؟

bashiry
سه شنبه 25 اردیبهشت 1386, 22:01 عصر
فکر می کنم باید با آرگومانهای ورودی درست کنی
مثل سی

اگه با سوئیچ مشخصی برنامه صدا زده شد فرم دلخواهتون باز بشه.
این برداشت منه
و وقتی روی دکمه ستینگ کلیک میشه در اصل برنامه اسکرین سیور با سوئیچ مخصوص صدا زده میشه

S_VB.max
سه شنبه 25 اردیبهشت 1386, 22:32 عصر
من اینا چند وقت پیش درست کرده بودم :
امیدوارم مفید باشه:لبخند:

__H2__
چهارشنبه 26 اردیبهشت 1386, 11:04 صبح
سلام
من کدها را ندیدم ولی باید از دستوراتی شبیه این در زیر برنامه Main استفاده کنید


If Instr(Command$ , "\s") > 0 Then
frmSettings.Show
Else
frmMain.Show
End If

S_VB.max
چهارشنبه 26 اردیبهشت 1386, 13:53 عصر
من فکر می کنم آقا سیاوش حتما با کدهای من به جواب رسیدند و فکر نمی کنم موردی داشته باشه

__siavash__
چهارشنبه 26 اردیبهشت 1386, 15:01 عصر
من فکر می کنم آقا سیاوش حتما با کدهای من به جواب رسیدند و فکر نمی کنم موردی داشته باشه
این سورسی که شما گذاشتید خیلی پیشرفته بود !
این کدها رو باید توجه میکردم درسته ؟


Sub Main()
Dim templong As Long
twipx = Screen.TwipsPerPixelX
twipy = Screen.TwipsPerPixelY
'parse out command line argument
Select Case Mid(Command, 1, 2)
Case "/c"
' user pressed "Settings" button
frmSettings.Show
Case "/p"
' Display Properties preview screen
previewWindowHandle = Val(Mid(Command, 4, Len(Command))) ' parse out preview window handle
Load frmPreview ' load, but do not show, the preview form
Case "/s"
' Screen Saver started by Windows or user pressed "Preview" button
'check for another instance of the screen saver
templong = FindWindow(vbNullString, "Main Screen Saver Window") 'always pass vbNullString. Make sure second variable EXACTLY MATCHES the CAPTION on the main screensaver form
If Not templong <> 0 Then
getSystemInfo 'get windows version
frmMain.Show 1 'display main screen saver window
End If
Case "/a" ' In Windows95/98 Only. When change password is selected
commandAddress = Val(Mid(Command, 4, Len(Command) - 3))
templong = PwdChangePassword("SCRSAVE", commandAddress, 0, 0)
End Select
End Sub

من اون Command رو نفهمیدم قضیش چیه ؟
اما خوب من همین کدها رو کپی کردم تو برنامه و یه مشکلی بود اینکه مثلا بعد از یک دقیقه که برنامه میخواست بره رو اسکرین سیور پنجره به صورت مینیمم بالای دکمه استارت ظاهر میشد!!؟؟
البته این سورس خیلی کامل بود منتها من اولین بارمه دارم این کارو میکنم یه خورده گیج شدم ! :افسرده:

__H2__
چهارشنبه 26 اردیبهشت 1386, 15:05 عصر
سلام
تابع Command مقدار خط فرمان را پس میدهد.
یعنی هر نام و نوشته ای که در زمان اجرای برنامه شما در مقابل نام فایل EXE برنامه شما نوشته شود بعد از بالا آمدن برنامه شما با Command قابل دسترسی است. و ویندوز هم برای اجرای تنظیمات پارامتر s\ را از همین طریق به برنامه شما پاس میدهد.

S_VB.max
چهارشنبه 26 اردیبهشت 1386, 19:25 عصر
با کلیک دکمه Settings ، یک فرمانی (سوییچ c/) را به برنامه ارسال می کنید که باعث نمایش فرم می شه
شما اگر دستور c:\shaygan.scr /c را در Command Prompt اجرا کنید در عمل همان کاری کردید که دکمه Settings را کلیک کرده باشید
برنامه فرمانی که دریافت خواهد کرد چیزی به این صورته c/555454 که با تابع mid بررسی می کنید که آیا سوییچ ارسال شده c/ است یا نه

به بیان دیگه
توی برنامه های کنسولی این جوری یه آرگومان را به برنامه ارسال می کنند مثلا می خواهیم به برنامه به اسم Myprogram آرگومان A را ارسال کنیم که با این کار یک دستوری اجرا کنه :


Private Sub Form_Load()
Select Case Command
Case Is = "/A": msgbox "Hi everybody"
End Select
End Sub

حالا در run یا cmd این فرمان را می نویسیم :
c:\Myprogram /A

bashiry
چهارشنبه 26 اردیبهشت 1386, 20:03 عصر
ممنون سورس خوبی بود
راستی اون سوئیچ S رو که دادی به برنامه به صورت پیش فرض نیازه؟

S_VB.max
چهارشنبه 26 اردیبهشت 1386, 20:49 عصر
ممنون سورس خوبی بود
راستی اون سوئیچ S رو که دادی به برنامه به صورت پیش فرض نیازه؟

درسته همینطوره
شما فرض کن اصلا هیچ سوییچی در کار نبود اونوقت همون مشکلی که آقا سیاوش در ابتدا داشت پیش می اومد یعنی هرجا کلیک می کردی برنامه شروع می شد

__siavash__
چهارشنبه 26 اردیبهشت 1386, 21:40 عصر
S_VB.max (http://barnamenevis.org/forum/member.php?u=16439):
دستت درد نکنه با اون مثالی که زدی فهمیدم چی شد





Private Sub Form_Load()
Select Case Command
Case Is = "/A": msgbox "Hi everybody"
End Select
End Sub

حالا در run یا cmd این فرمان را می نویسیم :
c:\Myprogram /A

bashiry
چهارشنبه 26 اردیبهشت 1386, 22:52 عصر
کار با آرگومانها توی سی کمی عجیبه ولی توی ویبی خیلی راحت میشه این کار رو کرد
به هر حال از توضیحات همه ممنون
خیلی استفاده کردیم.