ايران ويج

نسخه‌ی کامل: 2 تا سوال از اساتيد محترم
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سوال 1-:ميخوام يه برنامه بنويسم . به محض اولين اجرا از خودش توي يه مسير معين كپي بگيره و با بالا آمدن ويندوز اجرا بشه .



من اين كد رو دارم ولي نميدونم چطوري كار ميكنه :

کد:
-----------------------------------------------------------------
Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type
-----------------------------------------------------------------

Private Declare Function RegCreateKeyEx Lib "advapi32.dll" _
Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal _
lpSubKey As String, ByVal Reserved As Long, ByVal _
lpClass As String, ByVal dwOptions As Long, ByVal _
samDesired As Long, lpSecurityAttributes _
As SECURITY_ATTRIBUTES, phkResult As Long, _
  lpdwDisposition 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
------------------------------------------------------------------
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
-----------------------------------------------------------------
Private Declare Function RegOpenKeyEx Lib _
"advapi32.dll" Alias "RegOpenKeyExA" (ByVal _
hKey As Long, ByVal lpSubKey As String, ByVal _
ulOptions As Long, ByVal samDesired As Long, _
phkResult As Long) As Long
-----------------------------------------------------------------
Private Declare Function RegDeleteValue Lib _
"advapi32.dll" Alias "RegDeleteValueA" (ByVal _
hKey As Long, ByVal lpValueName As String) As Long
-----------------------------------------------------------------
Const REG_OPTION_VOLATILE = 1           ' Key is not preserved when system is rebooted
Const REG_OPTION_NON_VOLATILE = 0       ' Key is preserved when system is rebooted

Const HKEY_CURRENT_USER = &H80000001
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_DYN_DATA = &H80000006
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003

Const KEY_WRITE = &H20006
Const REG_SZ = 1
Const KEY_ALL_ACCESS = &HF003F
Const REG_BINARY = 3
Const REG_DWORD = 4
Const KEY_READ = &H20019
----------------------------------------------------------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim hKey As Long
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String
Dim neworused As Long
Dim stringbuffer1 As String
Dim stringbuffer2 As String
Dim retval As Long
    
subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Startup"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = 1
    
retval = RegCreateKeyEx(HKEY_LOCAL_MACHINE, subkey, 0, "", 0, KEY_WRITE, secattr, hKey, neworused)
    
If retval <> 0 Then
  
    Exit Sub
End If
    
    
stringbuffer1 = "ادرس فايل اجرايي ..  پسوندش رو يادتون نره" & vbNullChar
    
retval = RegSetValueEx(hKey, "Default", 0, REG_SZ, ByVal stringbuffer1, Len(stringbuffer1))
    
Form1.BackColor = vbRed

End Sub

سوال 2: چطوري ميتونم درايوي رو كه ويندوز بر روي اون نصب شده تشخيس بدم؟ اينو اگه با API باشه ممنون ميشم يه يه راهي كه نخوام از كامپوننت استفاده كنم يا اگر هم استفاده كنم بتونم كامپوننت رو بزارم توي فرمم كه نخواد همراه نرم افزار اجرائي باشه
با سلام!

یک تابع API داریم به نام: GetWindowsDirectory
که به کمک آن می شود درایو ویندوز را تشخیص داد
تعریفش هم به این شکله:
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

امید وارم مفید بوده باشد!
سعید.ت
نقل قول: سوال 1-:ميخوام يه برنامه بنويسم . به محض اولين اجرا از خودش توي يه مسير معين كپي بگيره و با بالا آمدن ويندوز اجرا بشه .
دقیقآ چیزی رو که خواستی نوشتم
برنامه تو C کپی می شه و بعد هم تو استارت آپ قرار می گیره
فایل ضمیمه رو دانلود کن
یادت نره برنامه رو کامپایل کنی چون کامپایل نشده کار نمی ده
نقل قول: من اين كد رو دارم ولي نميدونم چطوري كار ميكنه
فکر کنم این کد رو تو کتاب حسین صادقی راد دیدی نه ؟
می آد یه ولیو می سازه
نقل قول: چطوري ميتونم درايوي رو كه ويندوز بر روي اون نصب شده تشخيس بدم؟ اينو اگه با API باشه ممنون ميشم يه يه راهي كه نخوام از كامپوننت استفاده كنم يا اگر هم استفاده كنم بتونم كامپوننت رو بزارم توي فرمم كه نخواد همراه نرم افزار اجرائي باشه
Left(Environ("windir"), 3)

در ضمن سعی کن عنوان تاپیک رو مرتبط با موضوع بنویسی
نمونه راه اندازي برنامه يه شيوع Magic و چند نوع ديگه رو رويه سايت خودم به زبون vb گذاشتم ميتوني استفاده كني

www.ps-ware.net
برنامه اصلاح شد دوباره بردار
فايل ضميمه دانلود نميشه لطف كنيد توي يه سايت مثل پرشن گيگ آپلود كنيد
هر چند که فروم مشکلی نداره ولی من بره شما یه جا دیگه آپلود می کنم
که کارت رابیفته
زود بردار می خواهم پاکش کنم
http://h1.ripway.com/KP/Temp/YourRequest.zip
مرسي ولي چرا كاسپر اسكي به عنوانم ويروس ميشناستش؟
نقل قول: مرسي ولي چرا كاسپر اسكي به عنوانم ويروس ميشناستش؟
حتما چون تو استارت آپ خودش رو می زاره اینطوری می شه