ورود

View Full Version : اجرا در اول ویندوز



R_BABAZADEH
شنبه 08 اسفند 1383, 14:57 عصر
سلام
چطور می تونم برنامه ام رو بدون قرار دادن در منوی start به تور اتومات در اول ویندوز اجرا کنم
در 98 و me یک فایل به نام win.ini بود ولی در xp ... :(

MM_Mofidi
شنبه 08 اسفند 1383, 16:00 عصر
قرار دادن در کلید(های) مربوطه در رجیستری

Hamedm
شنبه 08 اسفند 1383, 16:51 عصر
سلام :)

میتونی هم از رجیستری استفاده کنی و هم در پوشه Startup ویندوز یک شورت کات برای برنامه ات بزاری.
بستگی به برنامه ایت داره. اگه در Startup بزاری ممکنه کاربر اشتباهی پاک کنه.

فرض کنید می خواهیم برنامه ای بنویسیم که هر بار در هنگام راه اندازی سیستم بطور خودکار اجرا شود. البته نمی خواهم در Startup ویندوز دیده شود.
برای این کار باید برنامه موردنظر را در StartUp رجیستری قرار دهیم. به این ترتیب که در یکی از کلیدهای زیر یک مقدار رشته ای جدید(String Value) ایجاد کنیم و آدرس برنامه را در آن وارد کنیم:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Curre ntVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run
برای مثال اگه اسم برنامه مورد نظر MyApp و مسیرش C:\Windows\MyApp.exe است باید بصورت زیر عمل کرد:

SetKeyValue HKEY_LOCAL_MACHINE
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "MyApp", "C:\MyApp.exe", REG_SZ
نکته: البته دو تا راه دیگر برای اینکار وجود دارد که برخی تروجان ها هم از این روشها استفاده می کنند تا روی سیستم باقی بمانند:
یکی استفاده از Win.ini و نوشتن نام فایل جلوی = Run و دیگری استفاده از System.ini و نوشتن نام برنامه جلوی خط Explorer.exe.

برای شورت کات درست کردن هم میتونی از تابع API زیر استفاده کنی:

Declare Function fCreateShellLink Lib "VB5STKIT.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As Long

برنامه زیر یک شورتکات ار ماشین حساب در Startup میسازه:

موفق باشید و پرتوان

mohsengrisly
شنبه 08 اسفند 1383, 22:46 عصر
:موفق: :mrgreen:

R_BABAZADEH
یک شنبه 09 اسفند 1383, 16:43 عصر
سلام :)

استفاده از System.ini و نوشتن نام برنامه جلوی خط Explorer.exe.









; for 16-bit app support

[drivers]
wave=mmdrv.dll
timer=timer.drv

[mci]
[driver32]
[386enh]
woafont=dosapp.FON
EGA80WOA.FON=EGA80850.FON
EGA40WOA.FON=EGA40850.FON
CGA80WOA.FON=CGA80850.FON
CGA40WOA.FON=CGA40850.FON
display=alvdd02.386
COM4FIFO=1
[al8p02.drv]
WidthXHeight=1024x768
FontSize=large
[ALGRefRate]
ALG1301DCI=off
1024@256=0


من خط Explorer.exe را پیدا نکردم :(

Hamedm
دوشنبه 10 اسفند 1383, 04:55 صبح
من خط Explorer.exe را پیدا نکردم

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

موفق باشید و پرتوان

حامد مصافی
دوشنبه 10 اسفند 1383, 19:18 عصر
من خط Explorer.exe را پیدا نکردم

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

موفق باشید و پرتوانبله ؛ استفاده از رجیستری بهتره

و جناب R_BABAZADEH شما باید با توجه با نیازتون یکی از کلید های زیر را انتخاب کنید



HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Curre ntVersion\Run 'برای کاربر جاری در استارت آپ اجرا خواهد شد
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run 'برای تمام کاربران اجرا خواهد شد
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Curre ntVersion\RunOnce 'برای کاربر جاری فقط یک بار اجرا خواهد شد
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\RunOnce 'برای تمام کاربران فقط یک بار اجرا خواهد شد

R_BABAZADEH
چهارشنبه 12 اسفند 1383, 10:01 صبح
از همه ممنون :flower:

Asad.Safari
پنج شنبه 11 اسفند 1384, 23:38 عصر
با سلام

اگه مثلا من یه فایل با نام test.exe تو این آدرس داشته باشم e:\test.exe
چه طوری یه شورت کات تو استارت آپ درست کنم که هر بار وقتی
ویندوز لود میشه اجرا بشه1



با تشکر

H_SH_VB
جمعه 12 اسفند 1384, 00:36 صبح
Set l = CreateObject("Wscript.shell")
Set link = l.CreateShortcut("c:\API Tet Viewe.lnk")
link.TargetPath = "E:\Games\Pickup Express\Pickup.exe"
link.Description = "hiiiiiiiii"
link.WindowStyle = 1
link.Hotkey = "CTRL+SHIFT+F"
link.IconLocation = "notepad.exe, 4"
link.Description = "Shortcut Script"
link.WorkingDirectory = strDesktop
link.Save
End

این برای Shortcut ساختن


Const CSIDL_DESKTOP = &H0
Const CSIDL_PROGRAMS = &H2
Const CSIDL_CONTROLS = &H3
Const CSIDL_PRINTERS = &H4
Const CSIDL_PERSONAL = &H5
Const CSIDL_FAVORITES = &H6
Const CSIDL_STARTUP = &H7
Const CSIDL_RECENT = &H8
Const CSIDL_SENDTO = &H9
Const CSIDL_BITBUCKET = &HA
Const CSIDL_STARTMENU = &HB
Const CSIDL_DESKTOPDIRECTORY = &H10
Const CSIDL_DRIVES = &H11
Const CSIDL_NETWORK = &H12
Const CSIDL_NETHOOD = &H13
Const CSIDL_FONTS = &H14
Const CSIDL_TEMPLATES = &H15
Const MAX_PATH = 260
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Sub Form_Load()
Me.AutoRedraw = True

Me.Print "0" & GetSpecialfolder(&H0)
Me.Print "1" & GetSpecialfolder(&H1)
Me.Print "2" & GetSpecialfolder(&H2)
Me.Print "3" & GetSpecialfolder(&H3)
Me.Print "4" & GetSpecialfolder(&H4)
Me.Print "5" & GetSpecialfolder(&H5)
Me.Print "6" & GetSpecialfolder(&H6)
Me.Print "7" & GetSpecialfolder(&H7)
Me.Print "8" & GetSpecialfolder(&H8)
Me.Print "9" & GetSpecialfolder(&H9)
Me.Print "10" & GetSpecialfolder(&H10)
Me.Print "11" & GetSpecialfolder(&H11)
Me.Print "12" & GetSpecialfolder(&H12)
Me.Print "13" & GetSpecialfolder(&H13)
Me.Print "14" & GetSpecialfolder(&H14)
Me.Print "15" & GetSpecialfolder(&H15)
Me.Print "16" & GetSpecialfolder(&H16)
Me.Print "17" & GetSpecialfolder(&H17)
Me.Print "18" & GetSpecialfolder(&H18)
Me.Print "19" & GetSpecialfolder(&H19)
Me.Print "20" & GetSpecialfolder(&H20)
Me.Print "21" & GetSpecialfolder(&H21)
Me.Print "22" & GetSpecialfolder(&H22)



End Sub
Private Function GetSpecialfolder(CSIDL As Long) As String
Dim r As Long
Dim IDL As ITEMIDLIST
'Get the special folder
r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
If r = NOERROR Then
'Create a buffer
Path$ = Space$(512)
'Get the path from the IDList
r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
'Remove the unnecessary chr$(0)'s
GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
Exit Function
End If
GetSpecialfolder = ""
End Function



اینم برای پیدا کردن Startup
حالا یا دستور filecopy اون Shortcut رو بنداز تو Startup


حالا اگه فکر میکنی که ارزش تشکر داره جاش یا دعای فرج بخون 5 تا یا خطبه غدیر رو
که من خطبه غدیرو پیشنهاد میدم
چون ما که شیئه ایم (اگه باشیم) زشته که ندونیم پیغمبر تو غدیر چی گفتن
من که خوندم خیلی حال کردم تو ام بخون اگه حال نکردی :چشمک:

Asad.Safari
شنبه 13 اسفند 1384, 14:43 عصر
با تشکر !! من معمولا دعای فرج رو میخونم حالا با پیشنهاد شمت هم خطبع غدیر هم میخونیم!


من از این کدها زیاد سر نیاوردم !
اگه میشه یکم توضیح بدین !
یا اگه کد آماده ای دارین برام بفرستید!
در مورد این filecopy هم توضیح بدین!



با تشکر

rahman mohammadi
یک شنبه 14 اسفند 1384, 10:37 صبح
Set l = CreateObject("Wscript.shell")
Set link = l.CreateShortcut("c:\API Tet Viewe.lnk")
link.TargetPath = "E:\Games\Pickup Express\Pickup.exe"
link.Description = "hiiiiiiiii"
link.WindowStyle = 1
link.Hotkey = "CTRL+SHIFT+F"
link.IconLocation = "notepad.exe, 4"
link.Description = "Shortcut Script"
link.WorkingDirectory = strDesktop
link.Save
End

این برای Shortcut ساختن


Const CSIDL_DESKTOP = &H0
Const CSIDL_PROGRAMS = &H2
Const CSIDL_CONTROLS = &H3
Const CSIDL_PRINTERS = &H4
Const CSIDL_PERSONAL = &H5
Const CSIDL_FAVORITES = &H6
Const CSIDL_STARTUP = &H7
Const CSIDL_RECENT = &H8
Const CSIDL_SENDTO = &H9
Const CSIDL_BITBUCKET = &HA
Const CSIDL_STARTMENU = &HB
Const CSIDL_DESKTOPDIRECTORY = &H10
Const CSIDL_DRIVES = &H11
Const CSIDL_NETWORK = &H12
Const CSIDL_NETHOOD = &H13
Const CSIDL_FONTS = &H14
Const CSIDL_TEMPLATES = &H15
Const MAX_PATH = 260
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Sub Form_Load()
Me.AutoRedraw = True

Me.Print "0" & GetSpecialfolder(&H0)
Me.Print "1" & GetSpecialfolder(&H1)
Me.Print "2" & GetSpecialfolder(&H2)
Me.Print "3" & GetSpecialfolder(&H3)
Me.Print "4" & GetSpecialfolder(&H4)
Me.Print "5" & GetSpecialfolder(&H5)
Me.Print "6" & GetSpecialfolder(&H6)
Me.Print "7" & GetSpecialfolder(&H7)
Me.Print "8" & GetSpecialfolder(&H8)
Me.Print "9" & GetSpecialfolder(&H9)
Me.Print "10" & GetSpecialfolder(&H10)
Me.Print "11" & GetSpecialfolder(&H11)
Me.Print "12" & GetSpecialfolder(&H12)
Me.Print "13" & GetSpecialfolder(&H13)
Me.Print "14" & GetSpecialfolder(&H14)
Me.Print "15" & GetSpecialfolder(&H15)
Me.Print "16" & GetSpecialfolder(&H16)
Me.Print "17" & GetSpecialfolder(&H17)
Me.Print "18" & GetSpecialfolder(&H18)
Me.Print "19" & GetSpecialfolder(&H19)
Me.Print "20" & GetSpecialfolder(&H20)
Me.Print "21" & GetSpecialfolder(&H21)
Me.Print "22" & GetSpecialfolder(&H22)



End Sub
Private Function GetSpecialfolder(CSIDL As Long) As String
Dim r As Long
Dim IDL As ITEMIDLIST
'Get the special folder
r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
If r = NOERROR Then
'Create a buffer
Path$ = Space$(512)
'Get the path from the IDList
r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
'Remove the unnecessary chr$(0)'s
GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
Exit Function
End If
GetSpecialfolder = ""
End Function



اینم برای پیدا کردن Startup
حالا یا دستور filecopy اون Shortcut رو بنداز تو Startup


حالا اگه فکر میکنی که ارزش تشکر داره جاش یا دعای فرج بخون 5 تا یا خطبه غدیر رو
که من خطبه غدیرو پیشنهاد میدم
چون ما که شیئه ایم (اگه باشیم) زشته که ندونیم پیغمبر تو غدیر چی گفتن
من که خوندم خیلی حال کردم تو ام بخون اگه حال نکردی :چشمک:

من با وی بی script نوشتم که دستورش رو می نویسم با این کار می تونی فایل exe رو درون رجیستری بذاری

dim wsh
("set wsh=createobject("wscript.shell
و حالا
dim myfile
myfile=app.exename + ".exe
و حالا موقعش که در رجیستری نوشته بشه
"Wsh.regwrite "HKEY_LOCAL_MACHINE"&"rUN me,MYFILE

Asad.Safari
دوشنبه 15 اسفند 1384, 19:54 عصر
من از این دستور شما استفاده کردم


Private Sub Command1_Click()
Dim wsh
Set wsh = CreateObject("wscript.shell")
Dim myfile
myfile = "d:\p.exe"

wsh.regwrite "HKEY_LOCAL_MACHINE" & "rUN me,MYFILE"
End Sub

اما کار نکرد , از خط آخر ایراد گرفت:
wrong number of arguments or invalid property assignment

با تشکر