• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Caps Lock Tuşunu Otomatik Açmak

Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Excelde dosyanın her açılışında caps lock tuşunu aktif yapan bir makro varmıdır?
Yardımlarınızı bekliyorum...
 
Kod:
Sub auto_open()
CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
End Sub

Ekteki dosyada caps lockun açık veya kapalı olduğunu kontrol eder.
 
Merhaba Mahmut bey yardımınız için teşekkür ederim. Yalnız bu verdiğiniz kod tam olarak işimi görmedi.
Bu kod ile açılıştı mevcut durum tersine dönüyor. Caps Lock açıksa kapatıyor. Kapalıysa açıyor.
Caps Lock açıkken de durumu açık olarak seçen bir kod yokmudur acaba?
Yardımlarınızı bekliyorum...
 
Bu şekilde deneyin.

Kod:
Private Declare Function GetKeyState Lib _
        "user32" (ByVal nVirtKey As Long) As Long
    
Private Function GetCapsLockKey() As Boolean
    GetCapsLockKey = GetKeyState(vbKeyCapital)
End Function


Sub test()
If GetCapsLockKey Then _
    CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
End Sub
 
Zeki bey bu kod da direk açık olan caps locu kapatıyor..
 
Zeki bey bu kod da direk açık olan caps locu kapatıyor..

Küçük bir eksik vardı.

Kod:
Private Declare Function GetKeyState Lib _
        "user32" (ByVal nVirtKey As Long) As Long
    
Private Function GetCapsLockKey() As Boolean
    GetCapsLockKey = GetKeyState(vbKeyCapital)
End Function


Sub test()
If [COLOR=Blue][B]Not[/B][/COLOR] GetCapsLockKey Then _
    CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
End Sub
 
SORUN ÇIKTI:
Açılışta otomatik çalışması için açılmasını istediğim diğer kodların bulunduğu Auto_Open isimli makroya ekledim.

Private Declare Function GetKeyState Lib _
"user32" (ByVal nVirtKey As Long) As Long
olarak yazan satırda uyar veriyor.
Ne yapmam lazım acaba?
 
Selamlar,

Hata veren satırı Auto_Open ile başlayan satırın üstüne yazın. Yani bu satır kodların en üst kısmında olmalı.

Auto_Open içeren modülünüzü aşağıdaki şekilde düzenlemelisiniz.


Kod:
Private Declare Function GetKeyState Lib _
"user32" (ByVal nVirtKey As Long) As Long
 
Private Function GetCapsLockKey() As Boolean
GetCapsLockKey = GetKeyState(vbKeyCapital)
End Function
 
[LEFT]Sub Auto_Open()[/LEFT]
If [COLOR=black]Not[/COLOR] GetCapsLockKey Then CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
[COLOR=red]'Sizin kodlarınız...[/COLOR]
[LEFT]End Sub[/LEFT]
 
Son düzenleme:
Alternatif.
Ekteki örneği inceleyiniz.
 
Son düzenleme:
Değişik bir alternatif.
Bu kodlarda açık veya kapalı olduğunu belirtir.

Kod:
Option Explicit
 
Private Declare Function GetKeyState Lib _
"user32" (ByVal nVirtKey As Long) As Integer
 
Public Function CapsLockOn() As Boolean
    Dim iKeyState As Integer
    iKeyState = GetKeyState(vbKeyCapital)
    CapsLockOn = (iKeyState = 1 Or iKeyState = -127)
End Function
 
Sub Auto_Open()
   If CapsLockOn() Then
      MsgBox "CapsLock Açık"
   Else
      MsgBox "CapsLock Kapalı"
   End If
End Sub
 
Son düzenleme:
Mahmutt bey teşekkür ederim emeğinize sağlık....
 
İyi günler. Bu konuda capslock ve numlock tuşları için nasıl düzenleme yapabiliriz.
 
Deneyiniz.

Kod:
Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Private Const kCapital = 20
Private Const kNumlock = 144

Public Function CapsLock() As Boolean
    CapsLock = KeyState(kCapital)
End Function

Public Function NumLock() As Boolean
    NumLock = KeyState(kNumlock)
End Function

Private Function KeyState(lKey As Long) As Boolean
    KeyState = CBool(GetKeyState(lKey))
End Function

Sub Test()
    If CapsLock = False Then CreateObject("Wscript.Shell").SendKeys "{CAPSLOCK}"
    If NumLock = True Then CreateObject("Wscript.Shell").SendKeys "{NUMLOCK}"
End Sub
 
Korhan Hocam çok teşekkür ederim kodlar çalıştı. Elinize Emeğinize sağlık. İyi akşamlar.
 
Çok teşekkürler arkadaşlar
Saygılarımla
 
Geri
Üst