bonmario:
Ciao a tutti, ho sempre usato "LCLIntf.OpenDocument" per aprire un file con l'applicativo associato alla sua estensione. Oggi, però mi hanno fatto notare che se non ho nessun applicativo associato a quell'estensione, "LCLIntf.OpenDocument" non fa niente, mentre se un utente fa il "doppop click" da esplora risorse su quel file gli esce la finestrella con cui può scegliere con quale applicativo aprire il file.
Al momento ho bypassato il problema creando un file bat che esegue la seguente istruzione:
ma mi piacerebbe sapere se c'è già qualche istruzione che fa la stessa cosa.
Grazie in anticipo, Mario
xinyiman:
Purtroppo io non mi ci sono mai imbattuto, magari qualche altro utente.
Microges2000:
Usa OpenDocument (unit LCLIntf) e passagli il file da aprire, funziona un po' con tutto L'ho provato con doc, pdf, txt, jpg, html, java ed anche con indirizzi web
bonmario:
Grazie, è proprio quello che uso già (vedi il mio primo post). Il problema è questo: se io uso OpenDocument per aprire un pdf sul mio PC, su cui ho associato l'estensione pdf ad Acrobat Reader, mi apre il file. Se lo faccio su un PC su cui non è stata associato nessun programma all'estensione pdf, non succede nulla. Se invece faccio doppio click sul file pdf, mi esce la finestrella con cui Windows mi chiede con quale applicativo voglio aprire quel file. Questo è il comportament che vorrei avere e che adc oggi ottengo solo col metodo che ho scritto nel primo post.
Ciao, Mario
Stilgar:
Mario .. quello che indichi tu come "voluto" è un comportamento di Explorer ... mica del "kernel" ... Devi aprire anche tu la finestrella delle applicazioni associate.
--- Codice: --- if Win32Platform = VER_PLATFORM_WIN32_NT then begin ws := UTF8Decode(AURL); Result := ShellExecuteW(0, 'open', PWideChar(ws), nil, nil, SW_SHOWNORMAL) > 32; end else begin ans := Utf8ToAnsi(AURL); // utf8 must be converted to Windows Ansi-codepage Result := ShellExecute(0, 'open', PAnsiChar(ans), nil, nil, SW_SHOWNORMAL) > 32; end;
--- Termina codice --- Questo è il pezzo di codice che apre il documento tramite la shell. Info sull'api di window.