Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    [Delphi] Richiamare routine da sistema

    Mi spiego:
    Tramite opportune modifiche al registro di sistema, è possibile assegnare un comando che permette di lanciare un'applicazione (o parte di essa). Esempio banale: se da "Start">"Esegui" digito mailto:indirizzo@mail.it
    mi si apre la finestra per inviare una mail col mio client di posta elettronica predefinito.
    Ora, sto sviluppando un'applicazioncina che permette di monitorare l'attività di un telefono ip ed eventualmente di fargli effettuare telefonate e quant'altro.
    Ora mi interesserebbe sapere se, ad applicazione attiva, fosse possibile anzichè richiamare l'intero programma, richiamare solo una routine di questo.

    P.S. So già come e dove impostare i valori del registro di sistema, volevo solo sapere se è possibile (ed eventualmente come) richiamare una routine del programma.

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ok.. girovagando su internet credo di aver trovato la soluzione.

    Basta mettere sul client un tcpserver in ascolto ed aggiungere alla stringa nel registro il comando da inviare al software.

    Testo ed eventualmente posto.. si sa mai che questa soluzione possa servire a qualcun altro

  3. #3
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ci sono quasi:

    codice:
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\voipcall]
    @="URL:VoipCall Protocol"
    "URL Protocol"=""
    
    [HKEY_CLASSES_ROOT\voipcall\shell]
    @=""
    
    [HKEY_CLASSES_ROOT\voipcall\shell\open]
    @=""
    
    [HKEY_CLASSES_ROOT\voipcall\shell\open\command]
    @="C:\\PhoneMan\\PhoneMan.exe %1"
    Con questo creo una chiave ne registro di sistema che mi permette di far avviare il programma tramite il comando "voipcall: numero" (in questo modo posso far effettuare la chiamata anche da web, semplicemente mettendo un link del genere tel)

    Ora però il problema è che con quel sistema, il programma viene eseguito (anche se è già attivo). Io invece voglio che, essendo già attivo esegua il comando che gli ho imposto. Qualcuno sa dirmi come devo impostare la voce del registro??

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Mi sono arreso.. niente routine mi appoggio ad un eseguibile esterno.
    In pratica mi serve che digitando il comando "voipcall:103" il telefono pilotato dal software faccia partire una chiamata verso il numero che segue i due punti.
    Fatta salva la configurazione del registro che ho postato prima, ho messo nel programma un tcpserver che si attiva alla creazione del form e poi ho usato la seguente funzione:
    codice:
    procedure TForm1.TcpServerExecute(AThread: TIdPeerThread);
    begin
     Label2.Caption := AThread.Connection.ReadLn();
     Linea.MakeCall(Label2.Caption);
     Disconnect;
     Close;
    end;
    Dove "Linea" è il nome del componente che mi permette di pilotare il telefono, mentre "MakeCall" (neanche a dirlo) è la routine che mi permette di effettuare la chiamata verso il numero passato come parametro.

    Ora.. banalmente... perchè non funziona?
    Non basta questo per prendere il parametro passato dal registro come %1?

  5. #5
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    uppete

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ok... avevo sbagliato l'impostazione.

    Il tcpserver che avevo trovato in un'altro software non serviva al mio scopo.

    Bastava semplicemente fare
    codice:
     Label2.caption:=copy(ParamStr(1),10,length(ParamStr(1))-9 );
    Linea.MakeCall(Label2.Caption);
    Me la son cantata e suonata da solo

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da VaLvOnAuTa
    Me la son cantata e suonata da solo
    Mi dispiace non avere avuto il tempo di "esaminare la tua pratica".

    Tieni sempre a mente, però, che ciò che scrivi può sempre essere utile ad altri, quindi anche se ti autorispondi svolgi comunque un servizio utile che potrà essere apprezzato in futuro.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ma per carità alka... avendo svolto il compitino da solo ho avuto la possibilità di studiarmi bene il registry.

    Comunque ho postato la soluzione proprio perchè potrebbe eventualmente dare uno spunto a qualcuno che in futuro avrà un problema simile al mio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.