29. marts 2004 - 12:32Der 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?
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)
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
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.
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.
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.
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)
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.
Æ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)
Synes godt om
Ny brugerNybegynder
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.