2009-02-26 13 views
20

Có ai biết các công cụ miễn phí (ngôn ngữ, môi trường) có hỗ trợ phát triển các ứng dụng GUI trên nền tảng Windows không?Phát triển các ứng dụng GUI dựa trên nền tảng nhẹ (không có thời gian chạy) sử dụng các công cụ miễn phí

Tôi đang tìm cách có thể tạo một tệp thực thi duy nhất không có phụ thuộc vào bất kỳ thời gian chạy hoặc thư viện bên ngoài nào.

Tôi muốn có thể chạy EXE này theo cách rất giống với Process Explorer hoặc Autoruns từ SysInternals. Nói cách khác; không có trình cài đặt, ứng dụng di động.

Ứng dụng này cũng phải cung cấp giao diện người dùng cửa sổ (điều khiển, tiện ích, vv) phong phú hợp lý và sẽ chạy trên Windows 2000, XP, Vista và phiên bản mới hơn.

Tôi biết C/C++ nhưng tôi đang tìm môi trường/ngôn ngữ cung cấp hỗ trợ cụ thể và nhanh hơn để phát triển GUI. Ngoài ra, Delphi tốn tiền.

+0

Chỉ cần thêm AutoIt3.exe làm phản hồi cho nhận xét của bạn – VonC

+0

Chỉ cần thêm nhận xét AutohotKey làm bổ sung cho câu trả lời của tôi – VonC

+2

Hầu hết các máy tính Windows ngày nay có ít nhất .Net 2.0 runtime, vì vậy tôi sẽ không thực sự quan tâm đến điều này một rào cản hoặc phụ thuộc bên ngoài. Nó phụ thuộc nhiều vào việc dựa vào Windows. Máy Win2000 chắc chắn có thể không có, nhưng đó là một hệ điều hành 10 năm tuổi – csjohnst

Trả lời

9

Để tạo mẫu nhanh, Autoit là một tùy chọn khả thi (nhưng đó là ngôn ngữ kịch bản).

http://www.autoitscript.com/images/gui_eg1.png

Kết hợp với Scite như một Editor, và autoit to exe capability (AutoIt3.exe trong SciTE và Autoit3Wrapper.exe để thực sự tạo ra exe), bạn có một môi trường phát triển giao diện đầy đủ.


AutohotKey là phương án thay thế, nhưng dựa trên AutoitV2 cũ.

Tuy nhiên, bạn có thể thực hiện các kịch bản AutoHotkey từ AutoIt;)

Run("c:\Program Files\Autohotkey\Autohotkey.exe c:\scripts\devicesset.ahk") 

Trong khi gỡ lỗi tương tác không phải là natively hỗ trợ, họ (2008, nhưng trong năm 2014: là) several debugging tools? để tạo thuận lợi cho quá trình gỡ lỗi. (Từ ticket này)

http://www.autoitscript.com/forum/uploads/monthly_01_2008/post-3602-1199735240.png

Cập nhật năm 2014: các "AutoEditDebugger" có thể không được hỗ trợ:

EDIT tháng 10 năm 2009: NB Kịch bản này đã không được duy trì kể từ khi một số thời gian trong năm 2008. Do đối với một số vấn đề với trình soạn thảo, nó bị treo trong Vista.

+0

Nó có biên dịch thời gian chạy vào đầu ra .exe? –

+0

@VonC, tôi đã thực sự sử dụng Autohotkey cho các macro chính, phím tắt, v.v. và biết nó có thể làm GUI cơ bản. Nó chỉ là ngôn ngữ thực tế là khá "khó sử dụng" và tôi thấy nó hơi khó để gỡ lỗi. Tôi sẽ kiểm tra Scite để xem nó có hỗ trợ Autohotkey không, cảm ơn. – Ash

+0

Cảm ơn bạn đã thêm thông tin. Tôi sẽ so sánh AutoIt và AutoHotkey. Nếu tôi có thể tương tác gỡ lỗi kịch bản AutoIt, đó có thể là chính xác những gì tôi đang tìm kiếm. – Ash

1

Kiểm tra công cụ dành cho nhà phát triển của chúng tôi Express editions của Microsoft.

+0

VC++ Express nói riêng, vì sau cùng, C# et al yêu cầu thời gian chạy .NET. Đó là một cái gì đó ông đã giảm giá. Câu trả lời này không cung cấp bất cứ điều gì mới như xa như tôi có thể nói. –

+1

Có, .NET không phải là một lựa chọn và tôi giải thích lý do tại sao C++ không lý tưởng. – Ash

+0

Lỗi của tôi, bỏ qua tham chiếu đến thời gian chạy hoặc lib bên ngoài. Devin, cảm ơn vì sự đánh giá chủ quan tuyệt vời. ;-) – jro

0

Nếu bạn đang làm các ứng dụng rất đơn giản, AutoIt có thể là một tùy chọn vì nó không yêu cầu tệp thời gian chạy và tệp thi hành của nó thậm chí sẽ chạy trên WinPE. Đó là một chút nguyên thủy mặc dù và không chính xác hướng đối tượng. Nó hoạt động giống như VB cũ. Tuy nhiên, miễn phí và dễ dàng để tìm hiểu và tách biệt với một thứ gì đó như NSIS (NullSoft Install System) không có nhiều người sáng tạo GUI độc lập, miễn phí.

+0

@VonC đánh bại bạn với nó, cảm ơn anyway. Tôi đã bỏ phiếu cho VonC, anh ấy xứng đáng nhận được ít nhất một phiếu bầu khác. – Ash

5

Delphi chắc chắn là một cách tốt để đi. Có là phiên bản miễn phí được gọi là Turbo Delphi. Các phiên bản có sẵn là một vài năm tuổi, do đó, nó là một sự xấu hổ họ đã không phát hành phiên bản Turbo của các công cụ mới.

Ngoài ra còn có trials available của RAD Studio chính thức, nhưng tôi không nghĩ đó là những gì bạn đang tìm kiếm.

+0

Có vẻ đầy hứa hẹn, cảm ơn. Bạn đã tự mình sử dụng nó chưa? Ngoài ra, nó so sánh với Turbo C++ và Turbo Ruby, cách nào tốt nhất để phát triển GUI nhanh? – Ash

+0

Tôi chưa sử dụng phiên bản Turbo nên không thể nhận xét về nó. Delphi chính nó là một cách nhanh chóng và dễ dàng để phát triển mặc dù nó có một số quirks. Tôi thích C# cá nhân hơn. Chưa thử Turbo C++ hoặc Ruby. – Ray

+0

@Ash, Delphi là tốt nhất trong phát triển GUI cũng là mã dễ đọc nhất mà bạn có thể viết bằng bất kỳ ngôn ngữ nào, điều này dễ dàng hơn so với việc bảo trì khác nếu bạn để nó trong thời gian dài. aslo Turbo C++ có cùng cách Rad như Delphi, bởi vì nó sử dụng cùng một khung công tác VCL. nhưng tôi thích viết mã trong Delphi. –

1

Có thể D là một tùy chọn? Một người bạn của tôi viết blog về một nhà thiết kế GUI cho D here và tôi tin rằng kết quả thực thi không có phụ thuộc.

+0

Cảm ơn, tôi sẽ xem xét. – Ash

4

Bạn có thể nhận Turbo Delphi and Turbo C++ Builder explorer ấn bản miễn phí và bạn có thể phát triển bằng ứng dụng gốc mà bạn chỉ có thể có tệp .exe mà không phụ thuộc vào bất kỳ phiên bản windows nào (win98 to win7), cả hai thành phần này bao gồm hơn 200 thành phần và bạn có thể sử dụng nhiều hơn (mà không cần cài đặt để IDE là hạn chế duy nhất), và bạn phát triển với chúng phần mềm miễn phí và thương mại. Delphi là IDE RAD (Rapid Application Development) nhất mà bạn có thể sử dụng để tạo ra các ứng dụng Windows một cách dễ dàng và hiệu quả, bạn sẽ nhanh chóng phát triển ứng dụng với thời gian thực thi nhanh hơn so với tốc độ của C++.

Một tùy chọn khác để sử dụng Lazarus IDE, dựa trên trình biên dịch FreePascal, vì vậy bạn có thể chạy ứng dụng trên windows/linux/MacOS/Unix và hơn thế nữa.

+0

Cảm ơn, Ray cũng đề cập đến điều này. Tôi là một nhà phát triển .NET chủ yếu nhưng tôi đã làm việc một thời gian để di chuyển tại một công ty Delphi. Tôi đồng ý rằng các công cụ Dektop RAD Delphi cung cấp rất mạnh mẽ và có lẽ nhanh hơn sau đó WindowsForms vv – Ash

4

Visual C++ Express + WTL. Cả hai đều miễn phí. WTL là một thư viện cửa sổ tương đối tốt (1). Mặc dù vậy, không có trình thuật sĩ nào và bạn phải hiểu rõ về hệ thống cửa sổ Win32.

Bạn cũng có thể sử dụng Visual C# Express cùng với Mono để tạo ứng dụng WinForms. Mặc dù kết quả cuối cùng về mặt kỹ thuật không phải là thực thi độc lập và yêu cầu một khung công tác, các tệp Mono có thể được phân phối dọc theo exe của bạn (2), vì vậy bạn chỉ có thể có một thư mục duy nhất để triển khai xcopy. (Và tôi nghĩ rằng trên Windows có .Net được cài đặt, exe của bạn sẽ được chạy tự động .Net)

  • (1) Tôi bị hư hỏng bởi WPF. :-)
  • (2) Đọc trên intertubes. Mặc dù vậy, cá nhân tôi đã không thử nó.
+0

Tôi đánh giá cao các liên kết WTL, tôi đã không nghe nói về nó. Tôi đã có đầy đủ VS2008 vì vậy tôi sẽ sử dụng thay vì phiên bản Express. Đề nghị đơn sắc là thú vị, tôi tự hỏi nếu nó sẽ làm việc trên một máy Windows mà không có bất kỳ NET Framework. (Tức là chỉ cần sử dụng các dlls XCopied mono). – Ash

+0

Đó là những gì mọi người tuyên bố trên internet - rằng bạn có thể chỉ cần sao chép các bài tập Mon song song với ứng dụng của bạn và nó sẽ chạy tốt trên các máy không có .Net. Tôi không có máy như vậy :-), và tôi đã không thử kịch bản này, mặc dù. –

4

Có lẽ không phải là tùy chọn đưa ra tuyên bố của bạn về C++, nhưng nếu bạn đang phát triển ứng dụng nguồn mở/miễn phí thì Qt là bộ công cụ GUI rất đẹp với nhà thiết kế.

Ngoài ra, wxWidgets là bộ công cụ rất chức năng cho phép bạn triển khai một exe đơn, mặc dù các nhà thiết kế GUI tốt nhất không miễn phí.

+0

Qt 4.5 sẽ là LGPL, vì vậy nó sẽ có thể được sử dụng để phát triển nguồn đóng miễn phí. –

+0

Bạn cũng có thể sử dụng Qt và wx từ một loạt các ngôn ngữ khác –

+0

yêu cầu QT phải được cài đặt trong máy khách không? – nawfal

1

Chỉ cần sử dụng VS.NET với C và Win32 api.

Không cần thời gian chạy nào, vì CRT có nguồn gốc.

1

Bạn nên sử dụng Digital Mars C/C++ trong C thuần túy và chương trình có chức năng GDI32 của WIN32 API (Chỉ cần #include). Đừng quên liên kết đối tượng nhị phân của bạn với gdi32.lib.