Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197

    [Vb 6] utilizzare una api per aprire un programma

    salve a tutti ho un problema con visual basic 6.0 devo riuscire ad aprire un programma presente sull'hard disk tramite un command1 e per fare cio devo usare un protocollo che nn sia un protocollo ole ma qualche altro sistema ho pensato alle api ma ho qualche difficolta


    potreste aiutarmi please

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Cioè?
    1)Hai un programma sull'HD, diciamo su C:\TuaDir\TuoProg.EXE
    2) Hai una tua applicazione VB60 con un commandbutton in una form.
    3) Al click sul bottone vuoi lanciare l'esecuzione del TuoProg.EXE.

    E' giusto ?

    Se si usa il comando Shell o l'api ShellExecute().
    Ciao, Brainjar

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    si infatti mi interessa aprirlo con le api ma nn so dichararlo me collarlo (call)

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Se devi solo lanciarlo basta inserire questo codice nell'evento Click del bottone :
    codice:
    Dim RetVal
    RetVal = Shell("C:\TuaDir\TuoProg.EXE", 1)
    Il secondo parametro, in questo caso 1, indica che avrai l'esecuzione del programma in una
    normale finestra esterna alla tua applicazione e con il fuoco (ovvero l'applicazione attiva
    sarà il TuoProg.EXE.

    Ecco la lista dei possibili valori del secondo parametro
    codice:
    Constant           Value Description 
    vbHide             0   Window is hidden and focus is passed to the hidden window.  
    vbNormalFocus      1   Window has focus and is restored to its original size and position. 
    vbMinimizedFocus   2  Window is displayed as an icon with focus. 
    vbMaximizedFocus   3  Window is maximized with focus. 
    vbNormalNoFocus    4   Window is restored to its most recent size and position. The
                                    currently active window remains active. 
    vbMinimizedNoFocus 6  Window is displayed as an icon. The currently active window remains
                                    active.
    Ciao, Brainjar

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    ciao scusami se replico ho fatto un progetto dove si doveva aprire il .exe ma purtroppo facendo per un altro exe tipo interfaccia dos questop nn funziona con lo shall ti riporto il codice ceh ho messo per aprirlo



    Dim pid As Long
    pid = Shell("L:\WoW v1.9.2 Server Emu\WoW v1.9.2 Server Emu\Server (you need Client patch 1.80-1.84 to play on it!)\WoWemu.exe", vbNormalFocus)

    Form1.Refresh



    ma il programma wowemu si chiude dopo pochi secondi mentre con altri programmi lo shell ha avuto successo senza problemi potresti dirmi come si definisce con lo shallexecute oppure con qualche altro modo?


    please help me

  6. #6
    E se lanci il suddetto programma con un semplice doppio click?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    funziona normalmente ma il fatto che questo programma è un server che ogni tanto si chiude da sl quindi dato che deve restare aperto notte e giorno nn posso starci io vicino al pc notte e giorno

    quindi potreste dirmi come si mette l'api per aprire un programma?

  8. #8
    Va più che bene la funzione Shell; se il server si chiude da solo ogni tanto non è meglio aggiustare l'applicazione in questione?
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    nn posso aggiustarlo dato che è un server premium di un gioco chiamato Worxxd of warcraxt
    nn posso scrivere il nome scusate e quindi i molti utenti lo fanno crashare ovvero lo mandano in errore e cosi facendo il programma si autochiude
    cmq ne il shell ne il shellexecute riescono a farlo partire perche è come se riconoscesse se è stato aperto con il click o no

    poi ho provato questa istruzione


    Form1.SetFocus
    SendKeys ("{enter}")

    OLE1.SetFocus
    SendKeys ("{enter}")
    SendKeys ("e")
    e funziona sl se ogni volte che carico di nuovo ilprogetto in vb rimetto un nuovo ole
    e se creo il programma eseguibile .exe nn funziona più mi da sempre il fatto che si apre e dp due seconti si richiude


    ho provato pure a crare un collegamento sel file exe del server e a dagli un stato di scelta rapida per partire ma poi nel programma vb metto il sendkeys ("{f2}")
    e nn succede niente mentre se premo io f2 il server parte
    ci sta pure un programma a corredo del server che dovrebbe svolgere la funzione di vedere se il server funziona ma mi da un errore alla partenza qui allego l'immagine dell'errore se caso mai sapete come risolverlo mi potreste dire come si fa



    comunque come soluzione ho pensato nn è possibile simulare il click del mouse a delle coordinate x e y dello schermo cosi dovrei risolvere il problema magari il doppio click


    grazie scusate per un post cosi lungo
    Immagini allegate Immagini allegate

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma l'errore che hai mostrato, cosa c'entra con il resto?

    Quell'errore potrebbe essere causato solamente dalla mancanza del .NET Framework.

    Installalo ...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.