View Full Version : Aiuto! Avrei bisogno urgente di un file .exe "che non faccia niente"...
Violator
19-07-2005, 17:28
Ciao,
la richiesta è un po' strana lo so, ma avrei bisogno di un file eseguibile .exe che "non esegue niente". Praticamente un programma che si apre e si chiude immediatamente. Non so, magari ha 2 righe di comando, ma io non so come farlo...
Per favore, mi potete aiutare?
RaouL_BennetH
19-07-2005, 18:02
Ciao,
la richiesta è un po' strana lo so, ma avrei bisogno di un file eseguibile .exe che "non esegue niente". Praticamente un programma che si apre e si chiude immediatamente. Non so, magari ha 2 righe di comando, ma io non so come farlo...
Per favore, mi potete aiutare?
lol! :D
:rotfl:
scusa, ma sei un grande!! :D
è la prima volta da quando frequento questo forum, che:
si incontra chi chiede un software per il calcolo astrale
si incontra chi chiede aiuto su funzioni complesse
si incontra chi deve dare gli esami e ha problema con i puntatori
si incontra chi non sa una cippa(come me) e chiede aiuto per scrivere hello world
ma...
uno che chiede un software che non esegua nulla non l'avevo mai incontrato :D :sbonk: :asd:
cmq... assumendo che il linguaggio sia C:
#include <stdio.h>
int main()
{
printf("^_^");
}
lo compili con un compilatore e lo chiami nulla.c, l'eseguibile lo chiami come_ti_pare.exe e a meno che qualcuno non apra il sorgente e ci metta una system pause, dovrebbe fare quello che chiedi :)
jappilas
19-07-2005, 18:27
int i=0;
int main()
{
while (1)
{
i++; i--;
};
}
così hai un bel loop che impegna la cpu senza usare i/o nè nulla e senza quindi dover far ricorso a include esterni :) :asd: :asd:
RaouL_BennetH
19-07-2005, 18:30
int i=0;
int main()
{
while (1)
{
i++; i--;
}
}
così hai un bel loop che impegna la cpu senza dover far ricorso a include esterni :) :asd:
sei un :Perfido:
:D
oppure, puoi fare semplicemente un collegamento sul desktop a:
command -e (applicazione dos che ti pare)
jappilas
19-07-2005, 18:43
sei un ...
..taccagno, lo so :D:D:D
le dichiarazioni di tutte le funzioni della stdio, sono tutti byte in più eh ... se il programma non fa nulla di redditizio, chi li paga? :O
:asd: :asd: :asd:
franksisca
19-07-2005, 20:22
Cmq, se ti serve qualcosa che occupi inutilmente la CPU, ci pensa già windows :asd: :asd:
Se ti serve per altro, fai come dicono gli altri, la soluzione migliore credo che sia quella di richiamare il dos, senza parlare di programmazione avanzata......
io credo che nessuno gli stia fornendo quello che ha chiesto: un exe che si apra e termina subito. il loop non va bene (deve terminare subito), e la printf non è necessaria. d'altra parte a me non mi va (e ribadisco "a me non mi") di farlo per pura pigrizia... :)
il codice sarebbe questo: int main() {return 0;}
Alvaro Vitali
19-07-2005, 21:31
Ammazza che sfaticati... eccotelo.... :D
http://www.code4fun.altervista.org/useless/Useless.zip
(copia ed incolla nel browser se no non funziona il download)
che fatica per farlo... :D
Scommetto che ci hai messo un bel virus che estorce denaro... :asd:
Cmq, se ti serve qualcosa che occupi inutilmente la CPU, ci pensa già windows :asd: :asd:
:rotfl:
Se ti serve per altro, fai come dicono gli altri, la soluzione migliore credo che sia quella di richiamare il dos, senza parlare di programmazione avanzata......
Addirittura avanzata :D
franksisca
20-07-2005, 07:15
Addirittura avanzata :D
Per un programma di questa complessità come minimo partiamo da UML per definire i pattern di utilizzo e poi si passa all'implementazione.... :stordita:
Per un programma di questa complessità come minimo partiamo da UML per definire i pattern di utilizzo e poi si passa all'implementazione.... :stordita:
:asd:
Violator
20-07-2005, 08:59
Bhè che dire... grazie a tutti!
Allora svelo l'arcano: ho bisogno di uno splash screen e per farlo utilizzo il programma Splash Screen Machine che richiede un .exe da associare all'immagine .jpg per lo splash screen.
In pratica avevo bisogno solo che l'iimagine venisse visualizzata nel desktop, ma mi serviva un programma. Ieri ho preso il manuale di C ed avevo compilato questo:
main()
{
}
La cosa ha funzionato, però io sono un po' pignolo...
L' .exe in questione fa aprire il prompt del dos per un'istante, cioè la finestra si apre e si chiude immediatamente, ma non vorrei che ciò accadesse...
Quale .exe posso eseguire perchè non venga aperta la finestra del dos, in modo tale da "girare" sotto windows e non far apparire nulla?
Spero di essere stato chiaro e comunque grazie a tutti.
DanieleC88
20-07-2005, 09:36
Sostituisci la main() con una WinMain().
Sostituisci la main() con una WinMain().
Adesso si che stiamo nel campo della programmazione avanzata :stordita:
franksisca
20-07-2005, 11:23
Adesso si che stiamo nel campo della programmazione avanzata :stordita:
te l'avevo detto io........
DanieleC88
20-07-2005, 11:48
Adesso si che stiamo nel campo della programmazione avanzata :stordita:
Uh? :fagiano: :stordita:
Violator
20-07-2005, 15:18
Allora prima di tutto grazie per le numerose risposte, ma non ho ancora risolto il problema.
Sostituendo semplicemente winmain() a main() VisualC++ mi da errore e non compila il file.
Ecco le prove che ho fatto:
winmain()
{
}
oppure:
#include <stdio.h>
int winmain()
{
printf("^_^");
}
Cosa può essere?
da Visual C++: File, New, Win32 Application, scrivi il nome del progetto, fai OK e scegli un progetto completamente vuoto; nella pseudocartella dei sorgenti aggiungi un file, ad es. "main.c", e scrivi questo:
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
return 0;
}
Swisström
20-07-2005, 16:30
in visual basic :|
Private Sub Form_Load()
Unload Me
End Sub
Violator
20-07-2005, 16:33
Ho risolto, grazie soprattutto a 71104!
Scusate la banalità del problema e la mia ignoranza in materia, grazie a tutti per la pazienza e la disponibilità.
franksisca
20-07-2005, 18:25
Figurati e scusaci per le battute, ma almeno, con questo caldo soprattutto, cerchiamo di scerzare su ogni così, in modo da tirarci un pò su......CIAO :cool:
Posso fare un po di spam, per fare queste cose ho un piccolo manualino sul mio sito, e un pò inconpleto ma questo problema e ben risolto ;-).
Ciao.
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
return 0;
}
Mamma quanta merda si deve scrivere per un programma Windows...
#include <gtk/gtk.h>
int
main(int argc, char ** argv)
{
gtk_init(&argc, &argv);
return 0;
}
Programma GUI con GTK+ che non fa niente.
Non mi meraviglio che i geni di Adobe abbiano abbandonato le MFC a favore delle QT. :asd:
Mamma quanta merda si deve scrivere per un programma Windows... il prototipo della WinMain sembra strano perché è dettato da ragioni storiche: ad esempio, in Win16 il secondo parametro, hPrevInstance, era il base address dell'ultima istanza caricata dello stesso eseguibile... completamente senza senso oggi, per almeno due motivi:
1) l'HINSTANCE (o HMODULE, che è la stessa cosa) rappresenta un base address, cioè prima di tutto un indirizzo; Windows 3.1 non aveva ne' le LDT ne' il paging, ma Windows NT e Windows 9x ce li hanno, quindi l'indirizzo hPrevInstance, che sarebbe il base address di un modulo di un altro processo, non è valido nel processo corrente;
2) Windows lo setta sempre a NULL (mi pare) perché quel sistema per avviare istanze singole dei programmi non viene più usato: per impedire che l'utente avvii due istanze di un programma oggi si usano i mutex.
abbastanza inutile anche il primo parametro, hInstance: dal momento che il primo modulo ad essere caricato in un nuovo processo è proprio l'eseguibile non c'è possibilità di rilocamento, (non ce n'è bisogno: il base address predefinito è sicuramente libero), quindi hInstance risulta sempre uguale al base address predefinito dell'eseguibile (in genere 0x400000).
e poi se vogliamo dirla tutta non vengono quasi mai usati nemmeno gli altri due parametri: per la command line molti frameworks Win32 usano GetCommandLine, e nShowCmd si trova nelle STARTUPINFO che si possono ritrovare con un'apposita funzione (ora non ricordo il nome).
il prototipo della WinMain sembra strano perché è dettato da ragioni storiche: ad esempio, in Win16 il secondo parametro, hPrevInstance, era il base address dell'ultima istanza caricata dello stesso eseguibile... completamente senza senso oggi, per almeno due motivi:
1) l'HINSTANCE (o HMODULE, che è la stessa cosa) rappresenta un base address, cioè prima di tutto un indirizzo; Windows 3.1 non aveva ne' le LDT ne' il paging, ma Windows NT e Windows 9x ce li hanno, quindi l'indirizzo hPrevInstance, che sarebbe il base address di un modulo di un altro processo, non è valido nel processo corrente;
2) Windows lo setta sempre a NULL (mi pare) perché quel sistema per avviare istanze singole dei programmi non viene più usato: per impedire che l'utente avvii due istanze di un programma oggi si usano i mutex.
abbastanza inutile anche il primo parametro, hInstance: dal momento che il primo modulo ad essere caricato in un nuovo processo è proprio l'eseguibile non c'è possibilità di rilocamento, (non ce n'è bisogno: il base address predefinito è sicuramente libero), quindi hInstance risulta sempre uguale al base address predefinito dell'eseguibile (in genere 0x400000).
e poi se vogliamo dirla tutta non vengono quasi mai usati nemmeno gli altri due parametri: per la command line molti frameworks Win32 usano GetCommandLine, e nShowCmd si trova nelle STARTUPINFO che si possono ritrovare con un'apposita funzione (ora non ricordo il nome).
:eek: :eek:
Ma perchè portarsi dietro tutta questa spazzatura?
IMHO, già il solo fatto di cambiare la standardissima main() in WinMain() lo trovo deprimente :cry:
probabilmente l'unico motivo era quello di mantenere un po' di compatibilità tra sorgenti a 16 bit e a 32 bit, in modo da facilitare un po' il porting quando nacque Win32. credo che alla fine per portare un sorgente da Win16 a Win32, bisognasse cambiare poche cose (infatti Win32 contiene un bel po' di nonsenses; è infestato da questi HINSTANCE, che spesso vengono completamente ignorati, come nelle Window Classes).
probabilmente l'unico motivo era quello di mantenere un po' di compatibilità tra sorgenti a 16 bit e a 32 bit, in modo da facilitare un po' il porting quando nacque Win32. credo che alla fine per portare un sorgente da Win16 a Win32, bisognasse cambiare poche cose (infatti Win32 contiene un bel po' di nonsenses; è infestato da questi HINSTANCE, che spesso vengono completamente ignorati, come nelle Window Classes).
Immagino cosa succeda ora che si passerà da win32 a win64... :eek:
Immagino cosa succeda ora che si passerà da win32 a win64... :eek: mah, non lo so perché non ho mai visto l'interfaccia di Win64, ma a dire il vero Microsoft sembra essersi rotta della backward compatibility: in Windows XP a 64 bit hanno fatto le peggio assurdità, Win16 è stato eliminato, i drivers a 32 bit non vanno più bene (winxp64 è povero di drivers)... da un eccesso all'altro :D
mah, non lo so perché non ho mai visto l'interfaccia di Win64, ma a dire il vero Microsoft sembra essersi rotta della backward compatibility: in Windows XP a 64 bit hanno fatto le peggio assurdità, Win16 è stato eliminato, i drivers a 32 bit non vanno più bene (winxp64 è povero di drivers)... da un eccesso all'altro :D
Da un cesso ad un altro :eek: :asd:
WOW. Forse Longhorn allora avrà nuove caratteristiche con 20 milioni di righe di codice in meno... Questa è magia... :asd: :sofico:
WOW l'hai detto! :asd: :D
Fenomeno85
23-07-2005, 09:16
Da un cesso ad un altro :eek: :asd:
WOW. Forse Longhorn allora avrà nuove caratteristiche con 20 milioni di righe di codice in meno... Questa è magia... :asd: :sofico:
Vista che poi che azzo di nome è :D ...cmq interessante le gtk ... hai una guida?
~§~ Sempre E Solo Lei ~§~
DanieleC88
23-07-2005, 10:13
Forse Longhorn allora avrà nuove caratteristiche con 20 milioni di righe di codice in meno... Questa è magia... :asd: :sofico:
Quale Longhorn! Windows Vista! :D
Vista che poi che azzo di nome è :D ...cmq interessante le gtk ... hai una guida?
~§~ Sempre E Solo Lei ~§~
http://www.gtk.org/ :asd:
Lì c'è tutto! ;)
Fenomeno85
23-07-2005, 10:20
Quale Longhorn! Windows Vista! :D
http://www.gtk.org/ :asd:
Lì c'è tutto! ;)
grazie :D
~§~ Sempre E Solo Lei ~§~
^TiGeRShArK^
25-07-2005, 11:43
mah, non lo so perché non ho mai visto l'interfaccia di Win64, ma a dire il vero Microsoft sembra essersi rotta della backward compatibility: in Windows XP a 64 bit hanno fatto le peggio assurdità, Win16 è stato eliminato, i drivers a 32 bit non vanno più bene (winxp64 è povero di drivers)... da un eccesso all'altro :D
i driver devono girare x forza in kernel mode...
e dato ke il kernel è a 64 bit i driver dovevano essere x forza descritti.
Lo strato WOW 64 (Windows On Windows) x fare girare i programmi a 32 bit se nn sbaglio funziona infatti solo in user-mode.
Anke x questo motivo si sono dovuti riscrivere tutti i programmi quali gli antivirus.
i driver devono girare x forza in kernel mode... ne esistono anche in user mode e probabilmente non funzionano più nemmeno quelli. :asd:
e dato ke il kernel è a 64 bit i driver dovevano essere x forza riscritti. potevano impegnarsi di più per supportare i vecchi drivers... buona parte del "vecchio" codice kernel mode a 32 bit avrebbe funzionato lo stesso sul kernel a 64 bit (i processori a 64 bit sono comunque un sovrainsieme di quelli a 32).
Arrivo in ritardo mostruoso ma tant'è... avevo preparto l'EXE, fatto l'upload ma poi mi sono dimenticato il post! :)
Cmq eccolo, anche se ormai non serve più: Null.EXE (http://mark0.net/var/null.exe) (5KB).
Bye!
Sono sicuro che dentro c'è un bel worm :p
Uno solo? :-?
E che cavolo, almeno 3 o 4!! :D :D
Bye!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.