13. december 2001 - 11:01Der er
14 kommentarer og 1 løsning
tekstprogram og regedit
Jeg har lavet et tekstprogram i C++ builder. Jeg vil gerne have mit tekstprogram associeret med txt filer. Dvs når jeg dobbeltklikker på en txt fil, så åbner tekstfilen i mit program. Jeg har kigget i registry: HKEY_CLASSES_ROOT\\txtfile\\shell\\open\\command i denne key står der \"notepad.exe %1\". Hvis jeg sletter %1, så kan windows ikke åbne txt filer og hvis jeg skriver stien til mit program, så åbner mit program... med uden nogen tekst. Hvad gør jeg?
Nu har jeg ikke lige prøvet at kode i C-builder, så du må bære lidt over med mig :)
Du skal lave sådan at din program kan modtage parametre fra \"kommando-prompten\", sådan at du kan skrive noget der tilsvarer \"notepad.exe openthis.txt\" ? Håber at det giver mening :)
Du skal bruge noget der hedder Dynamic Data Exchange (DDE). Du får sandsynligvis en WM_DDE_EXECUTE command når der vælges en filtype der er registreret til dit program.
Du skal ganske rigtigt erstatte notepad.exe i d.o. reg-key med det FULDE navn på dit eget program - og lade %1 stå. (%1 bliver erstattet med fil-navnet som wisen skriver.) Selve fil-navnet får din applikation over som \"command parameter\", og dem kan du få fat i vha. GetParam() metoden:
if (GetParam(1) != \"\" && FileExists(getParam(1))) // Fil-navn overført RichEdit1->Lines->GetFromFile(GetParam(1));
Lav et nyt projekt vha. \'File-New application\'. tilføj en TRichEdit komponent fra \'Win32\' fanen og ret \'Align\' propertyen til alClient. Tryk på F12 for at se sourcen, og læg følgende ind i constructoren:
Hvorfor går du ikke bare ind og ændrer filtype associationen???
KontrolPanel->Tools->Folder options Her vælger du fanebladet \"File Types\", og vælger \"TXT\". Når du vælger \"change\" kan du skifte det program der skal åbne denne type filer (Står default til Notepad.exe).
Det er længe siden jeg lavede det program, og som du selv skiver, så kunne jeg ikke bruge svarerne til noget. Jeg bliver bare konstant reminded, om denne tråd!
Jamen, det er kutyme at poste svaret her. Det ville jo være rart hvis der var et svar - specielt hvis nogen søger på spørgsmål og læser hele tråden igennem.
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.