[VBA] Bilgisayar Açılışına Vba Ile Program Ekleme çıkarma
#1
merhaba  vba  ile  bir uygulamayı  bilgisayar açıldığında çalışmasını nasıl ayarlıyabilirim  acaba

bilgisayar her açıldığında  açılsın



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba hedefkaya
Öncelikle bilgisayarın her açılışında uygulamanızın açılmasını istiyorsanız, öncelikle bir bat dosyası hazırlamanız geekir. daha sonra bu bat dosyasını Windowssun Görev yöneticisinde bulunan Başlangıç kısmına atmanız gerekiyor.
Bat Dosyası Örneği (Windowsun not defterinde yazıp uzantısını bat olarak değiştirin)

Visual Basic
  1. @echo off
  2. start "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" "D:\Access\Programlar\ProgramAdı.accdb"



Yalnız yukarıdaki satırı Windows ve Office versiyonlarına göre düzenlemeniz gerekiyor.



  Alıntı
Bu mesajı beğenenler:
#3
Aşağıdaki kod ile istediğimiz dosyayı açılışta başlıyacak şekilde  ayarlıyabiliyoruz  veya iptal edebiliyoruz 

fakat  ben kullanamadım  
c:\test.mdb   dosyasını  açılışa  nasıl  ekliyebilirim acaba



 SaveSetting App.EXEName, "start", "autoBoot", chkStartwithWindows
 DoStartUp App.Path & "\" & App.EXEName & ".exe", App.EXEName

modül 

Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
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 RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData 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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function CopyFile Lib "Kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_SZ = 1
Private Const KEY_WRITE = 131078
 

Public Function DoStartUp(Filename As String, Discription As String)
Dim hKey As Long
 RegOpenKeyEx HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run-", 0, KEY_WRITE, hKey
 RegDeleteValue hKey, Discription
 RegCloseKey hKey
 RegOpenKeyEx HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE, hKey
 RegSetValueEx hKey, Discription, 0, REG_SZ, Filename, Len(Filename)
 RegCloseKey hKey
End Function

Public Function DoNotStartUp(Filename As String, Discription As String)
Dim hKey As Long
 RegOpenKeyEx HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE, hKey
 RegDeleteValue hKey, Discription
 RegCloseKey hKey
 RegOpenKeyEx HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run-", 0, KEY_WRITE, hKey
 RegSetValueEx hKey, Discription, 0, REG_SZ, Filename, Len(Filename)
 RegCloseKey hKey
End Function



  Alıntı
Bu mesajı beğenenler:
#4
Visual Basic
  1. @echo off
  2. start "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" "C:\test.mdb"


Bu şekilde çalıştırabilirsiniz. Uzun kodlara gerek yok.



  Alıntı
Bu mesajı beğenenler:
#5
(29-10-2021, 11:19)onur_can demiş ki:
Visual Basic
  1. @echo off
  2. start "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" "C:\test.mdb"


Bu şekilde çalıştırabilirsiniz. Uzun kodlara gerek yok.

sayın onr_can

vba  ile  yapmam lazım bazen çalışacak  bazen açılışta  çalışmayacak  bir sistem yapmam lazım 

müşterilerime programda şartlar oluştuğunda  bat dosyasını  açılışa  bırakın   şartlar oluşmadıysa  açılıştan silin  demem  pek mantıklı olmayacak 

her seferinde  test.mdb  de  çalışmayacak  açılışta  duruma  göre  bazen  test mdb   bazen  başka  mdb  çalıştırmam lazım
yukardaki kodları uygulayabilirsem tablodakş veriye  göre  açılış dosyamı  yonetebilirim.



  Alıntı
Bu mesajı beğenenler:
#6
(29-10-2021, 12:27)hedefkaya demiş ki: her seferinde  test.mdb  de  çalışmayacak  açılışta  duruma  göre  bazen  test mdb   bazen  başka  mdb  çalıştırmam lazım
yukardaki kodları uygulayabilirsem tablodakş veriye  göre  açılış dosyamı  yonetebilirim.

Visual Basic
  1. Option Compare Database
  2. #If VBA7 And Win64 Then
  3. 'Public Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
  4. 'Public Declare ptrsafe Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
  5. Private Declare PtrSafe 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
  6. Private Declare PtrSafe Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
  7. Private Declare PtrSafe Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
  8. Private Declare PtrSafe Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  9. Public Declare PtrSafe Function CopyFile Lib "Kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
  10. #Else
  11. Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
  12. 'Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
  13. 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
  14. 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, ByVal lpData As String, ByVal cbData As Long) As Long
  15. Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
  16. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  17. Public Declare Function CopyFile Lib "Kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
  18. #End If
  19. Private Const HKEY_LOCAL_MACHINE = &H80000002
  20. Private Const REG_SZ = 1
  21. Private Const KEY_WRITE = 131078
  22. Function Yukle(Dosya As String, Aciklama As String, YapIs As Long)
  23. Const Yer As String = "Software\Microsoft\Windows\CurrentVersion\Run"
  24. Dim hKey, Sayac As Long
  25. For Sayac = 1 To 2
  26.    RegOpenKeyEx HKEY_LOCAL_MACHINE, Yer & IIf(YapIs = 1 And Sayac = 1, "-", IIf(YapIs = 2 And Sayac = 1, vbNullString, "-")), 0, KEY_WRITE, hKey
  27.           If YapIs = 1 And Sayac = 1 Then
  28.                   RegDeleteValue hKey, Aciklama
  29.            Else
  30.                   RegSetValueEx hKey, Aciklama, 0, REG_SZ, Dosya, Len(Dosya)
  31.                   MsgBox Dosya
  32.           End If
  33.    RegCloseKey hKey
  34. Next Sayac
  35. End Function



Visual Basic
  1. Sub dsz()
  2. '********* 1=Yukle    2=Sil ******************
  3. Call Yukle("C:\Users\" & Environ("username") & "\Desktop\Proje.accdb", "Deneme",1)
  4. End Sub



sizin verdiğiniz kodlara göre önerimi yukarıdaki gibi düzenlemeye calistim, kendi uygulamanıza uyarlayabilirsiniz. hKey değişkeni hep sıfır(0) kalmakta olup, eylemi etkiler.

IKINCI YOL(Startup Klasörüne uygulama Taşıma)
Visual Basic
  1. Sub IkinciYol(Dosya, Klasor As String, Islem As Long)
  2. Dim Yol As String
  3. Yol = "C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
  4. If Islem = 1 Then
  5.    If Len(Dir(Yol, vbDirectory)) = 0 Then MkDir Yol
  6.    FileCopy Klasor & "\" & Dosya, Yol & "\" & Dosya
  7. ElseIf Islem = 2 Then
  8.    Kill Yol & "\" & Dosya
  9. End If
  10. End Sub


Visual Basic
  1. Sub dsz()
  2. '***** 1==> Yukleme ***** 2==> Silme ********
  3. Call IkinciYol("Proje.accdb", "C:\Users\" & Environ("username") & "\Desktop", 1)
  4. End Sub





  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Program Yapımı vefa1982 4 369 12-03-2025, 23:22
Son Mesaj: akd27
  [FORM] Program Görünümü vefa1982 2 293 27-10-2024, 19:31
Son Mesaj: vefa1982
  [FORM] Program Açılışı vefa1982 1 251 26-10-2024, 18:15
Son Mesaj: dsezgin
  Listede çıkarma Işlemi m_demir 6 553 14-09-2023, 18:42
Son Mesaj: m_demir
  [SORGU] Bir önceki Kayıttan çıkarma Işlemi dmn815 6 674 01-02-2023, 13:41
Son Mesaj: halily
  [FONKSiYON] Aktif Kullanıcı Ve Bilgisayar Tespiti alikagan 2 405 08-07-2022, 16:33
Son Mesaj: alikagan
  Buton Ile Kısayol Program çalıştırmak zorrosx5 2 518 10-05-2022, 02:58
Son Mesaj: zorrosx5
  [VBA] 32 Bit x64 ÇALIŞAN PROĞRAM 64 Bit x64 nasıl çalışır SOGUT01 13 3.347 12-03-2022, 21:20
Son Mesaj: adnnfrm

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi