Avatar billede moonseer Nybegynder
29. marts 2004 - 12:32 Der er 12 kommentarer og
1 løsning

Event når der dobbelt- eller enkeltklikkes på en mappe i explorer

Hej

Er der nogen der ved hvordan man kan lave, så når man dobbelt- eller enkeltklikker på en mappe i explorer, så kan køre et program eller .....

Jeg har fået at vide at det kan gøres ved at lave en
shell extension, men jeg ved ikke hvilken type shell extension
jeg skal lave, eller hvilke interfaces den skal implementere.

Er der nogen der kan hjælpe med dette, eller hvis det kan laves på en anden måde, så har nogen forslag til hvordan?
Avatar billede snepnet Nybegynder
29. marts 2004 - 22:51 #1
Det er ikke sikkert at der er nøjagtig hvad du søger, men der er 4 fine shell-eksempler skrevet i C#, så jeg tror der skulle være rigeligt til at du kan komme igang med lidt win-udvidelser :o)
http://www.codeproject.com/csharp/csdoesshell4.asp
(det er linket til part4, men under introduktionen er der link til de 3 forgående)
Avatar billede snepnet Nybegynder
29. marts 2004 - 22:58 #2
Tror faktisk at du vil få rigtig meget ud af at kigge Part 1 igemmen... Den indeholder sådan set det du har brug for, og giver desuden msdn-links til :
- Shell Programmer's Guide
- Shell Basics
- The Shell Namespace
- Getting a Folder's ID
- Getting Information About the Contents of a Folder
- Navigating the Namespace
Avatar billede moonseer Nybegynder
31. marts 2004 - 13:42 #3
Jeg har allerede læst meget at det igennem som du har postet link til.

Jeg havde bare håbet, på at der var nogen der kunne fortælle mig næsten nøjagtigt
hvad jeg skulle gøre for at opnå dette.

Selvom de links du har givet beskriver mange af tingene, kan jeg stadig ikke finde ud af hvordan jeg skal lave det, og jeg syntes ikke at kunne finde nogle konkrete eksempler på hvordan man skal lave ligenøjagtigt dette, heller ikke i de givne links, eller bare nogen andre der nævner at de godt vil have en sådan funktionalitet.
Avatar billede snepnet Nybegynder
31. marts 2004 - 22:03 #4
http://www.codeproject.com/csharp/dateparser.asp
Giver en kort fornuftig intro til hvordan du hooker op på shell-kald ved at implementere IShellExecuteHook.
Avatar billede snepnet Nybegynder
31. marts 2004 - 22:03 #5
(og der er også beskrivelser af hvad der skal til for at det rent faktisk virker :o)
Avatar billede moonseer Nybegynder
01. april 2004 - 10:23 #6
Hmm. Endnu et godt forslag, men jeg har allerede prøvet det, og det fungerer sådan set fint, men det er KUN win apierne ShellExecute og ShellExecuteEX der hookes ved at bruge IShellExecuteHook interfacet.

Hvilket et fint hvis man vil kontrollere hvilke filer der eksekveres. Det er jo ikke helt det jeg har brug for, men endnu et godt bud.

Hvis du har andre forslag, så post dem endelig.
Avatar billede snepnet Nybegynder
01. april 2004 - 10:47 #7
Det skulle også være ShellExecuteEx der bliver eksekveret når du klikker på foldere.... Måske kan du bruge denne her til noget :
http://dev-www.codeguru.com/Cpp/COM-Tech/shell/article.php/c4515
(Det er en shell activity logger)
Avatar billede moonseer Nybegynder
01. april 2004 - 12:31 #8
Jeg tror ikke at det er ShellExecuteEx der aktiveres på der klikkes på en folder, for så burde IShellExecuteHook fange den, og det gør den ikke.

Den fanger den kun hvis man i start->kør skriver f.eks. c:\temp, men ikke når man
browser igennem filsystemet, hvad enter det er med "tilbage" eller "frem" knapperne, eller højreklik på en mappe og sig "Åbn" eller "Stifinder".

Jeg har en ide om at man måske skal lytte på alle de der windows messeges som kommer heletiden. Når der klikkes på en mappe sker der det er windows laver en nyt view som indeholder itemsne i den nye, og bagefter deleter den det gamle, og i den forbindelse
må den komme noget createwindow eller view eller en af de der WM_...... messeges.

Har du nogen ider til det.
Avatar billede snepnet Nybegynder
01. april 2004 - 13:34 #9
hmmm... det synes jeg ellers der stod flere steder. Jeg tror jeg prøver det selv her lidt senere (nok først i aften) - Jeg er blevet lidt tændt på det :o)
Avatar billede moonseer Nybegynder
01. april 2004 - 13:37 #10
Det lyder godt. Skriv endelig tilbage med hvad du finder ud af.
Avatar billede snepnet Nybegynder
13. april 2004 - 22:13 #11
Jeg finder ud af hvor let det egentlig er at gøre sit OS fuldstændig ubrugeligt når man kludrer i det i forbindelse med IShellExecuteHook :o)

Men udover det er jeg stødt på nogle andre interessante sager, og denne her er nok den der ser mest lovende ud (der er også kode til download) :

http://msdn.microsoft.com/msdnmag/issues/04/01/WindowsShell/default.aspx
(hvis du ikke allerede har set den)

IShellFolder, IShellBrowser og Namespace extensions synes at være gode søgeord.

Jeg har fundet en masse andet, så du må sige til hvis du vil have nogle flere links.
Avatar billede moonseer Nybegynder
14. april 2004 - 13:20 #12
Det lyder som om du er blevet lidt uvenner med IShellExecuteHook :)

Ja Linket du har postet er ud mærket, og ja jeg har læst det et par gange, men jeg kan ikke få det til at virke. Kan du det?, hvis du altså hat prøvet det.

Jeg synes snart jeg har søgt på alt hvad jeg kan finde p i den forbindelse, uden rigtigt at finde noget der kan bruges.

Jeg har også spurgt på microsoft's C# nyhedsgruppe, hvor jeg fik at vide at det kunne laves med "a good deal o COM interop", og så var den ikke længere.

Igen hvis du finder noet du mener kan bruges så post det bare.

Ellers tak for den ihærdige hjælp, jeg tror sku' du for point for det, selvom jeg ikke fandt fik det svar jeg havde håbet.
Avatar billede snepnet Nybegynder
14. april 2004 - 17:39 #13
Ærgeligt at det skal være så vanskeligt - man kan ikke lade være med at forestille sig at der skulle findes en vældig enkel direkte vej til det, men sådan er det nok bare ikke.
Jeg vil prøve at kigge lidt videre på det, og jeg skal nok poste hvis jeg finder noget.
Tak for point - jeg håber jeg kan finde et eller ander der kan skaffe dig lidt mere valuta for dem :o)
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