2008-11-07 42 views
7

我想要一個小的(< 30MB)獨立Windows可執行文件(單個文件),它創建一個窗口,詢問用戶目錄的位置,然後在該目錄中啓動一個不同的程序。在Windows上編寫輕量級GUI程序的最快途徑是什麼?

此可執行文件必須在x86-64體系結構以及Itanium芯片上的32位和64位Windows XP,Vista,Server 2003和Server 2008版本上運行。

如果我們只爲了在所有這些平臺上運行它而構建一次,那將會非常壯觀,但這不是必需的。這是專有系統,所以GPL代碼是禁止的。

把它們放在一起的最快方法是什麼?

這些都是一些事情,我尋找到,因此,如果您對自己的生存能力的信息,我所有關於它:

  • 的Perl/Tk的使用perl2exe得到二進制文件。
  • Ruby with wxruby
  • 學習MFC編程並像其他人一樣以正確的方式進行。
+3

哇,我仍然會考慮30MB的該死的大;) – mmcdole 2008-11-07 17:10:29

回答

15

WSH腳本怎麼樣?它不會是一個EXE,對,但要求一個文件夾,我不認爲需要一個exe文件,更不用說一個30Mb的一個...

1Kb腳本,保存爲任何名稱你像使用vbs擴展並運行它。這在不明確的情況下會要求您輸入文件夾名稱,然後從system32子目錄運行calc.exe。當然,你可以在2或4 Kb中做得比這更好。

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" 

要添加文件夾瀏覽器對話框而不是InputBox,請選中this

明顯的好處是:

  • 簡單(當然,VB是醜陋的,但你可以使用JScript的,如果你喜歡),無需編譯它!
  • Compatibility,每天都要工作在Windows機器上我可以(從98年開始)
2

你可以在MFC中做到這一點,並有一個在100k以下的可執行文件。一般來說,如果要保持可執行文件的大小,可以使用UPX執行exe壓縮。如果你想要一個例子,看看uTorrent。這是一個全功能的BitTorrent應用程序在不到300k的可執行文件。

+0

你的意思是一個全功能的BitTorrent應用程序,不是? – 2008-11-07 17:15:00

9

最快的方法在Windows上一個輕量級的和快速的GUI?一個字.. Delphi!它現在缺少64位支持,但FreePascal會幫助解決。

+0

儘管我從來沒有用過Delphi,但我一直在用Delphi回答這些問題。 – MusiGenesis 2008-11-07 18:06:05

+0

Codegear在路線圖上有一個64位編譯器... – Roddy 2008-11-07 18:24:52

+0

免費Pascal也有一個類似RAD的Delphi,Lazarus。見http://lazarus.freepascal.org – 2009-05-04 13:09:19

3

對於所有的缺陷,Visual Basic歷來非常適合這樣的超級簡單應用程序。

+0

如果你有一個visual studio的副本,很難擊敗VB這種GUI編程。 – 2008-11-07 17:30:10

+0

但是這些應用程序都依賴於VB運行時或.NET。 – MusiGenesis 2008-11-07 18:05:16

+0

@MusiGenesis:非常真實。而且 - 在那些重要的情況下花費金錢。 – 2008-11-07 18:20:22

5

Python與wxWidgetsTkinter應該能夠完成此操作幾乎沒有任何努力。運行於一切,py2exe將爲您提供獨立的可執行文件。

9

我會使用.NET和WinForms。腳本解決方案的想法很有吸引力,但實際上我經常發現你最終會跳過箍環去做超出基本情況的任何事情,但仍然沒有靈活性去做你想做的一切。

5

有一個小型的獨立應用程序並快速開發它,我很抱歉地說,通常是相互衝突的需求。老實說,應用程序有多麼簡單,我會直接用Win32調用C編寫它:一個調用SHBrowseForFolder()來獲取目錄,一個調用ShellExecuteEx()來運行程序。即使MFC對於這樣一個適度的應用來說也太重了。將C運行時設置爲靜態鏈接,並且應該可以將獨立可執行文件的大小保持在小於100k。一個體面的Windows C編碼器應該能夠在不到一個小時的時間內完成,假設你有一個人。

0

這些響應令人難以置信。

Visual Studio Forms編輯器允許您繪製WinForms並自動生成樣板GUI代碼(這對於大多數其他語言和工具包來說是最大的麻煩)。然後你可以使用C#或任何其他的.NET語言。 .NET有文件選擇器的庫存部件。我可以在20分鐘內編寫該腳本,並且可以免費在每個目標平臺上運行。繪製GUI,拖放一個文件選擇器,填寫兩個鉤子來完成「啓動一個不同於他們想要的文件」的事情。

4

Tcl/tk是一個解決方案。您可以使用稱爲「starpack」的東西(包括自定義圖像,dll等)來創建單個文件可執行文件 - 這是一個既是tcl解釋器又是應用程序代碼的虛擬文件系統。我認爲它可能會在幾兆字節。

根據您的規格,我個人可能需要15分鐘才能獲得第一個工作版本。

Tcl/Tk擁有BSD許可證。

3

我同意上面的Tcl/Tk答案。有關他提到的starpack的更多信息,請參閱:http://www.equi4.com/tclkit/這是一個適用於各種操作系統的Tcl/Tk解釋器,大小約爲1MB。在過去,顯然一直關注Tcl/Tk UI的外觀和感覺,但是這已經通過名爲「Tile」的新框架得到解決,該框架支持用戶操作系統的本地外觀和感覺。

1

我使用HTA(HTML應用程序)快速和骯髒的形式&腳本應用程序。有關詳細信息和示例,請參見Microsoft's HTA Developers Center。這基本上使用表單的HTML,以及腳本的任何HTML可訪問的腳本語言。正常的瀏覽器安全性被繞過,所以你可以在幾乎所有的操作系​​統內部。上述網站還包含幾個工具的鏈接,可以爲您自動執行腳本部分。

3

對於像你說的那樣快速而髒的GUI程序,可以使用AutoIt腳本。你甚至可以編譯成exe。

有關的AutoIt的GUI例如,你可以在前面的回答here

0

我建議Autohotkey (AHK)Autoit。兩者都支持win95 +(注意某些功能需要注意)。它們可以被編譯成小的.exe而不需要外部依賴(除了本地DLL之外)。

優點:

  • 小尺寸
  • 容易編寫代碼
  • 簡單實用 - 複雜的操作
  • 可以創建GUI容易

缺點:

  • 學習曲線(語法不尋常)
相關問題