Apakah ada exe Windows yang tidak melakukan apa-apa?

48

Apakah ada exe "noop" -queque di suatu tempat sebagai bagian dari instalasi Windows? Saya sedang mempersiapkan beberapa pekerjaan batch dan tugas yang dijadwalkan, dan untuk beberapa alasan saya ingin merujuk executable yang tidak melakukan apa-apa - yaitu meluncurkan tanpa jendela yang terlihat, dan segera berhenti.

Apakah executable seperti itu ada di instalasi Windows biasa di mana saja? atau bagaimana saya bisa mendekat? Saya tidak mau harus bergantung pada apa pun yang belum termasuk dalam Windows.

DuckMaestro
sumber
2
Dari pengamatan: svchost.exetidak membuka apa pun.
ta.speot.is
@ todda.speot.is Anda harus memasukkannya sebagai jawaban lengkap.
DuckMaestro
2
Apakah harus berupa file eksternal (dapat dieksekusi)? Jika tidak, maka remperintahnya bisa bekerja (dan tergantung di mana dalam file batch yang digunakan, bahkan mungkin ::variannya).
Synetech

Jawaban:

51

Anda dapat menggunakan rundll32:

  • Tidak ada jendela konsol
  • Tidak ada efek samping
  • Hanya 44 KB
  • Tidak diperlukan argumen
  • Bekerja pada setiap versi Windows terbaru (XP, Vista, 7), dan mungkin pada setiap sistem berbasis NT.
Andrea
sumber
2
Jadi mengapa itu ada di sana?
Nathan
6
@Nathan Dengan argumen yang sesuai, ia dapat memanggil fungsi di dalam DLL
Andrea
Kanan. Sebagai contoh, bayangkan sebuah print.exeprogram sederhana yang hanya mencetak parameter yang dilewatinya. Tanpa argumen itu akan melakukan apa-apa , tapi memberikan argumen melakukan sesuatu : > print foobar.
Synetech
@Andrea maka itu tidak melakukan apa-apa kecuali tidak diberi argumen. Meskipun itu tidak ada artinya sesuai dengan persyaratannya.
barlop
3
Kecuali itu mungkin bukan benar-benar sebuah larangan.
Andy Terra
36

Apakah ada exe "noop" -queque di suatu tempat sebagai bagian dari instalasi Windows?

Berarti secara khusus sebuah program yang dimaksudkan untuk tidak melakukan apa pun dan tidak melakukan apa pun? Iya dan tidak. Tidak karena Windows tidak memasukkan satu secara default, tetapi ia menyertakan kemampuan untuk membuatnya sendiri.


Pilihan 1

Jalankan notepad.exe , ketikkan baris berikut, dan simpan sebagai C:\ret.scr(jangan lupa baris kosong):

a
ret

rcx
1
n ret.com
w
q

Kompilasi dengan debug.exe di command-prompt ( cmd.exe ) dengan perintah berikut:

C:\> debug < ret.scr

Anda sekarang memiliki program, ret.com(dalam C: \) yang dapat digunakan dalam file batch yang sama sekali tidak melakukan apa-apa (baik, selain berhenti, jika itu diperhitungkan).

Catatan : debugtidak termasuk dalam sistem 64-bit.


pilihan 2

Di Vista dan yang lebih tinggi, .NET framework disertakan secara default, jadi Anda juga bisa membuat Windows asli, yang tidak melakukan apa pun .exedengan C # ( kompatibel 64-bit ):

Jalankan notepad.exe dan ketik baris berikut, simpan sebagai C:\ret.cs:

class rte
{
   static void Main() {
   }
}

Kompilasi dengan csc.exe di command-prompt ( cmd.exe ) dengan perintah berikut:

C:\> csc ret.cs

Anda sekarang memiliki program lain, ret.exe(dalam C: \) yang dapat digunakan dalam file batch yang tidak lain mengembalikan.

Synetech
sumber
2
Brilliant sialan .. semua orang harus mendukung Anda untuk itu .. Saya selalu ingin belajar bahasa assembly .. Saya tidak pernah menggunakan debug dan berpikir itu mati dengan DOS. Senang saya menemukan jawaban Anda di sini. mungkin makanan untuk hobi masa depan!
barlop
12
Bagi saya, csc.exeitu tidak di jalan saya, tetapi itu terletak diC:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
AlcubierreDrive
bagaimana dengan EXE yang dikompilasi dari program C yang hanya memiliki metode utama, seperti csc.exe Anda. Apakah itu jauh lebih banyak daripada program yang Anda tulis dalam debug? misalnya, apakah ada lebih banyak bahasa assembly di sana dengan program itu?
barlop
1
@barlop, umumnya ya. Sementara mainfungsi kosong sepertinya akan, atau setidaknya seharusnya tidak lebih dari sebuah ret, jika Anda membuka program seperti itu di disassembler (atau bahkan hex editor), Anda akan melihat bahwa itu jauh, lebih dari itu. Biasanya akan mengatur semua jenis segmen (kode, data, dll.), Menyiapkan tumpukan dan tumpukan, belum lagi mengimpor semua jenis fungsi dan string dan bahkan jika itu tidak pernah benar-benar menggunakannya.
Synetech
Saya memerlukan yang ini untuk menggantikan beberapa perangkat lunak pendukung eksternal lama untuk kit instalasi, mengurangi ukuran paket, di mana perangkat lunak itu tidak diperlukan lagi, seperti DirectX dan VCruntimes. Juga, jika Anda tidak memiliki atau ingin menginstal kompiler apa pun, gunakan kompiler online dari tutorialspoint.com/codingground.htm , setelah kompilasi, unduh proyek dan itu akan memiliki exe di dalam arsip.
JasonXA
10

Tidak ada program yang disertakan dengan Windows (yang saya tahu) yang segera keluar saat dijalankan (setidaknya dengan sengaja.)

Di Windows Vista dan yang lebih baru, ada utilitas timeout.exe . Timeout.exeakan menunggu beberapa detik kemudian keluar. Sebagai contoh:

C:\>timeout /t 0 > nul:

Pengaturan timeout.exeuntuk menunggu 0 detik adalah sedekat Anda akan mendapatkan EXE yang segera keluar.

Andrew Lambert
sumber
3
Untuk melakukan apa yang diinginkan oleh Op, gunakan batas waktu seperti ini "batas waktu / t 0> nul:" - yang akan menjalankan perintah batas waktu tanpa output apa pun dan akan segera keluar.
misterjaytee
@ tuanjaytee ide bagus.
Andrew Lambert
@ Tom: Jendela konsol . Itu tidak akan membuka prompt perintah kecuali Anda menjalankan cmd.exesecara khusus.
grawity
@grawity: Penjadwal Tugas membutuhkan pemroses perintah untuk menjalankan perintah, maka jendela konsol akan ditampilkan sebentar.
Tamara Wijsman
@ TomWijsman Cobalah sekuat tenaga, saya tidak bisa membuka jendela baru.
Andrew Lambert
4

Tanpa parameter "C: \ Windows \ hh.exe" (Microsoft® HTML Help Executable) tidak melakukan apa-apa dan itu termasuk dalam Versi Windows apa pun yang saya kira.

ProCompSys
sumber
2

wscript tanpa argumen tidak menjalankan skrip sama sekali, dan dapat dieksekusi "GUI" (tidak membuka konsol).

grawity
sumber
2
Ketika saya menjalankan wscript tanpa argumen saya mendapatkan "Pengaturan Host Script Windows" yang muncul. Windows 7 64-bit. Lari wscript /bsepertinya berhasil.
DuckMaestro
2

Saya sudah mencoba rndll32.exedan hh.exetetapi keduanya tidak mengubah% ERRORLEVEL%. Ini adalah variabel lingkungan yang mengatakan jika executable terakhir berhasil. Bekerja seperti kode pengembalian unix.

Perintah noop saya di bawah ini akan menetapkan% ERRORLEVEL% menjadi nol adalah:

cd %CD%

Hanya mengubah direktori kerja ke yang sekarang.

neves
sumber
0

perintah echo offtidak melakukan apa pun dalam file batch (.BAT). Meskipun ini bukan executable, ini adalah perintah internal windows.

obaqueiro
sumber
7
Sebenarnya itu tidak melakukan sesuatu, itu ternyata bergema off. Itu mungkin tampak seperti tidak ada artinya jika Anda mematikannya, tetapi jika Anda ingin menggema, maka itu tentu saja melakukan sesuatu.
Synetech
6
dan seperti rem, ini bukan windows exe
barlop
0

Kompilasi program C ++ "Hello World" sederhana untuk membuat exe sederhana yang akan segera keluar.
Simpan kode berikut dalam file teks dengan beberapa nama seperti a.cpp:

#include<iostream>
int main()
{ std::cout<<"Hello World";
return 0;
}

Kemudian, kompilasi dengan kompiler TERBARU C ++ seperti MinGW untuk Windows 7.
Dalam kasus MinGW, jalankan perintah berikut di PowerShell atau Command Prompt: g++ path\a.cpp(Dengan anggapan bahwa Anda telah menetapkan variabel PATH lingkungan dari g ++ lokasi biner atau Anda berada di g ++ direktori biner yaitu c : \ mingw \ bin secara default). Setelah eksekusi perintah, Anda akan mendapatkan a.exe yang akan menampilkan Hello World dan keluar. Verifikasi dengan klik dua kali ... jendela cmd akan segera muncul dan menghilang. Akses baris perintah akan menampilkan Hello World dan mengembalikan Anda ke CLI prompt.
Kemudian, Anda dapat memindahkan a.exe ini di system32 atau di mana saja di dalam Windows. Anda bahkan dapat menjalankannya di disk instalasi Windows.

Apple II
sumber
2
Saya cukup yakin bahwa kompiler C ++ tidak disertakan dengan Windows.
Synetech
6
Mencetak "Hello World" tidak melakukan apa-apa.
Keith Thompson
@Synetech Compilation hanya diperlukan satu kali selama arsitektur CPU sama ..
Apple II
1
@KeithThompson Saya tidak berpikir itu akan mengganggu algoritma BAT, tetapi jika itu benar-benar penting, ganti Hello World dengan karakter nol ASCII ..
Apple II
5
> Saya tidak berpikir itu akan mengganggu algoritma BAT, tetapi jika itu benar-benar penting, ganti Hello World dengan karakter nol ASCII Atau cukup hapus perintah cetak sama sekali.
Synetech
0

Anda dapat menulis no-op dalam C seperti itu

void main() {

}

dan kompilasi menjadi file .exe. Misalnya, jika Anda telah menginstal Visual Studio, Anda dapat membuka notepad, menempelkan potongan itu, menyimpannya sebagai noop.c dan dalam command prompt gunakan cl noop.cdan itu akan menghasilkan noop.exefile di folder yang sama.

Anda mungkin atau mungkin tidak perlu mencari Microsoft Visual Studio X.0folder Program Filesterlebih dahulu dan menjalankannya vcvarsall.batdari command prompt.

Andy Terra
sumber
Anda melewatkan bagian dari pertanyaan yang mengatakan "bagian dari instalasi Windows". Juga, titik koma itu mubazir.
Synetech
-1

Meskipun itu bukan tujuan utama alat ini, Anda dapat menggunakan opsi / donothing dari WuInstall - Anda juga dapat menentukan kode pengembalian yang harus dikembalikan - lihat http://help.wuinstall.com

hsn
sumber
Tampaknya tidak disertakan dengan XP atau 7. Apakah disertakan dengan versi Server?
Synetech