มี exe Windows ที่ไม่ทำอะไรเลย?


47

มี "noop" -esque exe ที่ไหนสักแห่งเป็นส่วนหนึ่งของการติดตั้ง Windows หรือไม่? ฉันกำลังเตรียมงานแบ็ตช์และงานที่กำหนดเวลาไว้และด้วยเหตุผลสองสามประการที่ฉันต้องการอ้างอิงไฟล์ที่ไม่ทำอะไรเลยนั่นคือเปิดตัวโดยไม่มีหน้าต่างที่มองเห็นได้และออกจากทันที

ไฟล์ปฏิบัติการดังกล่าวมีอยู่ในการติดตั้ง Windows ตามปกติหรือไม่? หรือฉันจะเข้าใกล้ได้อย่างไร? ฉันไม่ต้องการขึ้นอยู่กับอะไรที่ไม่รวมอยู่ใน Windows


2
จากการสังเกต: svchost.exeไม่เปิดอะไรเลย
ta.speot.is

@ todda.speot.is คุณควรระบุว่าเป็นคำตอบแบบเต็ม
DuckMaestro

2
จำเป็นต้องเป็นไฟล์ภายนอก (เรียกใช้งานได้) หรือไม่ หากไม่เป็นเช่นนั้นremคำสั่งอาจทำงานได้ (และขึ้นอยู่กับตำแหน่งที่อยู่ในไฟล์แบทช์ที่กำลังใช้งานอยู่อาจเป็น::ตัวแปร)
Synetech

คำตอบ:


51

คุณสามารถใช้rundll32:

  • ไม่มีหน้าต่างคอนโซล
  • ไม่มีผลข้างเคียง
  • เพียง 44 KB
  • ไม่จำเป็นต้องมีข้อโต้แย้ง
  • ทำงานได้กับ Windows ทุกรุ่นล่าสุด (XP, Vista, 7) และอาจใช้กับระบบที่ใช้ NT ทุกระบบ

2
เหตุใดจึงมี
นาธาน

6
@Nathan ด้วยอาร์กิวเมนต์ที่เหมาะสมสามารถเรียกใช้ฟังก์ชันภายใน DLL ได้
Andrea

ขวา. ตัวอย่างเช่นลองนึกถึงprint.exeโปรแกรมอย่างง่ายที่พิมพ์พารามิเตอร์ที่ส่งผ่าน โดยไม่ขัดแย้งใด ๆ มันจะทำอะไรแต่ให้มันมีปากเสียงอะไรบางอย่าง> print foobar :
Synetech

@ Andrea แล้วมันจะไม่ทำอะไรเลยเว้นแต่จะไม่มีการโต้แย้ง แม้ว่าจะไม่มีอะไรมากพอตามความต้องการของเขา
barlop

3
ยกเว้นมันอาจจะไม่ใช่โอเพ่นจริงๆ
Andy Terra

36

มี "noop" -esque exe ที่ไหนสักแห่งเป็นส่วนหนึ่งของการติดตั้ง Windows หรือไม่?

ความหมายเฉพาะโปรแกรมที่ตั้งใจจะทำอะไรและไม่มีอะไรอีกแล้ว? ใช่และไม่. ไม่ใช่ใน Windows นั้นไม่รวมค่าเริ่มต้น แต่รวมถึงความสามารถในการสร้างด้วยตัวเอง


ตัวเลือกที่ 1

เรียกใช้notepad.exeพิมพ์บรรทัดต่อไปนี้และบันทึกเป็นC:\ret.scr(อย่าลืมบรรทัดว่าง):

a
ret

rcx
1
n ret.com
w
q

คอมไพล์ด้วยdebug.exeที่ command-prompt ( cmd.exe ) ด้วยคำสั่งต่อไปนี้:

C:\> debug < ret.scr

ตอนนี้คุณมีโปรแกรมret.com(ใน C: \) ที่สามารถใช้ในไฟล์แบตช์ซึ่งไม่ทำอะไรเลยอย่างแน่นอน

หมายเหตุ : debugไม่รวมอยู่ในระบบ 64 บิต


ตัวเลือก 2

ใน Vista และใหม่กว่านั้น. NET Framework นั้นรวมอยู่ในค่าเริ่มต้นดังนั้นคุณสามารถสร้าง native, Windows โดยไม่ต้องทำอะไรเลย.exeด้วย C # ( รองรับ 64- บิต ):

เรียกใช้notepad.exeและพิมพ์บรรทัดต่อไปนี้บันทึกเป็นC:\ret.cs:

class rte
{
   static void Main() {
   }
}

คอมไพล์ด้วยcsc.exeที่ command-prompt ( cmd.exe ) ด้วยคำสั่งต่อไปนี้:

C:\> csc ret.cs

ตอนนี้คุณมีโปรแกรมอื่นret.exe(ใน C: \) ที่สามารถใช้ในไฟล์แบตช์ซึ่งไม่ทำอะไรเลยนอกจากส่งคืน


2
Damn Brilliant .. ทุกคนควรยกระดับคุณ .. ฉันต้องการเรียนรู้ภาษาแอสเซมบลีเสมอฉันไม่เคยใช้ debug และคิดว่ามันเสียชีวิตกับ DOS ดีใจที่ฉันพบคำตอบของคุณที่นี่ อาจเป็นอาหารสัตว์สำหรับงานอดิเรกในอนาคต!
barlop

12
สำหรับฉันcsc.exeไม่ได้อยู่ในเส้นทางของฉัน แต่ตั้งอยู่ที่C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
AlcubierreDrive

EXE ที่รวบรวมจากโปรแกรม C ซึ่งเพิ่งมีวิธีการหลักเช่น csc.exe ของคุณนั่นคือการทำมากกว่าโปรแกรมที่คุณเขียนในการดีบักหรือไม่? เช่นมีแอสเซมบลีภาษาอื่นอีกมากในโปรแกรมนั้นหรือไม่?
barlop

1
@barlop โดยทั่วไปใช่ ในขณะที่mainฟังก์ชั่นที่ว่างเปล่าดูเหมือนว่าจะเป็นอย่างน้อยหรืออย่างน้อยก็ควรจะไม่มีอะไรมากไปกว่าretหากคุณเปิดโปรแกรมดังกล่าวใน Disassembler (หรือแม้กระทั่งโปรแกรมแก้ไขฐานสิบหก) คุณจะเห็นว่ามันมีมากยิ่งกว่านั้น มันมักจะตั้งค่าทุกเซ็กเมนต์ (รหัสข้อมูล ฯลฯ ) เตรียมกองและกองไม่พูดถึงการนำเข้าทุกประเภทฟังก์ชั่นและสตริงและแม้ว่าจะไม่เคยใช้พวกเขาจริง ๆ
Synetech

ฉันต้องการซอฟต์แวร์ตัวนี้เพื่อแทนที่ซอฟต์แวร์สนับสนุนภายนอกเก่าบางตัวสำหรับชุดติดตั้งลดขนาดแพ็คเกจซึ่งไม่จำเป็นต้องใช้ซอฟต์แวร์นั้นอีกต่อไปเช่น DirectX และ VCruntimes นอกจากนี้หากคุณไม่มีหรือต้องการติดตั้งคอมไพเลอร์ใด ๆ ให้ใช้คอมไพเลอร์ออนไลน์จากtutorialspoint.com/codingground.htmหลังจากการคอมไพล์ดาวน์โหลดโปรเจ็กต์แล้วมันจะมี exe อยู่ในไฟล์เก็บถาวร
JasonXA

10

ไม่มีโปรแกรมใด ๆ ที่รวมอยู่ใน Windows (ที่ฉันรู้จัก) ซึ่งจะออกจากโปรแกรมทันทีเมื่อดำเนินการ (อย่างน้อยก็เพื่อวัตถุประสงค์)

อย่างไรก็ตามใน Windows Vista และใหม่กว่านั้นมียูทิลิตีtimeout.exe Timeout.exeจะรอจำนวนวินาทีที่ระบุจากนั้นออก ตัวอย่างเช่น:

C:\>timeout /t 0 > nul:

การตั้งค่าtimeout.exeให้รอเป็นเวลา 0 วินาทีใกล้เคียงกับที่คุณจะได้รับ EXE ที่ออกทันที


3
หากต้องการทำสิ่งที่ Op ต้องการให้ใช้การหมดเวลาเช่น "timeout / t 0> nul:" - ซึ่งจะรันคำสั่ง timeout โดยไม่มีเอาต์พุตใด ๆ และจะออกทันที
misterjaytee

@misterjaytee ความคิดที่ดี
Andrew Lambert

@ Tom: เป็นหน้าต่างคอนโซล มันจะไม่เปิดพรอมต์คำสั่งเว้นแต่ว่าคุณจะเรียกใช้cmd.exeโดยเฉพาะ
grawity

@grawity: Task Scheduler ต้องการตัวประมวลผลคำสั่งเพื่อให้คำสั่งทำงานดังนั้นหน้าต่างคอนโซลจะแสดงโดยย่อ
Tamara Wijsman

@TomWijsman ลองอย่างที่ฉันอาจจะไม่สามารถเปิดหน้าต่างใหม่ได้
แอนดรูแลมเบิร์ต

4

หากไม่มีพารามิเตอร์ "C: \ Windows \ hh.exe" (Microsoft® HTML Help ปฏิบัติการ) ไม่ทำอะไรเลยและรวมอยู่ใน Windows-Version ทุกรุ่นที่ฉันเดา


2

wscript โดยไม่มีข้อโต้แย้งใด ๆ ไม่มีสคริปต์และเป็น "GUI" ที่สามารถเรียกใช้งานได้ (ไม่เปิดคอนโซล)


2
เมื่อฉันเรียกใช้ wscript โดยไม่มีข้อโต้แย้งฉันได้รับ "การตั้งค่าโฮสต์สคริปต์ Windows" ที่ปรากฏขึ้น Windows 7 64-bit วิ่งwscript /bดูเหมือนว่าจะทำงานแม้ว่า
DuckMaestro

2

ฉันลองrndll32.exeแล้วhh.exeแต่ทั้งคู่ก็ไม่ได้เปลี่ยน% ERRORLEVEL% มันเป็นตัวแปรสภาพแวดล้อมที่ระบุว่าการปฏิบัติการครั้งสุดท้ายนั้นสำเร็จหรือไม่ ทำงานเหมือนรหัสส่งคืนยูนิกซ์

คำสั่ง noop ของฉันด้านล่างจะตั้งค่า% ERRORLEVEL% เป็นศูนย์คือ:

cd %CD%

เพียงแค่เปลี่ยนไดเรกทอรีทำงานเป็นไดเรกทอรีปัจจุบัน


0

คำสั่งecho offไม่ทำอะไรเลยภายในไฟล์แบทช์ (.BAT) แม้ว่ามันจะไม่สามารถเรียกใช้งานได้มันเป็นคำสั่งภายในของ windows


7
จริงๆแล้วมันไม่ทำอะไรสักอย่างก็จะเปิดสะท้อนออก นั่นอาจดูเหมือนไม่มีอะไรถ้าคุณได้ตั้งค่าปิด แต่ถ้าคุณต้องการเสียงก้องแล้วมันจะทำอะไรบางอย่างแน่นอน
Synetech

6
และเช่นเดียวกับ rem ไม่ใช่ windows exe
barlop

0

รวบรวมโปรแกรม "Hello World" C ++ แบบง่ายเพื่อสร้าง exe แบบง่ายซึ่งจะออกทันที
บันทึกรหัสต่อไปนี้ในไฟล์ข้อความที่มีชื่อเช่น a.cpp:

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

จากนั้นคอมไพล์ด้วยคอมไพเลอร์ L ++ ล่าสุดเช่น MinGW สำหรับ Windows 7
ในกรณีของ MinGW ดำเนินการคำสั่งต่อไปนี้ใน PowerShell หรือ Command Prompt: g++ path\a.cpp(สมมติว่าคุณได้ตั้งค่าตัวแปร PATH สิ่งแวดล้อมของตำแหน่งไบนารี g ++ หรือคุณอยู่ในไดเรกทอรีไบนารี g ++ เช่น c : \ mingw \ bin โดยค่าเริ่มต้น) หลังจากดำเนินการคำสั่งคุณจะได้รับ a.exe ซึ่งจะแสดง Hello World และออก ยืนยันโดยดับเบิลคลิกหน้าต่าง cmd จะปรากฏขึ้นและหายไปทันที การเข้าถึงบรรทัดคำสั่งจะแสดง Hello World และกลับสู่พรอมต์ CLI
จากนั้นคุณสามารถย้าย a.exe นี้ใน system32 หรือที่ใดก็ได้ใน Windows คุณสามารถเปิดใช้งานได้ในดิสก์การติดตั้งของ Windows


2
ฉันค่อนข้างมั่นใจว่าคอมไพเลอร์ C ++ ไม่ได้รวมอยู่ใน Windows
Synetech

6
การพิมพ์ "Hello World" แทบจะไม่ทำอะไรเลย
Keith Thompson

@Synetech Compilation จำเป็นเพียงครั้งเดียวตราบเท่าที่สถาปัตยกรรม CPU เหมือนกัน ..
Apple II

1
@ KeithThompson ฉันไม่คิดว่ามันจะรบกวนการทำงานของอัลกอริทึม BAT แต่ถ้ามันสำคัญจริงๆแทนที่ Hello World ด้วยอักขระ null ASCII ..
Apple II

5
> ฉันไม่คิดว่ามันจะรบกวนการทำงานของอัลกอริทึม BAT แต่ถ้ามันสำคัญจริงๆแทนที่ Hello World ด้วยอักขระ null ASCIIหรือเพียงแค่ลบคำสั่งพิมพ์ทั้งหมด
Synetech

0

คุณสามารถเขียน no-op ใน C ได้

void main() {

}

และรวบรวมเป็นไฟล์. exe ตัวอย่างเช่นถ้าคุณติดตั้ง Visual Studio คุณสามารถเปิดแผ่นจดบันทึกวางข้อมูลโค้ดนั้นบันทึกเป็น noop.c และในการใช้พรอมต์คำสั่งcl noop.cและมันจะส่งออกnoop.exeไฟล์ในโฟลเดอร์เดียวกัน

คุณอาจจะหรืออาจไม่จำเป็นต้องเรียกดูMicrosoft Visual Studio X.0โฟลเดอร์ในProgram Filesครั้งแรกและเรียกใช้vcvarsall.batจากพรอมต์คำสั่ง


คุณพลาดส่วนหนึ่งของคำถามที่กล่าวว่า "ส่วนหนึ่งของการติดตั้ง Windows" นอกจากนี้อัฒภาคยังซ้ำซ้อน
Synetech

-1

มันไม่ใช่จุดประสงค์หลักของเครื่องมือนี้คุณสามารถใช้ตัวเลือก / donothing ของWuInstall - คุณยังสามารถระบุรหัสส่งคืนที่ควรส่งคืน - ดูที่http://help.wuinstall.com


ดูเหมือนจะไม่รวมอยู่ใน XP หรือ 7 มันรวมอยู่ในเวอร์ชั่นเซิร์ฟเวอร์หรือไม่?
Synetech
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.