PDA

View Full Version : حرفه ای: ثبت نشدن برنامه در ms config ویندوز



hasht.rood
جمعه 20 آبان 1390, 00:04 صبح
چطوری میشه برنامه در استارت اپ بالا بیاد اما در ام اس کانفیک ثبت نشده باشه و نشون داده نشه ؟
منتظر راهنماییهای شما سروران گرامی هستم
شاد و خرم باشین

hasht.rood
جمعه 20 آبان 1390, 00:19 صبح
اگر در لیست پروسس نبود چطوری اجراش کنم ؟
مثلا فایلی که میخوام اجرا کنم اسمش face.exe هست و در پوشه windows قرار داره.
دستتون درد نکنه

با تابع زیر می تونید بررسی کنید که پروسه مورد نظر در لیست پروسه ها هست یا خیر.


Function IsProcessRunning(ProcessName As String) As Boolean
On Error Resume Next
Dim Process, strObject
IsProcessRunning = False
strObject = "winmgmts://"
For Each Process In GetObject(strObject).InstancesOf("win32_process")
If UCase(Process.name) = UCase(ProcessName) Then
IsProcessRunning = True
Exit Function
End If
Next
End Function

M.T.P
جمعه 20 آبان 1390, 00:24 صبح
باید برنامه رو بصورت Service طراحی کنید ، مثل نرم افزار Deep Freeze .
برای مشاهده سرویس های ویندوز می تونید در Run عبارت Services.msc رو تایپ و اجرا کنید.

Veteran
جمعه 20 آبان 1390, 10:25 صبح
اگر در لیست پروسس نبود چطوری اجراش کنم ؟
مثلا فایلی که میخوام اجرا کنم اسمش face.exe هست و در پوشه windows قرار داره.
دستتون درد نکنه

shell "C:\Windows\face.exe"

Veteran
جمعه 20 آبان 1390, 10:33 صبح
چطوری میشه برنامه در استارت اپ بالا بیاد اما در ام اس کانفیک ثبت نشده باشه و نشون داده نشه ؟

به نقل از دوست خوبم اقا احسان
ehsan-avr (http://barnamenevis.org/member.php?93046-ehsan-avr)

Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_CURRENT_USER = &H80000001
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 RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData 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 Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Public Const REG_SZ = 1
Public Const REG_DWORD = 4


Public Function GetString(hKey As Long, StrPath As String, strValue As String)
Dim Keyhand As Long
Dim datatype As Long
Dim lResult As Long
Dim strBuf As String
Dim lDataBufSize As Long
Dim intZeroPos As Integer
r = RegOpenKey(hKey, StrPath, Keyhand)
lResult = RegQueryValueEx(Keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(Keyhand, strValue, 0&, 0&, ByVal strBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
intZeroPos = InStr(strBuf, Chr$(0))
If intZeroPos > 0 Then
GetString = Left$(strBuf, intZeroPos - 1)
Else
GetString = strBuf
End If
End If
End If
End Function

Public Sub SaveString(hKey As Long, StrPath As String, strValue As String, strdata As String)
Dim Keyhand As Long
Dim r As Long
r = RegCreateKey(hKey, StrPath, Keyhand)
r = RegSetValueEx(Keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
r = RegCloseKey(Keyhand)
End Sub
Public Sub Delete_String(hKey As Long, StrPath As String, strValue As String)
Dim Keyhand As Long

r = RegOpenKey(hKey, StrPath, Keyhand)
RegDeleteValue Keyhand, strValue
End Sub

اینم از کد نمونه:
M1.SaveString HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", Key Name," explorer.exe File name.exe