[VB6]screenshot programma --> loopt vast :S

Pagina: 1
Acties:

  • ND863
  • Registratie: September 2001
  • Laatst online: 09-07-2022

ND863

Forget aircraft - Fly Airbus

Topicstarter
Ik wil een screenshot programma maken, dat wanneer ik op Printscreen druk, hij de picture van het klembord afhaalt en gaat pasten (paste gedeelte is nog niet klaar)

De teller van 5 seconden is een beveilling, ter voorkoming dat deze dubbele shots gaat maken, als de PC veel moet denken.

Mijn code :
code:
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
30
31
32
'Declaraties
Public tmr As Integer
Public klembordheeftinhoud As Boolean

Private Sub Form_Load()
  'declaraties
  
  'startup instellingen
  tmr = 0
  Clipboard.Clear
  klembordheeftinhoud = False
  Timer1.Enabled = False
  Do While klembordheeftinhoud = False
    If Clipboard.GetFormat(2) Then
    klembordheeftinhoud = True
    MsgBox "Teller start, Picture saven"
    Clipboard.Clear
    klembordheeftinhoud = True
    Timer1.Enabled = True
    End If
  Loop
End Sub

Private Sub Timer1_Timer()
  tmr = tmr + 1
  If tmr = 5 Then
    Timer1.enabled = False
    tmr = 0
    klembordheeftinhoud = True
    Clipboard.Clear
  End If
End Sub

Maar als ik deze run/compile run dan loopt hij vast :? Ik kan de fout niet ontdekken (er zit zelfs dubbele beveilliging :7) Wat doe ik hier fout? Heeft iemand nog tips?

To be, or not to be a FRUITVLIEG!??


Verwijderd

Hij komt in een ontzettend oneindige loop. VB is namelijk de hele tijd non-stop aan het checken of klembordheeftinhoud nog steeds false is, en daardoor kan je niet meer op print-screen klikken, en daardoor blijft ie maar in die loop.

Als je op het eind van de loop een DoEvents zet of een Sleep aanroept (zie search) ben je van het probleem af :).

  • ND863
  • Registratie: September 2001
  • Laatst online: 09-07-2022

ND863

Forget aircraft - Fly Airbus

Topicstarter
Op vrijdag 03 mei 2002 18:34 schreef KoenM het volgende:
Hij komt in een ontzettend oneindige loop. VB is namelijk de hele tijd non-stop aan het checken of klembordheeftinhoud nog steeds false is, en daardoor kan je niet meer op print-screen klikken, en daardoor blijft ie maar in die loop.

Als je op het eind van de loop een DoEvents zet of een Sleep aanroept (zie search) ben je van het probleem af :).
ah een sleep, zal ik straks ff searchen, ben nu ff weg :( ga er straks ff naar kijken, maar bedankt voor uwe reaktie! :)

To be, or not to be a FRUITVLIEG!??


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 08-09 17:54

Sponge

Serious Game Developer

code:
1
2
3
4
5
6
7
8
9
10
  Do While klembordheeftinhoud = False
    If Clipboard.GetFormat(2) Then
    klembordheeftinhoud = True
    MsgBox "Teller start, Picture saven"
    Clipboard.Clear
    klembordheeftinhoud = True
    Timer1.Enabled = True
    End If
 [b]DoEvents[/b] <-
  Loop

  • ND863
  • Registratie: September 2001
  • Laatst online: 09-07-2022

ND863

Forget aircraft - Fly Airbus

Topicstarter
Op vrijdag 03 mei 2002 22:35 schreef 41.6C.6D.61.72 het volgende:
code:
1
2
3
4
5
6
7
8
9
10
  Do While klembordheeftinhoud = False
    If Clipboard.GetFormat(2) Then
    klembordheeftinhoud = True
    MsgBox "Teller start, Picture saven"
    Clipboard.Clear
    klembordheeftinhoud = True
    Timer1.Enabled = True
    End If
 [b]DoEvents[/b] <-
  Loop
hehe, ik snap niet met die DoEvents. :? Wat doet ie nou?

Ik ben nu aan et klooien/proberen met sleep

To be, or not to be a FRUITVLIEG!??


  • ND863
  • Registratie: September 2001
  • Laatst online: 09-07-2022

ND863

Forget aircraft - Fly Airbus

Topicstarter
Nah ik heb sleep onderaan de If - Then statement gepleurd, met als commando sleep 400 (milliseconde) Maar dan loopt hij meteen weer vast? :? Zodra er een loop in komt doet ie het niet :?

To be, or not to be a FRUITVLIEG!??


  • brid
  • Registratie: Januari 2001
  • Laatst online: 30-07 16:21

brid

Onze excuses voor het ongemak

Ik waarschuw je alvast: je cleart het clipboard voordat je de timerstart. Hierdoor krijg je dus nooit het plaatje te zien. (lijkt mij in iedergeval)

DIY NAS, Hoofd PC
Unchain your pc/laptop, buy a SSD!!!!!


Verwijderd

Bovendien lijkt dit hele systeem me niet echt jofel... om in een oneindige loop te gaan checken of er al iets op het clip-board staat is niet fijn voor je overige processen.

Wat je mischien beter kan doen is om bepaalde messages af te vangen die gegooid worden bij het maken van een screenshot.
Dit zal ingewikkelder zijn, maar het resultaat zal ook mooier en beter zijn :).

Op www.pscode.com staan vast wel wat voorbeeldjes.

Verwijderd

Op vrijdag 03 mei 2002 17:12 schreef ND het volgende:
Ik wil een screenshot programma maken, dat wanneer ik op Printscreen druk, hij de picture van het klembord afhaalt en gaat pasten (paste gedeelte is nog niet klaar)
Ik ben zeer geinteresseerd in een dergelijk proggie. ideaal voor het schrijven van handleidingen. Moet dan wel Alt-PrintScrn ondersteunen, want meestal wil je alleen maar het venster.
Neem gerust ff contact op, ik werk samen met iemand die goed kan programeren.
:9

Verwijderd

Op zaterdag 04 mei 2002 09:48 schreef Boenie het volgende:
Ik ben zeer geinteresseerd in een dergelijk proggie. ideaal voor het schrijven van handleidingen. ...
Ik wil niet lullig zijn, en ook de codeer kwaliteiten van ND niet onderschatten, maar er zijn al genoeg programma's die zoiets kunnen... kijk bijvoorbeeld eens naar Snag-It en consorten...

Maar het wiel zelf opnieuw uitvinden kan best leuk en leerzaam zijn :)

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 08-09 17:54

Sponge

Serious Game Developer

DoEvents geeft Windows tijd om de andere processen (/threads) te "besturen"..dus dan kan windows bijv vensters opnieuw tekenen, en andere dingen doen..

Vorige maand was er een voorbeeld die dit met subclassing deed op PSC. Om precies te zijn:

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=34112&lngWId=1

  • ND863
  • Registratie: September 2001
  • Laatst online: 09-07-2022

ND863

Forget aircraft - Fly Airbus

Topicstarter
aah, nieuwe ideen allemaal, ik kan er vanavond pas weer aan verder werken :) Maar ik zat ook ff aan die oneindige loop te denken, en ik zat te bedenken of het niet mogelijk is dat windows een signaaltje geeft, wanneer er een picture in de Clipboard zit, maar moet dit perse met een API functie? want dat lijkt mij veels te ingewikkeld (ik heb er ook nog nooit meegewerkt :7)

To be, or not to be a FRUITVLIEG!??


Verwijderd

die teller telt geen 5 sec. . .maar 5 MILLI-sec !

  • ND863
  • Registratie: September 2001
  • Laatst online: 09-07-2022

ND863

Forget aircraft - Fly Airbus

Topicstarter
Op zaterdag 04 mei 2002 14:04 schreef Skizmo het volgende:
die teller telt geen 5 sec. . .maar 5 MILLI-sec !
nee hoor, want ik heb de interval gezet op 1000 (das dus 1 seconde) :)
Ik kan vandaag weer verder proggen, jullie horen nog van me :)

To be, or not to be a FRUITVLIEG!??


Verwijderd

oja. . |:(
Pagina: 1