* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 28, 2024, 12:40:42 am

Inserisci il nome utente, la password e la durata della sessione.

35 Visitatori, 0 Utenti

Autore Topic: trovare il path di un'eseguibile (Linux)  (Letto 6740 volte)

Stefano

  • Newbie
  • *
  • Post: 35
  • Karma: +0/-0
trovare il path di un'eseguibile (Linux)
« il: Giugno 04, 2012, 03:42:47 pm »
ho bisogno di trovare il path di un'eseguibile (non e'  detto sia installato nel path predefinito)
es: firefox, o swriter di OpenOffice.

sPath := ExtractFilePath('firefox');
o
sPath := ExtractFilePath('firefox.exe');

mi ritorna sempre il path della unit dove risiede il codice
mentre dovrebbe restituire /usr/bin/firefox

ShowMessage( 'path = ' + sPath);
visualizza sempre sPath vuoto

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2924
  • Karma: +20/-4
Re:trovare il path di un'eseguibile (Linux)
« Risposta #1 il: Giugno 04, 2012, 04:42:21 pm »
ExtractFilePath estrae il percorso da un valore in ingresso che *contiene* (anche) il percorso ;)

in pratica la chiamata dovrebbe essere:
sPath := ExtractFilePath('/usr/bin/firefox/firefox');
ma il problema è proprio che non si conosce '/usr/bin/firefox' :)

purtroppo non so come si potrebbe ottenere la path di installazione di un'eseguibile, la prima cosa che mi viene in mente per linux è il comando: whereis
Imagination is more important than knowledge (A.Einstein)

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2389
  • Karma: +10/-0
Re:trovare il path di un'eseguibile (Linux)
« Risposta #2 il: Giugno 04, 2012, 04:53:52 pm »
Utilizzare un EXPAND prima di un EXTRACT?
Fattibile?
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

brunello

  • Jr. Member
  • **
  • Post: 83
  • Karma: +0/-0
Re:trovare il path di un'eseguibile (Linux)
« Risposta #3 il: Giugno 04, 2012, 05:09:20 pm »

Stefano

  • Newbie
  • *
  • Post: 35
  • Karma: +0/-0
Re:trovare il path di un'eseguibile (Linux)
« Risposta #4 il: Giugno 04, 2012, 06:08:47 pm »
potrei anche usare "wich" , ma:

wich firefox  -> usr/bin/firefoc
wich vlc        -> ure-bin/vlc
wich swriter -> nessun path

vlc e firefoc sono classificati Programma
swriter e' classificato Script (anche se con doppio click si avvia)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2924
  • Karma: +20/-4
Re:trovare il path di un'eseguibile (Linux)
« Risposta #5 il: Giugno 04, 2012, 06:15:00 pm »
immagino che comunque non ti interessi l'applicazione di default?

nel senso che, ad esempio per internet, vuoi proprio firefox e non il default browser?
Imagination is more important than knowledge (A.Einstein)

Stefano

  • Newbie
  • *
  • Post: 35
  • Karma: +0/-0
Re:trovare il path di un'eseguibile (Linux)
« Risposta #6 il: Giugno 04, 2012, 07:08:41 pm »
non e' firefox o altro browser, il problema;
ma dare la possibita' all'utente di scegliere quello che vuole.

ed essendo l'utente non uno smatettone, ma uno che usa il pc in modo passivo, cercavo un modo di farlo in automatico.

chiaro poi che nel caso di Linux, firefox si trova su /usr/bin nel 99% dei casi, non credo che qualcuno si prenda la briga di spostarlo.

posso sempre fare un FileExists con il path convenzionale e se non trova il file, avvisare di configurare il Path dove e' stato messo il browser.

Maverich

  • Scrittore
  • Full Member
  • *****
  • Post: 134
  • Karma: +0/-0
Re:trovare il path di un'eseguibile (Linux)
« Risposta #7 il: Giugno 05, 2012, 08:44:49 am »
l'eseguibile si chiama soffice e si trova su /usr/bin

quindi which soffice resituisce /usr/bin
inoltre si puo' redirigere l'output su un file di testo

which soffice > esito.txt  che sara' su /home<utente>/esito.txt

leggendo il file esito.txt ci sara'  la certezza del path.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2924
  • Karma: +20/-4
Re:trovare il path di un'eseguibile (Linux)
« Risposta #8 il: Giugno 05, 2012, 08:52:38 am »
se le applicazioni da localizzare sono molte ti conviene provare con il which (unica invocazione per tutte le applicazioni da trovare) piuttosto che con FileExists, hai molta più probabilità di ottenere path valide ;)

se non vengono trovate potresti chiedere all'utente di trovarle e poi salvare il tutto in un file di configurazione
Imagination is more important than knowledge (A.Einstein)

Maverich

  • Scrittore
  • Full Member
  • *****
  • Post: 134
  • Karma: +0/-0
Re:trovare il path di un'eseguibile (Linux)
« Risposta #9 il: Giugno 05, 2012, 12:28:02 pm »
infatti e' la cosa piu' sicura;
al momento pero' non riesco ad eseguirlo

da terminale non ci sono problemi ad eseguire which, ma in lazarus non va, sempre "executable not found"

alcune prove senza redirect, giusto per vedere se lo esegue.

 AProcess.CommandLine := '"/usr/bin/which"' + '" soffice"';
 AProcess.CommandLine := '"/usr/bin/which soffice"';

in alternativa si protrebbe lanciare uno script da terminale, ma come si chiama il file del Terminale ?

 

Recenti

How To

Utenti
  • Utenti in totale: 802
  • Latest: maXim.FI
Stats
  • Post in totale: 19218
  • Topic in totale: 2291
  • Online Today: 33
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 35
Total: 35

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.