Avatar billede fun22 Nybegynder
27. december 2003 - 18:14 Der er 18 kommentarer og
1 løsning

Egen knap i windows

Hej

Hvordan gør jeg sådan at, når man højreklikker på en genvej/fil på skrivbordet - eller i en hvilken som helst mappe - i den menu der så kommer frem, vil jeg gerne have en knap til mit program... hvordan gør jeg det?
Avatar billede nca Juniormester
27. december 2003 - 19:02 #1
Prøv at søge efter fx. Notepad i registreringsdatabasen.
Du vil så se, at der først er oprettet en unik key-værdi.
Dernæst er angivet hvad programmet skal gøre med den pågældende fil og til slut, i hvilken kontekst, menuen skal dukke op. For Notepads vedkommende ved alle de filtyper, programmet er associeret med.
Avatar billede fun22 Nybegynder
27. december 2003 - 19:48 #2
Kan ikke finde noget i reggen der ligner det jeg skal bruge... det skal være sådna en knap lige som klip/kopier/sæt ind. Når man f.eks. højreklikker på en exe fil, så kommer den menu, frem hvor jeg gerne vil have en knap i...
Avatar billede cms Nybegynder
27. december 2003 - 20:55 #3
Du skal bruge Shell Extensions.
Jeg mener, der ligger et eksempel i Delphi\Demos\ActiveX ...
Avatar billede fun22 Nybegynder
27. december 2003 - 21:02 #4
hvordan virker de eksempler???
Avatar billede fun22 Nybegynder
01. januar 2004 - 18:12 #5
Nogen hjemme??
Avatar billede nca Juniormester
02. januar 2004 - 14:12 #6
Du kan ikke få dit program til at dukke op hvor som helst.
Hvad er det dit program kan?
I hvilken forbindelse kan folk bruge det?
Avatar billede fun22 Nybegynder
02. januar 2004 - 14:42 #7
det skal være når man højre-klikker på *ico/*.exe filer, så kommer en knap i den munu der normalt kommer frem, som hedder tilføj til "mit program" hvor at den så tager stien fil filen og gemmer i programmet...
Avatar billede fun22 Nybegynder
03. januar 2004 - 17:20 #8
????
Avatar billede nca Juniormester
03. januar 2004 - 22:36 #9
Jeg prøver at komme med et par ideer i morgen.
Avatar billede nca Juniormester
04. januar 2004 - 13:34 #10
Det du gerne vil lave hedder en context menu handler.
Hvis du i registreringsdatabasen kikker i KHCR\*\ShellEx\ContextMenuHandler
kan du her finde alle de ekstra-menuer, der bliver vist, når du højreklikker på en mappe eller en fil.
Til hver menupunkt er der en identifier, som du kan finde længere ned i registry. Her kan du finde navnet på den DLL, som skal ta' sig af kaldet.
Som du måske kan forstå, er det ikke noget, man lige laver.
Heldigvis er der folk, der har lavet det grove arbejde.
Gå ind på http://subsimple.com/delphi.asp og download CustomContextMenu.zip
Når den er udpakket kan du begynde med CopyPath. Find kataloget, højreklik på CopyPath.inf og vælg installer.
Prøv herefter at højreklikke på en mappe og der er nu kommet en ny menulinie i kontekstmenuen: CopyPath(s). Hvis du vælger den, bliver stien til mappen/filen kopieret til klippebordet.
Der er flere gode og veldokumenterede eksempler med.
Avatar billede fun22 Nybegynder
05. januar 2004 - 15:08 #11
nca >> Jeg har nu fået downloaded CustomContextMenu, og har også fået det til at virke... Det var lige nøgagtig det jeg ville... Jeg har lagt den her ind i dll'en:
WinExec('fil.exe', SW_SHOW);
Det virker også, men jeg skal have en parametre med også, og det skal være stien på den fil jeg højreklikker på. Ved du hvordna jeg gør det?
Avatar billede nca Juniormester
05. januar 2004 - 15:28 #12
Jeg forstår ikke dit spørgsmål.
Du får fat i stien til programmet, som du højreklikker på. Hvad skal der så ske med den oplysning?
Avatar billede fun22 Nybegynder
05. januar 2004 - 16:06 #13
den skal ligges ind i stien som en parametre:

WinExec('fil.exe -STI TIL FILEN', SW_SHOW);
Avatar billede nca Juniormester
05. januar 2004 - 20:06 #14
Måske er jeg lidt tungnem, men jeg forstår ikke hvad det hele går ud på :-(
Du højreklikker på en genvej til et program og du får den fulde sti til programmet. Fx: C:\Programmer\WinZip\WINZIP32.EXE
Hvad ønsker du så at gøre med Winzip?
Avatar billede fun22 Nybegynder
05. januar 2004 - 21:01 #15
hvis jeg højreklikker på: C:\Programmer\WinZip\WINZIP32.EXE og trykker på den knap jeg har lavet, skaldet se sådan her ud:

WinExec('fil.exe -C:\Programmer\WinZip\WINZIP32.EXE', SW_SHOW);

Og hvis det er en anden fil, ja så skal det ændres til det.. Bedre nu?
Avatar billede nca Juniormester
06. januar 2004 - 08:15 #16
Bedre - ja, men har du ikke lagt linien WinExec('fil.exe -C:\Programmer\WinZip\WINZIP32.EXE', SW_SHOW);
ind i din Dll?
Avatar billede fun22 Nybegynder
06. januar 2004 - 09:46 #17
Jo, den ligger i dll filen i den kommando der bliver udført når man klikker på knappen. Det jeg så skal have er den funktion, der checker hvad det var for en knap der er blevet klikket på og så tage stien til den, og lig ind der hvor winzip stien er.
Avatar billede nca Juniormester
06. januar 2004 - 15:09 #18
Hvad skulle fordelen være ved at starte programmet på den måde?
Avatar billede fun22 Nybegynder
06. januar 2004 - 16:03 #19
Det er er min program, skal bruge stien... det er svært at forklare, men du kan se når det er færdig....
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
Kurser inden for grundlæggende programmering

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