Zdravím. Na úvod bych chtěl podotknout, že já jsem ve VB úplný začátečník. Ta rada, že by se čekání mělo místo "Sleep" řešit pomocí událostí je sice fajn, ale jak na to. To jsem se tu nedočetl. :-) Vyrobil jsem si jednoduchý prográmek (můj první), od kterého očekávám, že mi bude "číhat" někde na pozadí, a když dostane "nějaký" podnět z vnějšku (po síti), provede PrintScreen a uloží jej "někam" do souboru. (Ten já si obratem zase po síti stáhnu). Toť vše. Většinu kódu jsem vlastně opsal právě z rad těch, kteří už VB umí. Až na to dálkové spouštění. Pokud používám naprosto diletantské metody, tak se omlouvám, ale lépe to zatím neumím. Program mi funguje skoro přesně tak, jak chci. Spustím jej automaticky po startu. Není nikde vidět, jen ve spuštěných procesech. CPU nijak nezatěžuje. Až na okamžik, kdy se stahuje a ukládá ten printscreen. Ale to není tak často, a je to v pohodě. Ani paměť se po záměně "Dim" za "Using" nijak neplní. Ale právě při pokusu o restart, či vypnutí PC, zůstane program "viset". Jak jsem se dočetl, právě pro pravidelné "vytuhnutí" při "Sleep". Poradíte mi prosím co s tím. Nejdůležitější pro mne je, aby prográmek co nejméně zatěžoval PC. Jde o řídící systémy strojů, a ty mají dost starostí se svými aplikacemi. Předem díky za radu. A tady je ten můj paskvil.... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Public Class Form1
Private Sub MyBase_load() Handles MyBase .Load
Me .Hide()
Dim Fso As Object
Fso = CreateObject( "Scripting.FileSystemObject" )
On Error Resume Next
Znovu:
If Fso.FileExists( "D:\Obrazovka\Scr.set" ) Then
With Screen.PrimaryScreen.Bounds
Using bmp As New Bitmap(.Width, .Height, Imaging.PixelFormat.Format32bppRgb)
Using g = Graphics.FromImage(bmp)
g.CopyFromScreen(0, 0, 0, 0, New Size(.Width, .Height))
bmp.Save( "D:\Obrazovka\Scr.jpg" , Imaging.ImageFormat.Jpeg)
End Using
End Using
End With
Kill( "D:\Obrazovka\Scr.set" )
End If
Threading.Thread.Sleep(1000)
GoTo Znovu
End Sub
End Class
|
|