2008-11-07 31 views
7

Tôi muốn một tệp thực thi Windows độc lập nhỏ (< 30MB) (một tệp) tạo cửa sổ yêu cầu người dùng định vị thư mục và sau đó khởi chạy chương trình khác trong thư mục đó.Đường dẫn nhanh nhất để viết chương trình GUI nhẹ trên Windows là gì?

Tệp thi hành này phải chạy trên các phiên bản Windows XP, Vista, Server 2003 và Server 2008 trong 32 bit và 64 bit trên kiến ​​trúc x86-64 cũng như chip Itanium.

Sẽ thật ngoạn mục nếu chúng tôi chỉ phải xây dựng nó một lần để chạy trên tất cả các nền tảng này, nhưng đó không phải là yêu cầu. Điều này là dành cho một hệ thống độc quyền, vì vậy mã GPL là không có giới hạn.

Cách nhanh nhất để kết hợp điều này với nhau là gì?

Đây là một số những điều tôi đang nhìn vào, vì vậy nếu bạn có thông tin về khả năng tồn tại của họ, tôi là tất cả về nó:

  • Perl/Tk sử dụng perl2exe để có được nhị phân.
  • Ruby với wxruby
  • Tìm hiểu lập trình MFC và thực hiện đúng cách như mọi người khác.
+3

Wow, tôi vẫn sẽ xem xét 30MB khá damn lớn;) – mmcdole

Trả lời

15

Điều gì về tập lệnh WSH? Nó sẽ không phải là một exe, phải, nhưng để yêu cầu một thư mục tôi không thấy sự cần thiết cho một tập tin exe, ít hơn một 30Mb một ...

Một kịch bản 1Kb, lưu nó như bất cứ tên nào bạn như với phần mở rộng vbs và chạy nó. Điều này, trong trường hợp nó không rõ ràng, yêu cầu bạn cho một tên thư mục và sau đó chạy calc.exe từ system32 thư mục con. Tất nhiên bạn có thể làm tốt hơn rất nhiều so với 2 hoặc 4 Kb này.

Set WshShell = WScript.CreateObject("WScript.Shell") 
win = InputBox("Please type your Windows folder location.") 
If Right(win,1) <> "\" Then 
    win = win & "\" 
End If 
WshShell.Run win & "system32\calc.exe" 

Để thêm hộp thoại Trình duyệt thư mục thay vì Hộp nhập liệu, hãy kiểm tra this.

lợi ích rõ ràng là:

  • đơn giản (tốt, VB là xấu xí, nhưng bạn có thể sử dụng JScript nếu bạn thích), không cần phải biên dịch nó!
  • Compatibility, hoạt động trên mọi máy cửa sổ tôi có sẵn (từ 98 trở đi)
2

Bạn có thể thực hiện việc này trong MFC và có thể thực thi dưới 100k. Nói chung, nếu bạn muốn giữ kích thước của các tập tin thực thi của bạn xuống, bạn có thể sử dụng UPX để thực hiện nén exe. Nếu bạn muốn có một ví dụ, hãy xem uTorrent. Đó là một ứng dụng BitTorrent đầy đủ tính năng trong ít hơn 300k thực thi.

+0

Bạn có nghĩa là một ứng dụng BitTorrent đầy đủ tính năng, phải không? –

9

cách nhanh nhất trên Windows cho một giao diện gọn nhẹ và nhanh chóng? Một từ .. Delphi! Nó thiếu sự hỗ trợ 64 bit cho bây giờ nhưng sau đó FreePascal sẽ đến để giải cứu.

+0

Tôi tiếp tục tìm kiếm bản thân mình trả lời các loại câu hỏi này với Delphi, mặc dù tôi chưa bao giờ sử dụng nó. – MusiGenesis

+0

Codegear có trình biên dịch 64 bit trên lộ trình ... – Roddy

+0

Pascal miễn phí có một Delphi giống như RAD, Lazarus. Xem http://lazarus.freepascal.org –

2

wxWidgets; đó là nền tảng chéo, miễn phí, mã nguồn mở và dễ dàng để tìm hiểu

3

Đối với tất cả các lỗi của nó, Visual Basic trước đây rất tuyệt vời cho các ứng dụng siêu đơn giản như thế này.

+0

Nếu bạn có một bản sao của studio trực quan, thật khó để đánh bại VB cho loại lập trình GUI này. –

+0

Nhưng các ứng dụng đều phụ thuộc vào thời gian chạy VB hoặc .NET. – MusiGenesis

+0

@MusiGenesis: rất đúng. Ngoài ra - chi phí tiền bạc cho những trường hợp có vấn đề. –

5

Python có hoặc là wxWidgets hoặc Tkinter sẽ có thể thực hiện điều này mà không tốn chút công sức nào.Chạy trên tất cả mọi thứ, và py2exe sẽ giúp bạn thực thi độc lập.

+0

Visual Studio Forms Editor là thứ tự viết nhanh hơn và cho bạn kết quả tốt hơn, trừ khi tôi xem xét một số trình soạn thảo biểu mẫu python sát thủ ứng dụng. –

+0

Tôi không chắc chắn về wxWidgets - Tôi là một anh chàng tk, nhưng đối với những người có kinh nghiệm viết GUI bằng ngôn ngữ động như python hoặc tcl, các ứng dụng đơn giản như thế này chỉ mất vài phút để tạo. Tôi nghĩ bạn sẽ khó có thể nhanh chóng trở thành một cường độ. –

+0

Có một số trình soạn thảo dạng python khá sát thủ ở ngoài, nhưng một biểu mẫu "cơ bản với một vài nút" chỉ mất 10 phút để loại bỏ bằng tkinter hoặc tk, và đó là phần lớn dán trong mã demo tkinter . :) –

9

Tôi muốn sử dụng .NET và WinForms. Ý tưởng về giải pháp kịch bản là hấp dẫn, nhưng trong thực tế tôi thường thấy bạn sẽ nhảy qua các vòng để làm bất cứ điều gì ngoài trường hợp cơ bản và vẫn không có sự linh hoạt để làm mọi thứ bạn muốn.

+0

Các giải pháp kịch bản mất rất ít để phát triển và duy trì rằng nó gần như bằng không thiệt hại để ném nó đi và viết lại nó trong một nền tảng 'thực', _if_ sự cần thiết phát sinh; đặc biệt là khi 'làm đúng' sẽ liên quan đến các bản dựng cho nhiều kiến ​​trúc và vân vân. –

+0

tôi không nghĩ .NET hoạt động trong XP ra khỏi hộp – Javier

+0

i dunno về XP0, nhưng XPsp2 chắc chắn có nó –

5

Có một ứng dụng độc lập nhỏ và phát triển nhanh chóng, tôi rất tiếc phải nói, thường là các yêu cầu xung đột.

Thành thật mà nói, với ứng dụng cực kỳ đơn giản, tôi sẽ viết nó bằng C với các cuộc gọi Win32 trực tiếp: một cuộc gọi đến SHBrowseForFolder() để nhận thư mục và một đến ShellExecuteEx() để chạy chương trình. Ngay cả MFC là quá nặng trọng lượng cho một ứng dụng khiêm tốn như vậy. Đặt thời gian chạy C được liên kết tĩnh và bạn sẽ có thể giữ kích thước của thực thi độc lập xuống dưới 100k. Một lập trình viên Windows C phong nha sẽ có thể gõ lên đó trong vòng chưa đầy một giờ, giả sử bạn có một tay.

+0

bạn dường như chưa bao giờ sử dụng ngôn ngữ kịch bản với bộ công cụ phong nha. –

+0

Không bao giờ có sử dụng một ngôn ngữ kịch bản bằng cách nào đó phủ nhận có thể viết chương trình trong Win32? Những lợi ích của việc có nó là một ứng dụng Win32 thuần túy có nghĩa là nó chạy bất cứ nơi nào mà không cần phải cài đặt công cụ kịch bản. –

+1

Không, nhưng tôi nghĩ rằng vấn đề là, "dưới một giờ" là dài hơn nhiều so với nó sẽ có trong một env kịch bản như Powershell.Nó sẽ mất khoảng 7 phút trong VB.NET, và bao gồm thời gian khởi động Visual Studio. – Cheeso

0

Tương tự như những gì Vinko Vrsalovic đã nói, bạn có thể sử dụng ứng dụng HTA. Nó là dễ dàng như xây dựng một trang web với các chức năng máy chủ kịch bản windows. Tôi đã xây dựng một vài tiện ích với jscript và nó thực sự dễ dàng và nhanh chóng http://msdn.microsoft.com/en-us/library/ms536496(VS.85).aspx

0

Những phản hồi này là không thể tin được.

Trình chỉnh sửa Biểu mẫu Visual Studio cho phép bạn vẽ ra WinForms và tự động tạo mã GUI soạn sẵn (đây là một dấu hiệu tốt nhất cho hầu hết các ngôn ngữ và bộ công cụ khác). Sau đó, bạn có thể sử dụng C# hoặc bất kỳ ngôn ngữ .NET nào khác. .NET có các tiện ích con cho các bộ chọn tệp. Tôi có thể viết kịch bản đó trong 20 phút và nó sẽ chạy trên mọi nền tảng đích của bạn miễn phí. Vẽ ra GUI, kéo-n-thả một bộ chọn tập tin, điền vào có thể hai móc để làm việc "khởi động một tập tin khác hơn là họ muốn" điều, thực hiện.

+0

Windows Vista đi kèm với một phiên bản của Khuôn khổ .NET được cài đặt sẵn. Trong các phiên bản trước của Windows, .NET Framework phải được cài đặt riêng biệt, thông qua Windows Update hoặc như một phần của quá trình cài đặt của chương trình khác. –

+0

Câu hỏi có nghĩa là "độc lập", là loại mơ hồ nhưng thường có nghĩa là một EXE bản địa. – MusiGenesis

+0

XP sp2 có tàu .net –

4

Tcl/tk là một giải pháp. Bạn có thể có một tập tin thực thi (bao gồm cả hình ảnh tùy chỉnh, dll, vv) bằng cách sử dụng một cái gì đó gọi là "starpack" - một hệ thống tập tin ảo có cả thông dịch viên và mã ứng dụng. Tôi nghĩ nó có thể nặng tới vài megabyte.

Từ thông số kỹ thuật của bạn, tôi có thể mất 15 phút để có được phiên bản làm việc đầu tiên.

Tcl/Tk có giấy phép BSD.

3

Tôi đồng ý với câu trả lời Tcl/Tk ở trên. Để biết thêm thông tin về starpack mà ông đề cập đến, xem: http://www.equi4.com/tclkit/ nó là một thông dịch viên Tcl/Tk có sẵn cho tất cả các hệ điều hành của tất cả trong khoảng 1MB. Trong quá khứ, dường như đã được quan tâm về giao diện của giao diện người dùng Tcl/Tk, nhưng điều này đã được giải quyết bằng một khung công tác mới có tên "Ngói" hỗ trợ giao diện bản địa của hệ điều hành của người dùng.

1

Tôi sử dụng HTA (HTML Application) cho biểu mẫu nhanh và bẩn & ứng dụng tập lệnh. Xem Microsoft's HTA Developers Center để biết chi tiết và ví dụ. Về cơ bản, điều này sử dụng HTML cho biểu mẫu và bất kỳ ngôn ngữ kịch bản có thể truy cập HTML nào cho tập lệnh. Bảo mật trình duyệt bình thường được bỏ qua để bạn có thể nhận được ở hầu hết các hệ điều hành nội bộ. Trang web trên cũng chứa các liên kết đến một số công cụ gần như tự động hóa phần kịch bản cho bạn.

3

Đối với chương trình GUI nhanh và dơ bẩn như bạn đã nói, bạn có thể sử dụng tập lệnh AutoIt. Bạn thậm chí có thể biên dịch thành một exe.

Đối với một ví dụ GUI của AutoIt, bạn có thể kiểm tra chuyển hướng kịch bản stdout của tôi trong một câu trả lời trước here

0

Tôi đề xuất Autohotkey (AHK) hoặc Autoit. Cả hai hỗ trợ win95 + (với sự cẩn thận cho một số chức năng). Chúng có thể được biên dịch thành nhỏ .exe mà không có sự phụ thuộc bên ngoài (ngoài DLL gốc).

Ưu điểm:

  • nhỏ kích thước
  • dễ dàng để viết mã
  • hữu ích cho đơn giản - các hoạt động phức tạp
  • có thể tạo giao diện đồ họa dễ dàng

Nhược điểm:

  • đường cong học tập (như cú pháp là không bình thường)
Các vấn đề liên quan