From: Karl E. Peterson on
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
"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
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
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
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.