|
I havn't tried taking a screenshot of the whole desktop, but try looking at the Win32 functions:
- gdi32.dll (function Bitblt)
- user32.dll (fuinction GetWindowDC).
I've tried taking a screenshot of a form before, in which case I needed to call the CreateGraphics method on a form.
You'll need to call GetWindowDC to get the device context of the form, then you'll need to use BitBlt to get the graphics data from the form into a Bitmap.
Try looking at this site:
http://mywiki.wikidot.com/forum/t-655[^]
It gives you more of an example of how todo this and could give you a direction on how to take a screenshot of the whole desktop.
|
|
|
|
|
Public G_ScreenshotPath As String = System.IO.Path.Combine(G_RuntimePath, "temp.bmp")
Dim strPath As String = CaptureScreenToFile(CaptureScreenToImage(True), G_ScreenshotPath)
Public Function CaptureScreenToFile(ByVal picImage As Bitmap, Optional ByVal FilePath As String = "") As String
'Get the executables path
Dim file_name As String = Application.StartupPath & "\temp.bmp"
If FilePath <> "" Then
file_name = FilePath
End If
' Save the picture as a bitmap, JPEG, or GIF.
Try
picImage.Save(file_name, System.Drawing.Imaging.ImageFormat.Bmp)
Catch
Return Nothing
Exit Function
End Try
CaptureScreenToFile = file_name
End Function
Public Function CaptureScreenToImage(Optional ByVal FullScreen As Boolean = False) As Bitmap
' Captures the current screen and returns as an Image object
If FullScreen = True Then
' Print Screen pressed twice here as some systems
' grab active window "accidentally" on first run.
SendKeys.SendWait("{PRTSC 2}")
'Pause to let the system catch up:
System.Threading.Thread.Sleep(1000)
Else
SendKeys.SendWait("%{PRTSC}")
'Pause to let the system catch up:
System.Threading.Thread.Sleep(1000)
End If
Dim objData As IDataObject = Clipboard.GetDataObject()
Return objData.GetData(DataFormats.Bitmap)
End Function
|
|
|
|
|
Hello,
[2005]
I have filled a typed dataset.
I want to find the values of 2 columns (model, manufactuerer)
Where serialNo is = to something.
The serialNo is not the PK and is not unique. However, the model and manufacturer will always be the same for the specific serial No.
I could make a select query, but I don't see the need of making a call to the database when all the data is in the dataset.
I also have a bindingsource, not sure how can help,
Many thanks for any advice,
Steve
|
|
|
|
|
If you want to do this, first you need to get a DataView. That is done by taking the DefaultView off the Table you are looking at. So if you have a DataSet called ds.
You could set your dataview, we will call it
DataView dv = ds.Tables["yourtablename].DefaultView;
or in vb
dim dv as DataView = ds.Tables("yourtablename").DefaultView
Then with your dataview you can set the RowFilter.
so something like dv.RowFilter = "ColumnName = 'value'"
Where you replace with the correct ColumnName and the correct value you are looking for.
Once the RowFilter is set you can access the DataView rows with a for each loop or however you choose to look at those records.
Hope that helps.
Ben
|
|
|
|
|
basically i want a database driven dynamic menu as a set of link buttons
for that i ve used a placeholder control
now i m able to add link buttons dynamically
but unbale to track their click(OnClick) event
|
|
|
|
|
For any dynamically created control, you have to wire up the events yourself. But, this is an ASP.NET app. I seem to remember something about an OnBubbleEvent?? I can't remember, since I don't do very much ASP.NET development. You might want to ask this in the ASP.NET Forum.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
i need codes about print to gridview at vb.net. my database is access.
|
|
|
|
|
|
Hi all
i have typed Data set with it's data Adaptors
i need to make public sub and send to it the data adaptor as parameter
and for each screen i call this sub i will put my current data adaptor in the parameter place
how can i do this
thx
|
|
|
|
|
moali72 wrote: i need to make public sub and send to it the data adaptor as parameter
and for each screen i call this sub i will put my current data adaptor in the parameter place
how can i do this
It's pretty strightforward.
Something like:
Public Sub MakeSomething(da as DataAdapter)
'Make Something with da
End Sub
What is your doubt about?
Cheers
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Hi All
I Want To write a NT Standard Service with VB6 can you help me?
Tank you.
|
|
|
|
|
Mmm I think that you are OT...
This forum is about .Net.
However, you may use the API RegisterServiceProcess to do that.
But I don't know if it works also in Windows NT.
Bye,
Carmine,
Webmaster of: www.thetotalsite.it
My web blog: blog.thetotalsite.it
|
|
|
|
|
Carmine_XX wrote: Mmm I think that you are OT...
This forum is about .Net.
No, it's not. It's about all flavors of VB, including VBScript, VBA, VB6, and .NET.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
VB6 cannot build an NT service. It has to be a normal VB6 Windows application and adapted to wrok as a service. You can find out more about what you have to do simply by Googling for "vb6 service[^]".
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hi Dears
I need to get Graphic Card Out put.
I can get the screen Picture With Getdc & GetWindowDc & Bitblt; But I Can't get the output of some programs such Games Whit DirectX & Windows Media Player , Jet Audio , and Other Players.
Can You Help me to Get The OutPut Of Graphic Card Directly? Such Remoot Desktop And Terminal Service on Servers.
Thank You.
Mogtabam
|
|
|
|
|
I am trying to run a batch file which I have created in VB.Net
The file is good, and I can run it from the CMD prompt, however when I run it from a Process object - the CMD window flashes - and only a line or two is executed. This batch file was about 55kb
As a test, I moved things around so they would be under the root of C:, and not in C:\Programs\.....\..... ....\
The batch file was quite a bit smaller (30kb), and the paths were shorter. It runs fine from Process.
It's either the line length or the size of the batch file. Anyone know of any constraints or a work around?
Thanks!
|
|
|
|
|
dBrong wrote: It's either the line length or the size of the batch file. Anyone know of any constraints or a work around?
There are no limits in the Process class for the line length or the size of the batch file. Let's see the batch file and the code launching it.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hiya,
Just a quick question, I've researched about this briefly but couldn't find anything that actually pinpointed what I'm doing wrong, or if in fact it is possible. I don't have any code because it's pretty general what I'm trying to do.
What I'm trying todo is this:
(Form A)
I have a form that is the main form of the application (only one instance at a time)
(Form B)
At some points in the application I launch another form that needs the users full attention, so is launched with ShowModal(). (only one instance at a time)
(Form n)
I have multiple other forms (similiar to stickey notes) that the user can open in the application. These forms I want to always stay on top of the main form. At the moment they are set to TopMost = True, which does work fine, but they stay on top of everything that is running on Windows. These are just shown using the Show() method. (multiple instances)
Problem is that if Form n (could be multiple ones) is already showing and I launch Form B (the one with ShowModal(), the Form n forms are on top of Form B.
I've tried having Form B set to TopMost as well - this works fine, Form B is now on top of all the Form n forms. Only thing is that it is also on top of all the other applications Windows is running which is not really what I want.
What I'm trying todo is have the z-order for all the Form n forms above Form A and the z-order for Form B should be above all the Form n forms, but not staying on top of all the applications running on Windows.
I'm thinking it has something todo with the TopLevel property of a form, but havn't found much document on this property, or I just havn't looked hard enough.
Hope this makes sense without any code samples, but it would be really hard to provide code for this - more of a concept and possible ways to accomplish this rather than just straight out asking for code.
|
|
|
|
|
TopMost means on top of all other apps, even if you click on them. You can call BringToFront() to bring a window to the top, without making it topmost.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Cheers for the reply,
Problem I found with that was then when the main form received focus, all the other forms (that should stay above the main form all the time) were no longer visible. Even if the main form has focus, the other forms should always be on top of it.
The only way I've found to do this is with TopMost, but it's not 100% what I want as it sort of crosses into other application interfaces, which is probably not a good idea!
I have taken a look at other applications and how they accomplish a similiar thing, and I think that I'm just going to redesign the process of displaying and accessing those multiple forms.
Anyways, cheers for the help, probably put this question on here before I had a good think about it!
|
|
|
|
|
Try setting the owner property for each Form N. You can do this by passing the current form as a parameter when you call show (frm.show(me)). Or you can just set the property before calling show (frm.owner=me). "Owned" forms stay on top of the owner but won't stay on top of other application windows.
|
|
|
|
|
Hiya,
This is exactly what I needed! Only change I had todo is because the code that is creating each Form N doesn't exactly know about Form A (the main form of the app) - I can't exactly get a reference to it easily.
I remember seeing something in My.Application a while back and found that you could get a reference to the main form by using something like:
<br />
Dim OwnerForm as Form<br />
Dim StickyForm as frmStickyForm<br />
<br />
OwnerForm = My.Application.OpenForms("class_name_of_parent_form")<br />
If (OwnerForm IsNot Nothing) Then<br />
StickyForm.Show(OwnerForm)<br />
Else<br />
StickyForm.Show()<br />
End If<br />
Works exactly how I wanted it to - thanks for the help!
|
|
|
|
|
In MS access i have an SQL query which depends on the other query to work. In VB.net i have got one of the queries to work.
SELECT idsBookingId, idsEmployeeId, idsCustomerId, idsCottageId, idsCottagePriceId, dteBookingMade, tmeBookingMade, dteArrival, dteDeparture,
dtePaymentDue, curTotalPaymentAmount, dtePaymentMade, txtBookingNotes
FROM tblBooking
WHERE (dteDeparture >= ?) AND (dteArrival <= ?)
This gives me which cottages are booked with the given date ranges.
What i need is to see what cottages are available. In Acess this code worked for me:
SELECT tblCottage.idsCottageId
FROM tblCottage LEFT JOIN qryCottageBooked ON tblCottage.idsCottageId=qryCottageBooked.idsCottageId
WHERE qryCottageBooked.idsCottageId Is Null;
It calls up the qryCottageBooked. I cannot call up the query in vb.net
|
|
|
|
|
It should work without a problem. We'd probably have to see the code that's launching this query. Also, you might want to put these queries in the Access database and just call them by their name (usually referred to as "stored procedures"), to make your like bit easier.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
hi to all!!
please guide me how to make connectivity of oracle 10g with vb 6.0
|
|
|
|