Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4

    GetCommandLine (API su Win32)

    Ragazzi mi serve sapere il risultato che da GETCOMMANDLINE per fare un parser...

    per adesso so che da un risultato del genere...

    <VIRGOLETTE><NOME_FILE_EXE><VIRGOLETTE>[<SPAZIO><RESTO_COMMANDLINE>]
    per i nomi lunghi... ovvero chiamate normali...

    <NOME_CORTO_FILE_EXE>[<SPAZIO><RESTO_COMMANDLINE>]
    chiamato da prompt...


    quello che mi serve è estrarre <RESTO_COMMANDLINE> (se è presente)
    pero' nn sono sicuro che la cmdline si possa presentare il
    altri formati

    ps= la parte fra [ e ] è opzionale...

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    altro accorgimento...

    se avvio il programma di esempio CIAO.EXE
    con cmdline del tipo CIAO.EXE"""""""

    lo avvia e i parametri NON sono separati dallo spazio
    ma sono attaccati (per parametri intendo """"""")...

    insomma... nn so dove sbatere la testa...

  3. #3
    Non capisco quale sia il problema: passi in rivista i caratteri della stringa restituita; prima di tutto controlli se il primo char è una virgoletta doppia, nel qual caso cerchi le virgolette di chiusura e sai che da lì in poi son tutti parametri, altrimenti trovi il primo spazio e di lì in poi son tutti parametri...

    (Nota che ci DEVE essere uno spazio tra .EXE e i parametri, poi magari tra un parametro e l'altro lo spazio non c'è, ma tra il programma e i parametri ci deve essere...)

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    il problema è che ce un caso CHE non separa il nome-exe dai parametri
    e sarebbe NOME.EXE"""""""""

    quindi le virgolette sarebbero tutti parametri MA NON Vengono separate da uno spazio...

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da $$$
    il problema è che ce un caso CHE non separa il nome-exe dai parametri
    e sarebbe NOME.EXE"""""""""

    quindi le virgolette sarebbero tutti parametri MA NON Vengono separate da uno spazio...

    Se non separi il nome del file NOME.EXE dal resto dei parametro il Sistema Operativo non riconosce il comendo (non trovando un file che si chiami NOME.EXE"""") e non ti avvia proprio il programma NOME.EXE


    Questo è il ragionemanto che ha fatto Shores ed ha perfettamente ragione: è inutile che tu effettui un controllo dello spazio fra nome file e parametri: se non c'è, il programma non viene eseguito, quindi avresti una parte di programma inutile.



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    prova tu stesso...

    dal prompt dei comandi...


    digita CALC.EXE""""""""""""""
    vedi che ti si avvia

    ma anche con CALC.EXE((((((((

    si avvia...

  7. #7
    Beh, non vedo la difficoltà: significa semplicemente che i separatori validi sono anche la ( e il " , e non solo lo spazio...

    L'algoritmo che ti ho descritto prima è ancora corretto!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    aspe mi sa che nn mi hai capito :-|
    io l'algoritmo gia ce l'ho ma vorrei sapere TUTTI i separatori
    validi ed i formati delle command line accettati :-|

  9. #9
    Scusa, ma pur non sapendoti dire tutti i delimitatori validi, il tuo mi sembra un non problema: la GetCommandLine può essere usata SOLO per ottenere la linea di comando della applicazione in esecuzione, ovvero la TUA applicazione, quella che stai scrivendo, e di cui naturalmente non solo conoscerai il nome dell'eseguibile ("pippo.exe") ma SARAI TU A STABILIRE CHE FORMATO DEBBANO AVERE I PARAMETRI!

    Questo implica che:

    1)Se vuoi trovare dove cominciano i parametri basta che cerchi nella commandline il nome del tuo eseguibile, i caratteri che lo seguono sono parametri...

    2)Se il problema sono i delimitatori TRA i parametri, sei tu che stabilisci come debbano essere fatti, chi ti impone di complicarti la vita con separatori differenti dallo spazio?

    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    il problema nn sono la separazione dei parametri :|
    quello si lo decido io... ma non decido chi e come separa
    il nome exe dai parametri PURTROPPO e purtroppo c'è gente
    che cerca di hackare i programmi xcui vorrei essere certo
    che non ci riesca... semplicemte manipolando l'avvio con
    exploit sulla cmdline :-|

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.