2008-11-07 18 views
7

Quiero un ejecutable autónomo de Windows pequeño (< 30MB) (un solo archivo) que crea una ventana que le pide al usuario la ubicación de un directorio y luego inicia un programa diferente en ese directorio.¿Cuál es la ruta más rápida para escribir un programa GUI liviano en Windows?

Este ejecutable debe ejecutarse en las versiones XP, Vista, Server 2003 y Server 2008 de Windows en 32 bits y 64 bits en la arquitectura x86-64, así como en los chips Itanium.

Sería espectacular si solo tuviéramos que construirlo una vez para poder ejecutarlo en todas estas plataformas, pero eso no es un requisito. Esto es para un sistema patentado, por lo que el código GPL está fuera de los límites.

¿Cuál es la manera más rápida de armar esto?

Estas son algunas cosas que estoy buscando en, por lo que si usted tiene información sobre su viabilidad, estoy todo sobre ella:

  • Perl/Tk usando perl2exe para obtener el binario.
  • Ruby con wxruby
  • Aprenda la programación de MFC y hágalo de la manera correcta como todos los demás.
+3

Wow, todavía consideraría 30MB muy muy grande;) – mmcdole

Respuesta

15

¿Qué tal un script WSH? No será un exe, correcto, pero para pedir una carpeta no veo la necesidad de un archivo exe, mucho menos uno de 30Mb ...

Un script de 1Kb, guárdelo como el nombre que como con la extensión vbs y ejecutarlo. Esto, en caso de que no esté claro, le pide un nombre de carpeta y luego ejecuta calc.exe desde el subdirectorio system32. Por supuesto, puede hacer mucho mejor que esto en 2 o 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" 

Para añadir un cuadro de diálogo Explorador de carpetas en lugar de un Cuadro de entrada, compruebe this a cabo.

beneficios claros son:

  • Simplicidad (bueno, VB es feo, pero se puede utilizar JScript si lo prefiere), no hay necesidad de compilar él!
  • Compatibility, funciona en todas las máquinas de las ventanas que tengo disponible (de 98 en adelante)
2

Puede hacer esto en MFC y tener un ejecutable en menos de 100k. En general, si desea mantener el tamaño de sus ejecutables bajo, puede usar UPX para realizar la compresión de exe. Si quiere un ejemplo, eche un vistazo a uTorrent. Es una aplicación BitTorrent con todas las funciones en menos de 300k de ejecutable.

+0

Usted entiende una aplicación BitTorrent con todas las funciones, no? –

9

Forma más rápida en Windows para una GUI ligero y rápido? Una palabra ... Delphi! Carece del soporte de 64 bits por ahora, pero luego FreePascal vendría al rescate.

+0

Sigo encontrándome respondiendo a este tipo de preguntas con Delphi, aunque nunca las haya usado. – MusiGenesis

+0

Codegear tiene un compilador de 64 bits en la hoja de ruta ... – Roddy

+0

Free Pascal tiene un Delphi como RAD también, Lazarus. Consulte http://lazarus.freepascal.org –

2

wxWidgets; es multiplataforma, gratuito, de código abierto y fácil de aprender

3

Por todos sus defectos, Visual Basic ha sido históricamente ideal para aplicaciones súper simples como esta.

+0

Si tiene una copia de Visual Studio, es difícil vencer a VB para este tipo de programación de GUI. –

+0

Pero todas las aplicaciones dependen de los tiempos de ejecución de VB o .NET. – MusiGenesis

+0

@MusiGenesis: muy cierto. Además, cuesta dinero para los casos en que eso importa. –

5

Python con wxWidgets o Tkinter debería ser capaz de hacer esto con casi ningún esfuerzo en absoluto.Funciona con todo, y py2exe te ofrecerá un ejecutable independiente.

+0

Visual Studio Forms Editor es un orden de magnitud más rápido de escribir, y le da un mejor resultado, a menos que esté pasando por alto algún editor de formas de pitón de la aplicación killer. –

+0

No estoy seguro acerca de wxWidgets - Soy un tipo tk, pero para aquellos con experiencia en escribir GUI en lenguajes dinámicos como python o tcl, aplicaciones simples como esta tardan solo unos minutos en crearse. Creo que sería difícil ser un orden de magnitud más rápido. –

+0

Hay algunos editores de forma de pitón bastante asesinos, pero una aplicación básica de "forma con un par de botones" solo debería tomar 10 minutos o más para eliminarla con tkinter o tk, y eso pasa mayormente pegando en el código de demostración tkinter . :) –

9

Utilizaría .NET y WinForms. La idea de la solución con guiones es atractiva, pero en la práctica a menudo me encuentro saltando por los aros para hacer algo más allá del caso básico y aún no tengo la flexibilidad para hacer todo lo que quiera.

+0

La solución de scripts requiere tan poco para desarrollar y mantener que es casi cero el daño tirarlo y volver a escribirlo en una plataforma "real", si es necesario; especialmente cuando 'hacerlo bien' implicaría construcciones para muchas arquitecturas, etc. –

+0

No creo que .NET funcione en XP de fábrica – Javier

+0

No sé sobre XP0, pero XPsp2 definitivamente lo tiene –

5

Tener una pequeña aplicación autónoma y desarrollarla rápidamente es, lamento decirlo, requisitos contradictorios.

Para ser honesto, dado lo increíblemente simple que es la aplicación, la escribiría en C con llamadas directas a Win32: una llamada a SHBrowseForFolder() para obtener el directorio, y una a ShellExecuteEx() para ejecutar el programa. Incluso MFC es demasiado pesado para una aplicación tan modesta. Establezca el tiempo de ejecución de C para que esté vinculado de forma estática y debería poder mantener el tamaño del ejecutable independiente en menos de 100k. Un codificador decente de Windows C debería ser capaz de derribar eso en menos de una hora, suponiendo que tiene uno a mano.

+0

aparentemente nunca ha usado un lenguaje de scripting con un juego de herramientas decente. –

+0

¿No se ha negado alguna vez el uso de un lenguaje de scripting para poder escribir el programa en Win32? Los beneficios de tenerlo como una aplicación Win32 pura significa que se ejecuta en cualquier lugar sin tener que instalar la herramienta de creación de scripts. –

+1

No, pero creo que el punto es que "menos de una hora" es mucho más largo de lo que tomaría en un entorno de secuencias de comandos como Powershell.Debería tomar unos 7 minutos en VB.NET, y eso incluye el tiempo de inicio de Visual Studio. – Cheeso

0

Estas respuestas son increíbles.

El editor de Visual Studio Forms le permite dibujar WinForms y autogenera el código GUI repetitivo (que es un fastidio en el mejor de la mayoría de los demás lenguajes y toolkits). Entonces puede usar C# o cualquier otro lenguaje .NET. .NET tiene widgets de stock para recolectores de archivos. Podría escribir esa secuencia de comandos en 20 minutos y se ejecutará en cada una de tus plataformas de destino de forma gratuita. Dibuje la GUI, arrastre y suelte un selector de archivos, complete quizás dos ganchos para hacer la tarea "Iniciar un archivo diferente de lo que querían".

+0

Windows Vista viene con una versión de .NET Framework preinstalada. En versiones anteriores de Windows, .NET Framework debía instalarse por separado, ya sea a través de Windows Update o como parte de la instalación de otro programa. –

+0

La pregunta dice "independiente", que es un poco vago, pero generalmente significa un EXE nativo. – MusiGenesis

+0

XP sp2 se envía con .net –

4

Tcl/tk es una solución. Puede tener un solo archivo ejecutable (incluidas imágenes personalizadas, dlls, etc.) utilizando algo llamado "paquete de estrellas", un sistema de archivos virtual que es tanto el intérprete tcl como el código de la aplicación. Creo que pesaría unos pocos megabytes.

De acuerdo con sus especificaciones, me tomaría personalmente unos 15 minutos obtener una primera versión de trabajo.

Tcl/Tk tiene una licencia BSD.

3

Acepto la respuesta Tcl/Tk anterior. Para obtener más información acerca del Starpack al que se refiere, consulte: http://www.equi4.com/tclkit/, es un intérprete Tcl/Tk disponible para varios sistemas operativos, todo en aproximadamente 1 MB. En el pasado, al parecer, ha habido preocupación por la apariencia de las UI de Tcl/Tk, pero esto se ha abordado mediante un nuevo marco denominado "Tile" que admite la apariencia nativa del sistema operativo del usuario.

1

Uso HTA (aplicación HTML) para aplicaciones de script & de forma rápida y sucia. Ver Microsoft's HTA Developers Center para detalles y ejemplos. Esto básicamente usa HTML para el formulario y cualquier lenguaje de script accesible para HTML para el script. La seguridad normal del navegador está anulada para que pueda acceder a casi todas las partes internas del sistema operativo. El sitio anterior también contiene enlaces a varias herramientas que casi automatizan la parte de scripting para usted.

3

Para un programa GUI rápido y sucio como el que dices, puedes usar un script AutoIt. Incluso puedes compilar a un exe.

Para un ejemplo de interfaz gráfica de usuario AutoIt, se puede comprobar mi script de redireccionamiento salida estándar en una respuesta anterior here

0

Sugiero Autohotkey (AHK) o Autoit. Ambos admiten win95 + (con advertencias para ciertas funciones). Se pueden compilar en .exe pequeño sin dependencia externa (además de las DLL nativas).

Pros:

  • pequeño tamaño
  • fácil escribir código
  • útil para sencilla - operaciones complejas
  • puede crear interfaz gráfica de usuario fácil

Contras:

  • curva de aprendizaje (como la sintaxis es inusual)
Cuestiones relacionadas