From: Karl E. Peterson on 2 Apr 2010 15:57 Juergen Thuemmler wrote: > Hi Karl, > >> Yes, I'd be happy to! However, I just now realized that you weren't >> working with the most recent version of the code. We should probably start >> from that basepoint, eh? (I hope this couldn't have been solved originally >> by having grabbed the more recent bits.) > > well, I downloaded the latest available version (Dec 2009), modified it as > shown, and - it still works ;-) Good to hear. I've been too busy to get to that yet, but I'm gonna start plugging it in soon! Thanks... :-) -- ..NET: It's About Trust! http://vfred.mvps.org
From: Helmut Meukel on 2 Apr 2010 16:34 "Karl E. Peterson" <karl(a)exmvps.org> schrieb im Newsbeitrag news:uzkBGNo0KHA.840(a)TK2MSFTNGP06.phx.gbl... > Helmut Meukel wrote: >> ... >> I tested it now with Win2000 and WinNT4.0 SP6a and Ctrl-Alt worked on both. > > When you ran those tests in the older OS's, what keyboard did they think they > were using? I wonder if you were to tell them to use US English, if those > shortcuts would disappear? > Hi Karl, the Setting in Control Panel/International was German(Germany) for both Locale and keyboard. I repeated it now with both set to English(US). Guess what happened: NT4 regarded my german keyboard as an US keyboard, my Z-key generated Y and the Y-key generated Z. All Symbols appeared where they should be on an US keyboard and Ctrl-Alt did no longer work to generate those characters and symbols. Helmut.
From: Karl E. Peterson on 2 Apr 2010 17:18 Helmut Meukel wrote: > "Karl E. Peterson" <karl(a)exmvps.org> schrieb im Newsbeitrag > news:uzkBGNo0KHA.840(a)TK2MSFTNGP06.phx.gbl... >> Helmut Meukel wrote: >>> ... >>> I tested it now with Win2000 and WinNT4.0 SP6a and Ctrl-Alt worked on >>> both. >> >> When you ran those tests in the older OS's, what keyboard did they think >> they were using? I wonder if you were to tell them to use US English, if >> those shortcuts would disappear? > > the Setting in Control Panel/International was German(Germany) for > both Locale and keyboard. > > I repeated it now with both set to English(US). > Guess what happened: NT4 regarded my german keyboard as an > US keyboard, my Z-key generated Y and the Y-key generated Z. > All Symbols appeared where they should be on an US keyboard > and Ctrl-Alt did no longer work to generate those characters and > symbols. Okay, I guess that's good. So it's the OS, not the hardware, that's determining what happens. (Presumably, it would've still worked in Word, etal?) Thanks... -- ..NET: It's About Trust! http://vfred.mvps.org
From: Karl E. Peterson on 2 Apr 2010 17:19 Juergen Thuemmler wrote: > Hi Karl, > >> Yes, I'd be happy to! However, I just now realized that you weren't >> working with the most recent version of the code. We should probably start >> from that basepoint, eh? (I hope this couldn't have been solved originally >> by having grabbed the more recent bits.) > > well, I downloaded the latest available version (Dec 2009), modified it as > shown, and - it still works ;-) Works here, too. Now I just need to find a bit more elegant way to handle that StuffBuffer routine. It's sorely in need of a GoSub, don't ya think? <g> Btw, I think the intrinsic constant you were looking for is vbKeyControl (17)? -- ..NET: It's About Trust! http://vfred.mvps.org
From: Juergen Thuemmler on 2 Apr 2010 17:48
Hi Karl, > Works here, too. Now I just need to find a bit more elegant way to handle > that StuffBuffer routine. It's sorely in need of a GoSub, don't ya think? > <g> may be, if you like it ;-) But I don't believe it would better... I forgot somethig regarding "{~}": Private Sub ProcessNamedKey() Dim EndPtr As Long, i As Long, repeat As Long Dim this As String Dim pieces As Variant '() As String Dim vk As Integer Dim capped As Boolean, extend As Boolean, AltGr As Boolean '<<<### EndPtr = InStr(m_DatPtr + 2, m_Data, "}") ' No need to do anything if endgroup immediately follows beginning. If EndPtr > (m_DatPtr + 1) Then ' Extract group of characters. this = Mid$(m_Data, m_DatPtr + 1, EndPtr - m_DatPtr - 1) ' Break into pieces, if possible. pieces = Split(this, " ") ' Second element, if avail, is number of times to repeat stroke. If UBound(pieces) > 0 Then repeat = Val(pieces(1)) If repeat < 1 Then repeat = 1 ' Attempt to retrieve named keycode, or else retrieve standard code. vk = GetNamedKey(CStr(pieces(0))) If ByteHi(vk) = 6 Then AltGr = True '<<<### If vk Then ' Is this an extended key? extend = IsExtendedKey(this) Else ' Not a standard named key. vk = VkKeyScan(Asc(this)) If ByteHi(vk) = 6 Then AltGr = True '<<<### capped = CBool(ByteHi(vk) And 1) vk = ByteLo(vk) End If ' Stuff buffer as many times as required. For i = 1 To repeat Call StuffBuffer(vk, capped, extend, AltGr) '<<<### Next i ' Advance data pointer to closing parenthesis. m_DatPtr = EndPtr End If End Sub > Btw, I think the intrinsic constant you were looking for is vbKeyControl > (17)? ;-) Juergen. |