• 0

How to make an open windows list VB 2010 express


Question

Hello all

Basically this has stumped us. We are making a program that depends on being able to choose which window of all open windows is the one to use. However, we cant find which command to use to get the windows to make the list. The window will most likely be firefox. This is 2010 express so there isn't .net commands.

Any ideas here whould be most appreciated.

Thanks

14 answers to this question

Recommended Posts

  • 0

If it will always be firefox you can use System.Diagnostics.Process.GetProcessByName. If the user must choose then I recommend you reference managed winapi and use code such as (C# but very similar and still .NET, should give you the idea. This example fills a treeview named treeView1)

foreach (SystemWindow m in SystemWindow.AllToplevelWindows.Where<SystemWindow>;
                ((SystemWindow g) =&gt; {
            if (g.Visible) treeView1.Nodes.Add(g.Title + "[" + g.HWnd.ToString() + "]").Tag = g.HWnd; return false;
                })) { }

  • 0
  On 01/12/2010 at 22:09, omnicoder said:

If it will always be firefox you can use System.Diagnostics.Process.GetProcessByName. If the user must choose then I recommend you reference managed winapi and use code such as (C# but very similar and still .NET, should give you the idea. This example fills a treeview named treeView1)

foreach (SystemWindow m in SystemWindow.AllToplevelWindows.Where<SystemWindow>;
                ((SystemWindow g) =&gt; {
            if (g.Visible) treeView1.Nodes.Add(g.Title + "[" + g.HWnd.ToString() + "]").Tag = g.HWnd; return false;
                })) { }

Thanks, but as we don't have .net extensions it won't run. We need a solution for VB 2010 express without using .net

  • 0

All express versions of any of the .NET languages fully support '.net extensions' so I'm not sure what you think is missing. Everything in omnicoders response is possible with VB.NET 2010 Express .

  • 0

Unless he was referring to my use of Where<T>, which I don't think is avaliable in .NET2.0 (in which case he should upgrade to 3.5/4.0) but that would be trivial to convert into a loop for use in 2.0 anyway.

VB 2010 uses .net exclusively, there is no way around that.

  • 0
  On 02/12/2010 at 00:27, Getwin said:

Thanks, but as we don't have .net extensions it won't run. We need a solution for VB 2010 express without using .net

You must have the .NET Framework to use any software written in VB or C#. The "old" style of VB doesn't exist anymore.

  • 0

Hi and thank you to everybody esp. Omnicoder

However, we still cannot use that code. It doesnt compile because the functions are unrecognised by the interpreter.

What we want to do is display a dialogbox to the user, which lists all open windows on the computer, so that he can select one to use. Our code will then interact with that window. That is the objective.

We have tried many samples of code we have found from online tutorials, but none of them will work in our computer because all of them use .net functions. We have the Visual Basic 2010 Express application, which errors over anything with .net code. It will not run it or compile it. This is the free application from MS which specifically has all .net functionality removed.

We need code to do this without using .net extensions. We know it is possible because we have seen someone's application do exactly this kind of window on this computer.

Maybe his code was not vb ? It could have been C#.

Any ideas would be appreciated.

Thanx

  • 0

As I said, if you don't want to use the .NET Framework you'll have to either buy a copy of Visual Basic 6 if you can find it. Visual Basic and C# have been .NET for almost ten years now.

Visual Studio Express doesn't have any .NET stuff removed: it is .NET. smile.gif

The framework is included with all modern versions of Windows. Out of curiosity, why don't you want to use it?

Just to be clear, this is the Visual Studio Express family. Is that what you are using?

  • 0

Module Module1

	Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As IntPtr) As Boolean
	Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As IntPtr) As Boolean

	Sub Main()
 	For Each p As Process In Process.GetProcesses
 	If Not IsWindowVisible(p.MainWindowHandle) Then Continue For
 	Console.WriteLine(p.ProcessName) ' Just an example - You would want to add this to your program's window list.
 	BringWindowToTop(p.MainWindowHandle) ' This will bring the process's window to the top.
 	Next
	End Sub

End Module

Try that. It complies and runs fine in VBE2010. There doesn't seem to be any around using at least one or two P/Invoke commands.

Obviously you won't want to use it "as-is" since it simply loops through all the non-hidden process windows and brings them to the front, but you get the idea. :)

  • 0

thank you Grey Wolf for your code,

but it produces nothing on our computer.

we have modifed the code to make it display what it finds and it still finds nothing.

Module Module1

Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As IntPtr) As Boolean

Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As IntPtr) As Boolean

Sub Main()

For Each p As Process In Process.GetProcesses

MsgBox(p)

'If Not IsWindowVisible(p.MainWindowHandle) Then Continue For

'Console.WriteLine(p.ProcessName) ' Just an example - You would want to add this to your program's window list.

'BringWindowToTop(p.MainWindowHandle) ' This will bring the process's window to the top.

Next

End Sub

End Module

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Main()

End Sub

End Class

the interpreter likes it, runs it but there is no result. just an empty window.

we cannot figure out what is wrong here. Technically the code is correct. but it doesnt work on our system.

Any ideas ?

  • 0

Public Class Form1

	Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As IntPtr) As Boolean
	Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As IntPtr) As Boolean
	Dim visibleWindows As New List(Of Process)
	Dim list As New ListBox

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 	Me.Controls.Add(list)
 	list.Dock = DockStyle.Fill
 	AddHandler list.DoubleClick, AddressOf List_DoubleClick

 	For Each p As Process In Process.GetProcesses
 	If Not IsWindowVisible(p.MainWindowHandle) Then Continue For
 	list.Items.Add(p.MainWindowTitle)
 	visibleWindows.Add(p)
 	Next
	End Sub

	Private Sub List_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
 	BringWindowToTop(visibleWindows(list.SelectedIndex).MainWindowHandle)
	End Sub
End Class

Try that. I coded the listbox control into the Form_Load so you don't have to create it on the designer. Double-clicking on a window title will bring that window to the front.

  • 0

Thanx guys

Omnicoder you were right about that string thing. It should be p.ProcessName. And it correctly shows processes.

And GreyWolf we tried that new bit of code and it works exactly like u said it should. It finds all windows and can bring forward the one chosen. That was a novel strategy to find all processes and ignore processes without windows. Clever :D

Thank you all very much.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • PornHub commits to age checks for UK users by 25 July by Paul Hill Ofcom, the UK’s digital regulator, has announced that PornHub and several other porn sites have agreed to put robust age checks in place by the deadline next month on 25 July. The confirmations to Ofcom will likely be used by the regulator against the companies if they fail to comply by the deadline as justification for a fine. The companies that have publicly stated they’re going to have safeguards in place by the deadline are PornHub, BoyfriendTV, Cam4, FrolicMe, inxxx, Jerkmate, LiveHDCams, MyDirtyHobby, RedTube, Streamate, Stripchat, Tube8, and YouPorn. There may be other companies that are preparing, these are just the ones that were happy to be named. Ofcom has been given the task of making sure porn sites comply with age check rules. If companies don’t follow the rules, Ofcom has the power to impose fines and even apply for a court order to ban websites or apps from being available in the UK. These rules are part of the wider Online Safety Act, which aims, in part, to keep children safe online. So far, it has launched investigations into four porn providers for failing to comply with its requests. Oliver Griffiths, Ofcom Group Director of Online Safety said: “Society has long protected youngsters from products that aren’t suitable for them, from alcohol to smoking or gambling. But for too long children have been only a click away from harmful pornography online. “Now, change is happening. These age checks will bring pornography into line with how we treat adult services in the real world, without compromising access and privacy for over-18s.” The new age verification methods come in various shapes and sizes (pun intended) including credit card checks, open banking, and facial age estimation. While these may not keep all kids from accessing porn, they’ll act as a significant hurdle. For adults concerned about handing over information to access porn sites, Ofcom said that the measures do not harm your privacy. All of the age assurance methods are subject to the requirements of UK privacy laws, including on processing personal data. The Information Commissioner’s Office (ICO) is overseeing this area to ensure companies comply. Ofcom’s own studies have found that 3% of 8-9 year-olds have been exposed to online pornography at some point. This highlights how easy it is to find this content and clearly something has to be done. It’ll be interesting to see how these measures actually play out when they get rolled out.
    • Looks like MS is officially extending Windows 10 support while stopping just short of officially changing the end date. I teased in the last article that the process for gaining free support was a little invasive, but this is basically just giving it out for free, so I guess I'm taking back those words.
    • Microsoft shares Windows 10 ESU key guide for office PCs that don't support Windows 11 by Sayan Sen Recently, the Indian government issued a caution about the upcoming end of support for Windows 10 which is about four months away. Interestingly, on that very day, Microsoft made a major announcement regarding this as the tech giant debuted free enrollment options wherein support would be extended for another year at no extra cost. Microsoft is also trying to make it easy to set up Extended Security Updates (ESU) with a new tool. You can see in the image below: New ESU enroll wizard Following that, today, the company has shared a new guide on how to activate ESU via Intune in the case of Windows 10 office PCs that are not supported on Windows 11. First up, Microsoft has reminded users of the prerequisites of Windows 10 ESU: The system needs to be on Windows 10 22H2 with KB5046613 (November 2024 Patch Tuesday) or newer. The device needs access to the network endpoints required for client activation. The process that is used for activation needs administrative privileges on the device. The guide contains several PowerShell scripts and are meant for IT admins and system admins. One of those is a validation script "Check-Win10ESUPrereq.ps1" that Microsoft has published to help "verify a device has the required version and patch level for Windows and it can communicate to the required network endpoints." Essentially, it checks if the aforementioned requirements are satisfied and can be used for troubleshooting against those prerequisites. After the "validation," Microsoft says there are two ways to proceed with the ESU key activation. First. it can be done by either Remediation through: Detection Script (Win10ESUActivation-detect.ps1) and Remediation Script (Win10ESUActivation-remediate.ps1). And second, by Win32 Application with Win32 Install Script (Win10ESU-install.ps1) and Win32 Detection Script (Win10ESU-detection.ps1). In the case of Remediations, Microsoft mentions "some licensing considerations" due to which "some smaller companies may not have that option." Finally, Microsoft has also shared some Activation IDs for manual verification via Slmgr VB script for obtaining volume activation information: Win10 ESU Year1: f520e45e-7413-4a34-a497-d2765967d094 Win10 ESU Year2: 1043add5-23b1-4afb-9a0f-64343c8f3f8d Win10 ESU Year3: 83d49986-add3-41d7-ba33-87c7bfb5c0fb You can check the full guide and the details here on Microsoft's official Tech Community website.
    • It blows me away how overpriced Synology is. $600+ for a 3+ year old SATA NAS with only gigabit networking!! Even for 2022 that is pretty low-end hardware. Yes, the Synology software is fantastic, but if we say this hardware is worth $300 max (and that is even giving a generous premium to the fact that it is made by a respected OEM), their software is NOT worth an additional $300, especially considering it is locked to the hardware it shipped on and you have to pay that premium again for your next device. Important correction to the specs table above. Saying Disk Capacity is 72TB and even going further to detail that is 4x18, strongly implies it comes with those disks, which it does not. I would rather see it say "Max Capacity: 72TB (disks not included)."
    • well again if w11 adoption its so high there's no reason why they try to explain us why is "better" to move to w11. If they are so right about their downgraded UI, why they add some of their UI elements back things like never combine and now small icons. Last time i check majority is still on 10 over 11 so yeah millions of users that did not upgrade to w11
  • Recent Achievements

    • Conversation Starter
      Kavin25 earned a badge
      Conversation Starter
    • One Month Later
      Leonard grant earned a badge
      One Month Later
    • Week One Done
      pcdoctorsnet earned a badge
      Week One Done
    • Rising Star
      Phillip0web went up a rank
      Rising Star
    • One Month Later
      Epaminombas earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      529
    2. 2
      ATLien_0
      207
    3. 3
      +FloatingFatMan
      169
    4. 4
      Michael Scrip
      149
    5. 5
      Steven P.
      123
  • Tell a friend

    Love Neowin? Tell a friend!