Avatar billede jps6kb Novice
20. juli 2006 - 10:08 Der er 25 kommentarer og
1 løsning

Reg.db. hvordan får jeg den til at tage flere parametre?

Hej,

Jeg har luret hvordan jeg laver et element på højreklik menuen på bestemte filtyper.

[command]
c:\programmer\minprogram.exe "%1"

Det åbner mitprogram.exe og sender filen med, som jeg højreklikkede på.
Men! Hvad skal jeg gøre, hvis jeg nu vil sende en samling filer med?

Hvis jeg markerer 5 filer og højreklikker og vælger "MitProgram" så åbner den 5 instanser af mitprogram.exe og det vil jeg jo helst undgå da programmet er lavet til at tage en samling. Ligesom hvis jeg laver en genvej i "SendTo" menuen. Det virker helt fint nemlig. :)

Jeg håber jeg har gjort mig forståelig?
Avatar billede thesurfer Nybegynder
20. juli 2006 - 10:36 #1
Hmm.. så vidt jeg ved (fra DOS), kan du bruge %1 %2 %3 og op til %9.
Avatar billede jps6kb Novice
20. juli 2006 - 11:08 #2
Det giver ikke nogen forskel.

Jeg har prøvet at markere 4 filer, højreklikke og vælge MitProgram, men der kommer stadig 4 instanser uanset om jeg skriver "%1", "%2", "%3" eller "%4". :)
Avatar billede jps6kb Novice
20. juli 2006 - 11:20 #3
Faktisk, sker der det samme selvom jeg ikke skriver "%1" bagved min sti.
Avatar billede thesurfer Nybegynder
20. juli 2006 - 13:22 #4
Jeg mente at du skulle bruge dem alle.. ikke "eller"..

Dvs: program.exe %1 %2 %3 %4
Avatar billede jps6kb Novice
20. juli 2006 - 13:39 #5
Det er samme resultat desværre.
Avatar billede thesurfer Nybegynder
20. juli 2006 - 13:45 #6
Hvilket sprog er dit program lavet i?
Jeg tror at du skal ud i noget MDI, for at få det til at virke..
Avatar billede jps6kb Novice
20. juli 2006 - 13:52 #7
Jeg har skrevet det i C#.
Avatar billede thesurfer Nybegynder
20. juli 2006 - 14:00 #8
Du har ikke beskrevet processen, og hvad der sker med filerne..

Men jeg vil mene at du skal bruge MDI (Multiple Document Interface), da det jo er flere "dokumenter" du sender til programmet..

Prøv kig på det, og se om det hjælper..
Avatar billede jps6kb Novice
20. juli 2006 - 14:12 #9
Det er egentlig ikke filer, men biblioteker.. det var bare for at forklare det lidt nemt.. hehe.. men processen er som følger:

Jeg markerer nogle biblioteker og højreklikker, "send til" og vælger mit program..

Så starter mit program op, og den tager de markerede mapper som parametre i konstruktøren og behandler dem.

Men jeg vil gerne gøre brug af dette : http://www.jfitz.com/tips/rclick_custom.html
Starter ca. midt på siden. :)

Men der starter den programmet én gang pr. markeret mappe.
Avatar billede thesurfer Nybegynder
20. juli 2006 - 14:48 #10
"Send til" / "Send to" har ikke noget med registreringsdatabasen at gøre. Den sender bare en genvej.

Her er et eksempel:
1) Smid følgende tekst ind i en ganske alminde tekstfil (f.eks. lavet i notepad), med navet "test.bat"

@echo off
echo %1
echo %2
echo %3
echo %4
pause

2) Hiv filer/mapper over på "test.bat"

Forklaring på kode:
Linie 1  : Slet/clear skærmbilledet
Linie 2-5: Udskriv parameterne
Linie 6  : Pause udskrivning/afslutningen så vi kan se hvad der stå.

"test.bat" behandler værdierne som parametere, og det virker som det skal.


Det kan være, at dit program skal indstilles til kun at tillade 1 instans.
Jeg mener at du skal kigge i Application.. dvs, skrive Application og tryk på "." for at se mulighederne.
Avatar billede thesurfer Nybegynder
20. juli 2006 - 15:04 #11
Man kunne måske lave en mellemting..

Højrekliksmenuen sender mapperne til en bat fil, som laver 1 kald til dit program med parameterne..
Avatar billede jps6kb Novice
20. juli 2006 - 15:07 #12
Hvordan mener du? :)
Problemet er, som jeg tror det er, at højreklik menuen kun ser den første mappe og ikke de andre.
Avatar billede thesurfer Nybegynder
20. juli 2006 - 15:08 #13
Den skal jeg lige selv tygge lidt på.. :-)
Jeg laver nogle tests og vender tilbage med et eller andet.. :-)
Avatar billede thesurfer Nybegynder
20. juli 2006 - 15:22 #14
Dammit.. den afvikler flere versioner af bat filen..

I C# kan man begrænse antallet af instanser til 1.. måske er det løsningen..

Jeg har muligvis muligheden for at teste det lidt senere..
Avatar billede jps6kb Novice
20. juli 2006 - 17:48 #15
Det lyder super. Jeg leger lidt med det, men vil også gerne høre hvad du finder frem til :)
Avatar billede thesurfer Nybegynder
21. juli 2006 - 11:17 #16
Jeg tror at vi skal bruge noget DDE-halløj.. :-)

Hvis du åbner en mappe (f.eks. "Denne Computer") og vælger menuen "Funktioner" og derefter "Mappeindstillinger", kan du vælge fanen "Filtyper".
Få derefter filtypen "JPG". Dit tegneprogram kan højst sandsynligt åbne flere dokumenter (marker flere JPG filer, højreklik og vælg åben) på samme tid.
Jeg er næsten 100% sikker på, at dine indstillinger (marker filtypen JPG og klik på Avanceret) indeholder (nogle af) disse indstillinger:

[x] Brug DDE

DDE-meddelelse: [open("%1")]

Jeg tror at dit program skal registreres, eller filtypen skal åbnes med dit program, så du kan indsætte i ovennævnte indstillinger.

Jeg tror at dette trin afvikles FØR parameterne når dit program.. dvs:

1) markering, og åbning af filer
2) DDE-check
3) Send filerne til programmet

Systemet lavet sikkert DDE-check før dit program for parameterne/argumenterne..
Avatar billede jps6kb Novice
21. juli 2006 - 12:10 #17
Jeg har ikke noget der hedder DDE der?
Avatar billede jps6kb Novice
21. juli 2006 - 12:12 #18
Eller, jeg har det på filer men ikke mapper. :)
Avatar billede thesurfer Nybegynder
21. juli 2006 - 12:20 #19
Jeg er næsten sikker på, at det er DDE der gør det muligt med filer.. jeg ved desværre ikke hvordan det gøres med mapper..
Avatar billede jps6kb Novice
21. juli 2006 - 12:21 #20
Jeg laver lige et test program til filer og så ser. For hvis det gør, må der da være en work-around til mapper. :)
Avatar billede jps6kb Novice
21. juli 2006 - 12:29 #21
Okay.. hvis jeg skriver

open("%1")

i meddelse, fejler den ved kun én fil, men flere filer åbner flere vinduer.
Det samme gælder hvis jeg undlader den. Så fejler en enkelt fil bare ikke.
Avatar billede thesurfer Nybegynder
21. juli 2006 - 13:05 #22
Den forstod jeg ikke.. Hvor/hvordan/til hvilken type indsætter du open("%1")?
Avatar billede jps6kb Novice
21. juli 2006 - 13:17 #23
Jeg lavede en ny filtype der hed .tst og oprettede to tomme .tst filer som jeg testede det på. :)

Jeg gik så ind i "Avancere" for tst filtypen og tilføjede en ny Handling.
På den handling valgte jeg DDE og skrev open("%1") i meddelelse og skrev stien til programmet selvfølgelig. :)
Avatar billede thesurfer Nybegynder
21. juli 2006 - 13:58 #24
Så er jeg med :-)

Men problemet er jo, at standard handlingen af f.eks. mapper, tilhører Windows Explorer, og ikke dit eget program..

Så der må være et eller anden måde at gøre det på, uden brug af DDE.. håber jeg.. :-)
Avatar billede jps6kb Novice
21. juli 2006 - 14:48 #25
Godt så. :p
Ja, eks. hvis du installerer WinRAR, så har du jo mulighed for at markere flere mapper OG filer for den sags skyld og vælge "Add to Archive" i højreklik menuen. Det er fuldstædig sådan det skal køre jo :p

Men hvordan de har gjort det vil jo til gengæld ikke gætte på. Hehe.
Avatar billede jps6kb Novice
30. august 2006 - 10:05 #26
Jeg stryger den her. Jeg kunne ikke finde en løsning til det, desværre, så det blev sendt ud som en genvej i SendTo mappen. Man mange tak for indsatsen. :)
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