Hi Rick,
Some of the errors on MSVCRT were related to the fact studio changed them
each time a new studio came out...
Below is what I posted which covers almost all the keys on the keyboard.
There are several ways to do this, but I just have them all point to the same
call back function where you can add a select case list or something which
works for your usage. This at least allows the keys to be in the window there
assigned to when the dialog is opened/created.
In terms of separate threads, this can at least have you in the window
dialog of your choosing and when a key is pressed while in that dialog, there
processed and the game moves on...such as opening another dialog or simulated
display.
Thus inside the dialog the key is hit and goes to what ever dialog/function
for processing
Not a big thing but very workable for Visual Basic, if you have events...
Bruce
'Global Script Create Assignments:
Dim myMainEscape: Set myMainEscape = Nothing
Dim myMainAltF4: Set myMainAltF4 = Nothing
CONST TotalKeys = 90 'Or any number you are using.
Dim myFuncKeys(): ReDim myFuncKeys( TotalKeys) 'Used when creating new or
destroying
old.
'When Creating A Dialog or Closing it, use these 2 routines:
Queue "KeyRegister", dObj
Queue "KeyUnRegister"
Sub KeyRegister( dObj)
'Registering All Keys For Game.
Dim theKeys: theKeys = ",./ABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-="
Dim myKey: myKey = Array("Insert", "Delete", "Home", "End", "Page Up", "Page
Down",
"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10")
Dim myKeyFunc: myKeyFunc = Array("Insert", "Del", "Home", "End", "Page Up",
"Page
Down", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10")
Set myMainEscape = Keyboard.RegisterHotkey("Escape", "ExitMenu", dObj.Window,
dObj)
Set myMainAltF4 = Keyboard.RegisterHotkey("Alt-F4", "ExitMenu", dObj.Window,
dObj)
Dim i
For i = 1 To 15
Set myFuncKeys( i) = Keyboard.RegisterHotkey(myKey(i), "FuncKeys",
dObj.Window,
myKeyFunc(i))
Next
For i = 0 To 15
Set myFuncKeys( i+16) = Keyboard.RegisterHotkey("Shift-"&myKey(i), "FuncKeys",
dObj.Window, "Shift "&myKeyFunc(i))
Set myFuncKeys( i+30) = Keyboard.RegisterHotkey("Control-"&myKey(i),
"FuncKeys",
dObj.Window, "Control "&myKeyFunc(i))
Next
For i = 1 To 42
Set myFuncKeys( i+45) = Keyboard.RegisterHotkey( Mid( theKeys, i, 1),
"FuncKeys",
dObj.Window, Mid( theKeys, i, 1))
Next
End Sub
Sub KeyUnRegister()
ReDim myFuncKeys( TotalKeys)
Set myMainEscape = Nothing
Set myMainAltF4 = Nothing
End Sub
Sub ExitMenu( dObj)
dObj.Close
End Sub
Sub FuncKeys( txt)
'Test but will be used for game select case statements.
Speak " Function Key: " & txt
'Select Case txt
'End Select
End Sub
Sent: Friday, June 21, 2013 5:51 AM
Subject: Re: Registering A Dll For VB
Hi Again Bruce: OK, I reviewed the MSCRT dll and found out what it all means
and understand what you are trying to do.
I am not sure you can hook into the MSCRT dll from within a VBScript in any
case but I could be wrong.
There seems to be allot going on in the Visual C Library which may require
access to framework objects - I didnt see that mentioned but it sounds logical.
There is some kind of problem with VBScript where it can not do some things and
as a result cant tie directly into many of the Managed Libraries which MSCRT
may do.
The idea is great and, if it works, would provide some very nice features to
scripting but it is beyond me.
The only thing I could think of would be to experiment trying to include it in
a script somehow. If you want to hook into it via a C++ program I think that is
doable enough then you could hook the script via methods in the C++ program. I
think it could be done in a C# program but I didnt see anything on that other
than a blurb on setting some compiler options - and I am not sure that wasnt
really suppose to be for C++ since I didnt dig into the details.
Make sure you have a backup of your system if you muck about with that puppy
since I saw allot of olks who had major problems with it for one reason r
another with one of the symptoms not being able to boot up if I remember.
Sorry I cant be more help but you are digging pretty deep into some pretty cool
stuff and I am just an old fat blind guy who does a little application
programming usually related to Financial Platforms.
Just out of curisoty let me know if you get it working as it may offer some
very interesting options to scripts.
Rick USA
----- Original Message -----
From: BX
To: [email protected]
Sent: Thursday, June 20, 2013 2:03 PM
Subject: Re: Registering A Dll For VB
Hi Rick,
I use all features of Python and the Trek Game, along with the Battleship
game, are both written in Python and I compile them for portability
I had issues and problems when getting stuff compiled and had the wrong
version of PyInstaller. I think I got taken to the wrong web site and that is
always a problem.
I now have a real good working PyInstaller now and I can compile on any
of my computers, Python25 or Pyth0on27. The best one is Python 2.5 and
modifications were needed for Python 2.6 and later and that is where it fell
apart.
For the needed dll, MSVCRT is packaged differently for each studio
version, thus causing lots of problems when doing a compile; fixed now.
I would like to write a dll for studio and I am using 2010 at the moment,
2010 express.
I would like to make a hook for the MSCRT so the input and display
commands could be usable inside VBScript in an easy way.
I have bypassed that now with the keyboard hooks I posted the other day
by just making dictionaries for all the commands neeeded for any project or
game.
So, if you can help I would be appreciated. I thought I had DLL info when
first installing VS2010 but have been unable to find it since.
Bruce
Sent: Thursday, June 20, 2013 5:25 AM
Subject: Re: Registering A Dll For VB
Hi Bruce: 2 things...
First, doesnt nvda use python to develop in? And, if so, do you know if
python has an easy access to either the MS managed UIA features or if they use
the Managed version of the UIA features if python has access to the Managed
Framework?
Second, you mention 2010 Express which sounds like you may be doing something
in one of the Visual Studio lagnlanguages. If so I can help you with DLL(s) in
vb.net and likely c#.net but I am confused if you are working in VBA - that
sounds like perhaps you are working in Office Products.
Anyway, what do you know about python and accessing UIA features if that is
what you are doing.
Rick USA
----- Original Message -----
From: BX
To: [email protected]
Sent: Wednesday, June 19, 2013 2:01 PM
Subject: Re: Registering A Dll For VB
Hi Chip,
there was nothing there that was of any use.
I will live with what I have. I may write an app and compile it to be
able to use Python for many things...
My 2010 express seems to not have any Dll stuff, I could not find
anything, but thought for sure I had found some back when I first installed it
but have not been able to find it again.
The key functions I posted are the best solution for now and should
work just fine. This is why I posted them for anyone can define them any way
they chose to either using 1 call back function or one for each, so will leave
it at that.
Thanks, but have to do outside work and will have to pry myself away
from the computer because I spent the last 2 days writing a simple mixer
program which almost could be used as a Python version of the PlaySound
function/object with the added feature of repeats and volume adjustment. It
actually works with a few minor bugs which can iron out some later day.
Thanks, Bruce
Sent: Sunday, June 16, 2013 8:14 PM
Subject: RE: Registering A Dll For VB
Bruce,
The first example I see is his ironcom.net, meant for sharing some .net
objects I think.
His other app I was remembering is named HomerJax, it implements shared
objects in Jscript. Due to an unfortunate bug in GW's appGet however, this
won't show up for you as a choice unless you uncheck the "show English only"
choice in the appGet's "View" menu; the HomerJax app apparently has no language
specified, so it doesn't show up with the English apps, and this is the default
for appGet. Once you uncheck this, you should see it in the "general" category.
Hth,
Chip
From: BX [mailto:[email protected]]
Sent: Sunday, June 16, 2013 6:18 PM
To: [email protected]
Subject: Re: Registering A Dll For VB
Hi Chip,
I found out you have to call a shell command, which I think would work
using the run command from a shell object made in VBScript.
Also, the dll I wanted to load was the MSVCRT or future ones, which are
changing each time Microsoft writes and new studio, so that idea died, besides
not being able to call from the dll which is always running.
Unless someone has come up with a way to call the MSVCR dll properties
and methods on this list.
which app examples did Jamal write or where are they, or what are they
called?
It certainly would be nice to use the Python sound mixer apps because
there much easier to use, including id and volume control. They also use the
MVCR dll by actually calling it by name, for they wrote a module for it using
the same name.
So, if you can give me the location of those examples he wrote and I
will take a look at them.
Bruce
Sent: Sunday, June 16, 2013 5:22 PM
Subject: RE: Registering A Dll For VB
Bruce,
You can't from VBScript. I don't know Jscript, but I'm under the
impression it can use a DLL; if that's correct, you could use it or Python and
write some glue routines which are shared, and have them call the dll. I
believe Jamal wrote some examples of shared Jscript apps.
Of course you could write glue routines in vb.net and have them call the
dll as well.
Hth,
Chip
From: BX [mailto:[email protected]]
Sent: Wednesday, June 12, 2013 9:21 AM
To: [email protected]
Subject: Registering A Dll For VB
Hi!
How do you register a dll for sharing inside the we object model?
Bruce