Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione
realme C100x scommette tutto, forse troppo, sulla batteria da 7500 mAh e sulla certificazione ArmorShell per farsi notare nella fascia più economica del mercato: lo abbiamo messo alla prova per capire a chi è rivolto questo smartphone che sacrifica un po' prestazioni, display e fotocamera per offrire l'autonomia migliore possibile a un prezzo decisamente contenuto
Star Wars Zero Company è l'erede di XCOM 2
Star Wars Zero Company è l'erede di XCOM 2
Bit Reactor porta nell’universo di Star Wars una struttura tattica che richiama apertamente XCOM 2, ma la arricchisce con legami tra i personaggi, progressione ruolistica, gestione della base e un sistema di combattimento costruito attorno a tre Punti Azione e alle risorse condivise della squadra
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-07-2007, 06:34   #1
deggungombo
Senior Member
 
L'Avatar di deggungombo
 
Iscritto dal: Sep 2003
Messaggi: 1964
[C++] ShellExecute

ciao a tutti,
devo realizzare un codice che sia in grado di lanciare e terminare un programma non scritto da me (dovrà girare per 5 minuti, ma questo è un problema successivo).

ho letto in giro, e mi sembra d'aver capito, che sia possibile lanciare un applicazione usando ShellExecute.
mi sto allenando con degli esempi trovati in rete ma non riesco assolutamente a compilare nulla di quanto ho trovato (uso dev c++).

non sono un programmatore esperto, ho mosso i miei primi passi con c++ solo 2 mesi fa, quindi non abbiate paura di essere banali nelle vostre spiegazioni.


sto provando il seguente esempio (aprire una pagina web) ma non c'è verso di compilare. dove sbaglio?
Codice:
#include <iostream>
#include <windows.h>
#include <shellapi.h>
using namespace std;

int main ()

{

ShellExecute ( Handle,"open","http://www.google.com",NULL,NULL,SW_NORMAL);
  
return 0;
    }
ciao e grazie
__________________
♫ Now that you've found it, it's gone. Now that you feel it, you don't. You've gone off the rails. ♫
deggungombo è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 07:51   #2
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
E l'errore è?
Handle da quanto vedo non è definito...
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 07:53   #3
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
anzichè handle puoi mettere 0
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 08:47   #4
deggungombo
Senior Member
 
L'Avatar di deggungombo
 
Iscritto dal: Sep 2003
Messaggi: 1964
vi amo!!!

è brutto doversi mettere a fare qualcosa senza avere documentazione e le basi adeguate, cmq sono contento di imparare nuove cose.

ok, ho sostituito l'apertura della pagina web con il percorso di un programma scritto da terze parti. supponiamo che il programma, una volta lanciato, giri indefinitamente per sempre.
come lo termino? (anche brutalmente)

ecco l'idea che sto usando per far girare ciao.exe per un tempo definito dall'utente, ma mi manca il comando per terminare il programma. (ho trovato questa discussione ma non riesco a capire come si usa system())

Codice:
#include <stdio.h>
#include <time.h>
#include <iostream>
//#include <stdlib.h>
#include <windows.h>
#include <shellapi.h>

using namespace std;

void wait ( int seconds )
{
  clock_t endwait;
  endwait = clock () + seconds * CLOCKS_PER_SEC ;
  while (clock() < endwait) {}
}

int main ()
{
 int n,i;
cout<<"How long do you want to run Ciao.exe? (seconds)"<<endl;
cin>>n;


ShellExecute ( 0,"open","c:\\ciao.exe",NULL,NULL,SW_NORMAL);


printf ("Starting countdown...\n");
  for (i=n; i>0; i--)
  {
    printf ("%d\n",i);
    wait (1);
  }
  printf ("Exit\n");
  

//dovrei inserire qui il comando per terminare ciao.exe 

  return 0;
}
grazie
__________________
♫ Now that you've found it, it's gone. Now that you feel it, you don't. You've gone off the rails. ♫

Ultima modifica di deggungombo : 11-07-2007 alle 09:01.
deggungombo è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2007, 12:19   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Ecco un esempio:
Codice:
#include <windows.h>
#include <stdio.h>

int main (void)
{
    SHELLEXECUTEINFO shexi;
    int iSeconds = 30;
    DWORD dwRet;

    ZeroMemory (&shexi, sizeof (shexi));

    shexi.cbSize = sizeof (shexi);
    shexi.fMask = SEE_MASK_NOCLOSEPROCESS;
    shexi.lpVerb = "open";
    shexi.lpFile = "C:\\pippo.exe";
    shexi.nShow = SW_NORMAL;

    if (ShellExecuteEx (&shexi))
    {
        do {
            printf ("Attesa %d secondi\n", iSeconds);

            dwRet = WaitForSingleObject (shexi.hProcess, 1000);     // Timeout 1 secondo

            if (dwRet == WAIT_TIMEOUT)
                iSeconds--;
        } while (dwRet != WAIT_OBJECT_0 && iSeconds > 0);
                
        if (dwRet == WAIT_TIMEOUT)
            TerminateProcess (shexi.hProcess, 0);

        printf ("Terminato");

        CloseHandle (shexi.hProcess);
    }

    return 0;
}
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2007, 02:19   #6
deggungombo
Senior Member
 
L'Avatar di deggungombo
 
Iscritto dal: Sep 2003
Messaggi: 1964
grazie mille, anche se ancora non l'ho capito benissmo funziona alla perfezione
era proprio quello che cercavo.

giusto per sfizio sapete se esiste un comando per terminare il processo che possa aggiungere al codice che ho scritto nel mio post precedente?


grazie
__________________
♫ Now that you've found it, it's gone. Now that you feel it, you don't. You've gone off the rails. ♫

Ultima modifica di deggungombo : 12-07-2007 alle 02:22.
deggungombo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
NetApp Novus, 100 TB al secondo per sfru...
Spotify giù da ore: se non trovi una can...
Sky con Netflix incluso da 16,99€/mese: ...
Anthropic verso la Borsa: 42 miliardi di...
Data repatriation: cos'è e come S...
ProsperoEden: l'emulatore funzionante ch...
La sonda spaziale ESA JUICE ha effettuat...
iPhone, crash a valanga su migliaia di a...
Se mangi queste patatine puoi vincere un...
Opera browser ha una eSIM integrata da 3...
WINDTRE BUSINESS e la Protezione Civile ...
Intel prepara i chip che si illuminano? ...
HUAWEI WATCH D3 arriva in Italia: l'orol...
PS5 Pro, in Giappone si compra per estra...
Recensione Nothing Headphone (1) Pro, de...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v