Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 10-03-2006, 20:35
Verwijderd
Ik heb al een hele tijd op Google gezocht en wat fora maar heb geen oplossing gevonden.

Ik wil graag de huidige desktop (de desktop waarbij een gebruiker is aangemeld) benaderen, een screenshot ervan maken. Mijn service draait onder het account "Lokale computer" (SYSTEM). Ik heb de optie "Interactief met het bureaublad" geprobeerd. Dat werkt niet. Ook heb ik OpenInputDesktop en OpenWindowStation, etc. gebruikt, maar dat werkt allemaal niet. Verder heb ik het nog op een andere manier geprobeerd door met CreateProcess een programma uit te voeren in de huidige, interactieve desktop, door bij de startupinfo lpDesktop op 'winsta0\default' te zetten. Maar ook dit werkt niet.

Weet iemand hier toevallig iets van?

Ik draai Windows XP en gebruik Delphi om de service te maken.
Met citaat reageren
Advertentie
Oud 10-03-2006, 23:57
Warsocket
Avatar van Warsocket
Warsocket is offline
geen ide ehoe het precies moet maar

als de gebruiken aangemeld is ff naar zijn desktop switchen
createDC("display",0,0,0) (DC van je scherm)
van die DC een dibsection maken

CreateBitmap
-> van die bits een dibsection maken

en die dibsection in een file gooien met ene bmp header erboven
en wegschrijven

bovenstaande functies zijn windhoos API's ik neem aan dat delphi daar ook aan kan?
__________________
01110100011001010111011001100101011001010110110000100000011101000
11010010110101001100100001000000011111100111111001000000011101001010000
Met citaat reageren
Oud 11-03-2006, 09:47
Verwijderd
Citaat:
Warsocket schreef op 11-03-2006 @ 00:57 :
geen ide ehoe het precies moet maar

als de gebruiken aangemeld is ff naar zijn desktop switchen
createDC("display",0,0,0) (DC van je scherm)
van die DC een dibsection maken

CreateBitmap
-> van die bits een dibsection maken

en die dibsection in een file gooien met ene bmp header erboven
en wegschrijven

bovenstaande functies zijn windhoos API's ik neem aan dat delphi daar ook aan kan?
Delphi kan ook Windows API's aanroepen ja

Ik zal het eens proberen
Met citaat reageren
Oud 11-03-2006, 10:45
All Out Of Love
Avatar van All Out Of Love
All Out Of Love is offline
wat zijn api's
__________________
By law i am required to inform you: I am a registered sex offender.
Met citaat reageren
Oud 11-03-2006, 10:53
Verwijderd
Citaat:
All Out Of Love schreef op 11-03-2006 @ 11:45 :
wat zijn api's
Dat is wel een hele basis vraag
Maar het bekend dus Application Programming Interface
Met citaat reageren
Oud 11-03-2006, 11:41
All Out Of Love
Avatar van All Out Of Love
All Out Of Love is offline
Citaat:
********** schreef op 11-03-2006 @ 11:53 :
Dat is wel een hele basis vraag
Maar het bekend dus Application Programming Interface
als ik het goed heb zijn api toch ongeveer hetzelfde als interpetors ? ik ben pas 2 maanden bezig met me mbo studie ict beheerder, dus verwacht maar heel wat meer basis vragen
__________________
By law i am required to inform you: I am a registered sex offender.
Met citaat reageren
Oud 11-03-2006, 12:19
Verwijderd
Met CreateDC lukt het ook niet

Zou het toch op een hele andere manier moeten? Dus dat het wel nodig is om een programma voor iedere gebruiker apart te starten, en dan bijv. de service met die programma's laten communiceren om screenshots van hen te vergaren.
Met citaat reageren
Oud 11-03-2006, 12:26
Verwijderd
Citaat:
All Out Of Love schreef op 11-03-2006 @ 12:41 :
als ik het goed heb zijn api toch ongeveer hetzelfde als interpetors ? ik ben pas 2 maanden bezig met me mbo studie ict beheerder, dus verwacht maar heel wat meer basis vragen
Een API vormt een interface tussen de programmeur en het programma of besturingssysteem waar de API op betrekking heeft. Je bediend het besturingssysteem er als het ware mee.
Met citaat reageren
Oud 11-03-2006, 13:19
Warsocket
Avatar van Warsocket
Warsocket is offline
Citaat:
12Trix schreef op 11-03-2006 @ 13:26 :
Een API vormt een interface tussen de programmeur en het programma of besturingssysteem waar de API op betrekking heeft. Je bediend het besturingssysteem er als het ware mee.
jep, windown heeft een scala aan .dll bestanden daar staan allemaal functies in die je kan gebruiken.

zo heb je functies om een venster te maken, funcites om bestanden weg te schrijven functies om gleuiden af te spelen, etc etc

je kan natuurlijk zelf ook een.dll schrijven daar zet je dan eigengemaakte functies in

ontopic:

je hebt ook een api PaintDesktop in user32.dll

kun je niet als de serveice het wilt weten een process aanmaken op de naam van de gebruiker CreateProcess (hoeft geen extrne .exe te zijn kan ook interne functie van jouw process zijn geloof ik) dat n geef je dat process jouw DC mee waar je de kopie van de desktop op geblit wilt hebben

dus
je service wil van user a de desktop hebben

je maakt mer CreateProcess een process dat je een parameter meegeeft (een DC in jouw service) van doe je PaintDesktop (jouwDC)

en den heb je in je service en device context (DC) die je kan gebruiken om mee te blitten en / of om te zetten naar een dibsection en dan op te slaan
__________________
01110100011001010111011001100101011001010110110000100000011101000
11010010110101001100100001000000011111100111111001000000011101001010000
Met citaat reageren
Oud 11-03-2006, 13:41
Verwijderd
Citaat:
Warsocket schreef op 11-03-2006 @ 14:19 :
jep, windown heeft een scala aan .dll bestanden daar staan allemaal functies in die je kan gebruiken.

zo heb je functies om een venster te maken, funcites om bestanden weg te schrijven functies om gleuiden af te spelen, etc etc

je kan natuurlijk zelf ook een.dll schrijven daar zet je dan eigengemaakte functies in

ontopic:

je hebt ook een api PaintDesktop in user32.dll

kun je niet als de serveice het wilt weten een process aanmaken op de naam van de gebruiker CreateProcess (hoeft geen extrne .exe te zijn kan ook interne functie van jouw process zijn geloof ik) dat n geef je dat process jouw DC mee waar je de kopie van de desktop op geblit wilt hebben

dus
je service wil van user a de desktop hebben

je maakt mer CreateProcess een process dat je een parameter meegeeft (een DC in jouw service) van doe je PaintDesktop (jouwDC)

en den heb je in je service en device context (DC) die je kan gebruiken om mee te blitten en / of om te zetten naar een dibsection en dan op te slaan
Ik kan met CreateProcessAsUser een proces starten onder de 'security context' van een bepaalde gebruiker. Maar ik heb dan dus alleen de rechten van die gebruiker maar niet de desktop van die gebruiker voglens mij.
Met citaat reageren
Oud 12-03-2006, 01:55
Verwijderd
Je hebt dus een Window station (bijv. 'winsta0', het actieve Window station), en binnen dat Window station een aantal desktops. Maar zo'n Window station zit weer in een session, zo blijkt.

De manier om het te doen is wel CreateProcessAsUser. Je kunt dan een handle van een bepaalde sessie opgeven. Met een andere functie kun je de sessie van de actieve gebruiker opvragen.

De pagina waarin dit d.m.v. code geïllustreerd wordt:
http://msdn.microsoft.com/library/de...7f27ab.xml.asp

Dit ga ik morgen (vandaag) maar proberen
Met citaat reageren
Oud 13-03-2006, 16:32
Verwijderd
Jippie, het is gelukt, eindelijk. Mijn service is nu oppermachtig
Met citaat reageren
Oud 13-03-2006, 16:38
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
code (A)
Met citaat reageren
Oud 13-03-2006, 18:52
Viporizer
Avatar van Viporizer
Viporizer is offline
Je kan ook bij opensource files kijken hoe ze het daar hebben gedaan.
Mischien dat je daar brijkbare info uit kan halen.
__________________
De meest zinloze opmerking van de dag. Gefeliciteerd!
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 11:24.