Otwórz za pomocą...

0

Witam, załóżmy że napisałem hmm... coś w rodzaju prostego edytora tekstu.
i teraz chciałbym żeby jakiś plik .txt po otworzeniu za pomocą mego programu, automatycznie uruchamiał ten edytor tekstu, oraz wkleił zawartość pliku do niego.
Czyli chce po prostu aby mój program obsługiwał opcję "Otwórz za pomocą..." w windowsie.

W jaki sposób mogę coś takiego zrobić? Będę bardzo wdzięczny za pomoc.

0

Nie bardzo rozumiem o co Ci chodzi ale jeśli o skojarzenie Twojego programu z danym typem pliku (tu chyba txt) to musisz z poziomu swojej aplikacji zmienić wpis w rejestrze dla rozszerzenia .txt w kluczu bodajże HKEY_CLASSES_ROOT.txt\ShellNew\ w wartości ItemName na ścieżkę dostępu do swojego programu.

0

Chodzi mi o to, że chciałbym aby można było zrobić tak - mam w programie coś takiego: std::ifstream in(plik);
Gdy kliknę prawym na dowolny plik tekstowy na pulpicie, a następnie "Otwórz za pomocą" z listy wybiorę mój program, to ten mój edytor się uruchomi i zmienna "plik" zyska wartość taką jak nazwa pliku np. tekst.txt.

0

Też jestem tego ciekaw. Co prawda nie do edytora tekstu ale przydało by się coś takiego w moim programie. Samo skojarzenie pliku z programem to pestka, można to zrobić i ręcznie we właściwościach programu. Natomiast automatyczne wczytanie musi odbywać się przy ładowaniu okna w zdarzeniu OnLoad. Tworzysz tam wczytywanie pliku do okna i... brak tylko jednego jak odnaleźć nazwę i ścieżkę do tego pliku. Może jakiś parametr jest przekazywany do (przynajmniej w C++) funkcji main() ?

0

Musisz poszukać a MSDN. Na pewno trzeba dodać/zmienić jakiś wpis w rejestrze.
To Ci może pomóc: http://www.techrepublic.com/blog/window-on-windows/quick-tip-add-open-with-notepad-to-the-right-click-menu/4005

0

Ścieżka do pliku przekazywana jest jako parametr do main'a.

0

Znalazłem taki kodzik na delphi, może się przydać jako przykład

if ParamStr(1)<>'%1' then begin address.Text:=ParamStr(1); autoconfigfile; end;

Co oznacza, że musimy sprawdzić czy parametr nie jest %1 jeżeli nie no to został przekazany adres

0
int main(int argc, char* argv[])
{
  if(argc > 1)
    openFile(argv[1]);

  return 0;
}
0

sperling,
dużo mi to nie pomogło...

0

Tego typu akcje frameworki załatwiają raczej z automatu(np. MFC), więc czytajcie ze zrozumieniem...
@autor: dałem Ci tam artykuł jak w rejestrze dodać pozycję w menu, to jak dodawać coś do rejestru znajdziesz w 5 sekund w google, to są 3 funkcje na krzyż.
Nie jestem pewien czy da się prosto dodać coś do pod menu "twórz za pomocą...", prawdopodobnie to siedzi gdzieś w rejestrze, ale nie koniecznie ktoś z poza systemu powinien w to wnikać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1