|
Hey,
has anybody tried using global hooks with WH_JOURNALRECORD or WH_JOURNALPLAYBACK in VB.NET?
I used the class found at http://msdn.microsoft.com/msdnmag/issues/02/10/cuttingedge/
and http://www.codeproject.com/csharp/NetWin32Hooks.asp and it works fine with WH_MOUSE or WH_KEYBOARD (i have modified the code to make system-wide and it works fine).
However, once i set the hook to WH_JOURNALRECORD or WH_JOURNALPLAYBACK the system stops responding (but the mouse still works) and the system only un-freezes when i pres CTRL+ALT+DEL...i also noticed that the journal callback procedure is never called in WH_JOURNALRECORD but it IS called after WH_JOURNALPLAYBACK but ONLY when i press CTRL+ALT+DEL...anybody knows anything about this?
Thanks
|
|
|
|
|
check the order you are calling the keyboard hook's, WH_JOURNALRECORD will freeze up if somthing else hooks the keyboard after it has been installed.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Hooks/HookReference/HookFunctions/JournalRecordProc.asp
An application that has installed a JournalRecordProc hook procedure should watch for the VK_CANCEL virtual key code (which is implemented as the CTRL+BREAK key combination on most keyboards). This virtual key code should be interpreted by the application as a signal that the user wishes to stop journal recording. The application should respond by ending the recording sequence and removing the JournalRecordProc hook procedure. Removal is important. It prevents a journaling application from locking up the system by hanging inside a hook procedure.
I would also heed this Note from MS:
"Note: You should use global hooks only for debugging purposes; otherwise, you should avoid them. Global hooks hurt system performance and cause conflicts with other applications that implement the same type of global hook."
|
|
|
|
|
Is there some kind of tab order, like you have in visual c++.
<italic>Work hard and a bit of luck is the key to success.
|
|
|
|
|
Sure is - each control has a Tabindex prop......works in order of the indices that you apply to the controls.
"If i was king cigarettes would be free."
|
|
|
|
|
goodmast3r wrote:
Work hard and a bit of luck is the key to success.
No it's not! It means the schmuck you work for gets to look good because of your work. You get stuck as his slave until he gets promoted and you become someone else's slave.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
That's cheery thought. Having a bad day?
"if you vote me down, I shall become more powerful than you can possibly imagine" - Michael P. Butler.
|
|
|
|
|
You have no idea...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Is there any way to hook keyboard input as wl as mouse clicking event?
Word.Application object has an event called
WindowBeforeDoubleClick I am looking for similar event for keyboard.
I am trying to find a way to enable a toolbar button when active document is modified.
Van
|
|
|
|
|
As i understand, you want to keep track of every keyboard action the user performs in the word document?
You can always implement a local hook on the word document thread using any of the classes available here: http://www.codeproject.com/csharp/NetWin32Hooks.asp or here http://www.codeproject.com/csharp/GlobalSystemHook.asp
The rest of the work you have to do is first get fmailiar with these classes (maybe you already are) and second you'd have to get the ThreadID of the desired word-document window...I know a way to do this by using the Win32 API call for FindWindowEx...you simply have to specify the name of the window (in your case "Word" and it will return the hWnd...just stick that hWnd instance to the above classes and you're hooked to the word thread
Let me know what happens
|
|
|
|
|
Hi
We want to create a startup script that when run will remove all groups from the local Windows 2000 Power User group and then add a Active Directory Group to this local group. Does anyone have or know were I could find this a example of code that does this?
Thanks
Andrew
www.purenetworking.net
|
|
|
|
|
You'll find what your looking for at the Script Repository on MSDN[^]. Be careful how you code this script and when it is run though. You don't want your users to be running it at login. This will have to be run by a Policy object that has admin rights to the machine.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Try to browse the script in here[^]. It has a lot of sample script to work in windows OS.
APO-CEDC
Save Children Norway-Cambodia Office
|
|
|
|
|
how do you play a sound-file in VB.NET without having to play it through a Media Player object?
|
|
|
|
|
Mentalis.org[^] has a class[^] to play media.
I used it for a media player I made a while back.
--
Aaron Eldreth
|
|
|
|
|
I have a situation where I need to download multiple files in a vb.net application.
To speed up the process, I am trying to download multiple files at one time looping through each of the files and launching them in their own thread (code below). The problem is that when there are hundreds of files to download, it launches them all at the same time and half don’t get downloaded. Any idea how I could control it to launch say 4 at a time, so that when one finished another would launch until the batch is complete? Was thinking message queues but am not sure if this is the right path to take.
Any help is appreciated
Dim count As Integer
'loop through each file
For count = CType(txturlcountbegin.Text, Integer) To CType(txturlcountend.Text, Integer)
' create new download object
Dim c As Common = New Common
' Hoook up the on download complete event
AddHandler c.FileDownloaded, AddressOf filesaved
'Set the file download properties
c.fn = txtFileName.Text
c.sp = txtSavePath.Text
c.wc = txtWildCard.Text
c.tb = txtBegin.Text
c.te = txtEnd.Text
c.url = Regex.Replace(txtURL.Text, txtURLWILDCARD.Text, count.ToString)
c.batchnum = count
'launch a new thread to download the files
Dim t As New Thread(New ThreadStart(AddressOf c.getFiles))
t.Start()
Next
|
|
|
|
|
You would have to write your own thread manager, probably using the thread pool to do this. For an example, you might want to search the 'Net for examples of download managers.
You might also want to consider using the BITS service to handle file downloads for you. For an example of this, you can check out Background Copying[^] on MSDN.
Considering that the network pipe can only send a single packet at a time to a single thread, all of your threads will be waiting for each other to get done with the network pipe. You could have 10 downloads going at the same time, but their really not going to get there much faster than if you downloaded them one at a time.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I want to display a save dialog box on a web page.
I used response.append header but that displays both save and open dialog whereas I want to have only the save button.
Or else. is it possible to display a file dialog box to the user the same as used in Visual Basic 6.0
Thanks in anticipation.
Regards
Nidhi
|
|
|
|
|
This question really belongs in the ASP.NET Forum. But, you really don't have any control over the dialog box the browser puts up in response to downloading a file. Unless, of course, your page has the dialog box functionality coded in JavaScript.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
can u code the same in java scrpit?if yes how.
thanks n regards
|
|
|
|
|
Like I said, this is a question for the ASP.NET Forum, not VB.NET.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I wanted to show a PrintPreviewDialog directly on top of a form in my application just like the way IE does. However, setting the Location, Size and the SetDesktopLocation properties of the dialog fails to do this. The dialog has the same size as the calling form does but it is moved to the left and lower than the calling form. I think this is by design but I do not know why. Is there a workaround for this?
|
|
|
|
|
Can it be determined if the user presses a menu or if the user uses a shortcut? Both actions result in the same code being run, I just wanted a slightly different behavior between the ShortCut and the Menu.
|
|
|
|
|
That doesn't follow proper GUI standards at all. If the user presses a keyboard shortcut for a menu item, it should do EXACTLY the same thing as clicking on that menu item.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Yeah, I know. But could it be done?
|
|
|
|
|
There is nothing in the MenuItem event handlers that will expose this kind of information. You could try to use the OnKeyDown and OnKeyUp events to track what keys are being used just before the Click event fires on the MenuItem object, but I don't see this as a good or even flexible option to use. Is that much code really worth the odd (and non-intuitive) interface?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|