Avatar billede datamaker Nybegynder
07. januar 2004 - 20:27 Der er 11 kommentarer og
1 løsning

Luk alle vinduer, som bruger har åbnet

Jeg har lavet en klient, som skal kunne rydde op efter brugeren. Jeg har fundet ud af, hvordan jeg lukker åbnede programmer m.v. Men hvis brugeren har åbnet Explore(ikke internet explore), f. eks. til at browse rundt i filsystemet, så kan jeg ikke fange disse vinduer. Det eneste som fremgår kører, er explore.exe. Men problemet ved at slå denne process ned, er at det er process linjen!!

Er der nogle som har prøvet dette.
Avatar billede wisen Nybegynder
08. januar 2004 - 08:29 #1
Avatar billede datamaker Nybegynder
09. januar 2004 - 09:42 #2
Jeg kigger på det, det ser interessant ud. Har du styr på forskellen mellem managed og unmanaged? Bare en kort forklaring på forskellen. Om det er muligt at give:)
Avatar billede wisen Nybegynder
09. januar 2004 - 12:26 #3
Ang. managed vs. unmanaged så kan du måske få noget ud af denne artikel : http://www.dnjonline.com/articles/technology/iss27_indepth_cpp.asp

Forskellen ligger i bund og grund i, at managed kode køres via .NET Frameworket mens unmanaged køres "native"...
Avatar billede datamaker Nybegynder
10. januar 2004 - 14:48 #4
hmm, EnumWindows giver mig bare en hulens masse handles. Jeg ved ikke rigtigt hvad jeg skal bruge dem til. Jeg kiggede lidt videre, og tænkte, at hvis jeg fik handlen til desktop, og derpå kunne få alle childwindows, så var jeg måske en stykke. Men jeg kan ikke rigtigt finde ud af det. nogle tanker?
Avatar billede burningice Nybegynder
11. januar 2004 - 16:07 #5
DestroyWindow måske??

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowFunctions/DestroyWindow.asp

du må vænne dig til. at når du leger med Win32 API'et, så er så godt som alt procedual, dvs. at man har en millard funktioner, som for det meste tager en handle til et eller andet som parameter. Dvs. at man udfører en funktion på noget data, istedet for at have noget data som har en funktion knyttet til sig.

Eks.

i .Net vil man bruge Close()-funktionen på et form-object for at lukket den. Man har altså en reference til et vindue (data), og kan lukke den ved hjælp af en funktion.
med Win32 API har man en global funktion der lukker et given vindue (DestroyWindow), som svarer lidt til en public static function i C#. Denne funktion er ikke knyttet til noget object, så derfor skal du selv fortælle den hvilket vindue der skal lukkes, og det gør du ved at give den en handle (egentlig bare et tal).
Avatar billede datamaker Nybegynder
11. januar 2004 - 16:59 #6
cyberfessor -> ja, det er godt. Men jeg kan ikke fange vinduer åbnet med explorer.exe. Derfor har jeg ikke et handle.
Avatar billede datamaker Nybegynder
11. januar 2004 - 17:00 #7
Jeg har fået en anden tanke. Kunne jeg bruge en hook til at registrerer alle handles, som har en mainwindow.
Avatar billede burningice Nybegynder
11. januar 2004 - 17:14 #8
med EnumWindows burde du da få en handle til ALLE dine vinduer?
Avatar billede datamaker Nybegynder
11. januar 2004 - 21:05 #9
ja, en masse. Men hvordan finder jeg ud af, hvilken der er den rigtige. Jeg får en 20-30 stykker, selvom der kun er nogle få apps åbne
Avatar billede datamaker Nybegynder
11. januar 2004 - 21:33 #10
nå, jeg prøve at kalde destroywindow på alle handles. Ikke en lykkes. Hvor kan der være problemer
Avatar billede burningice Nybegynder
11. januar 2004 - 21:33 #11
jamen... skulle du ikke bare lukke dem allesammen !?

Well, du kan vel lave en masse tjek på dem, der findes en masse Is-et_eller_andet(), eller måske få fat i det program som de tilhører, og den vej tage en beslutning om de skal lukkes.
Avatar billede datamaker Nybegynder
11. januar 2004 - 21:51 #12
jo, men mit problem er heller ikke at lukke applikationer, som jeg selv har startet. Problemet er, at hvis man f.eks gør flg. start->kør>c: Så starter er en explorer(ikke internet explorer). Og det er disse vinduer, som jeg ikke kan fange.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester