Language(s) capable of creating an easy-access shortcut UI? - windows

Couldn't tell if this was to be in Superuser of Stackoverflow. Here's my guess
Getting straight to the point, what are some programming languages that would be able to simplistically (not golf-standards, necessarily) be able to produce a program that, when run, would provide no UI initially. Though, a UI could be enabled at the press (or more specifically hold) of a button, without the standard minimize;restore-down;close Windows interface?
I have practically just provided my intentions for the program - to be able to produce the above. I understand that as each condition is added a programming language is not necessarily eliminated from the language-pool, however I am curious as for what languages would be able to do this. C++? C#? Java? Python? etc. etc.
I am running Window 7, and am not a 'master' in any language. I have simply played around with, and learned the syntax and simple controls for a small selection of languages.

Related

GUI interaction

I am trying to write a program/script but I am not able to find a coding language (out of many) which would allow me to perform the tasks I want it to do.
I am aware of the fact that there are perhaps numerous coding languages which would allow me to do so, therefore, to make this question a bit more specific: 'Which coding language would you recommend a beginner to write a program which will be able to perform the following tasks (see below)?
Read some variables from a local HTML page
Fill in this variable in a textbox in a running application/program
Click a predetermined button
Loop the above mentioned on some predetermined condition (i.e. whether the variable has changed).
Thanks in advance!
This depends on your programming background, for which platform you are developing application. For windows C# will be good option, java is also another option.

Is there any special tool for interactive GUI development

Currently I am preparing exercises about networks and mobile communications for students. I was thinking about creating an interactive user-interface which enables the user to drag&drop predefined elements and then implement a logic based upon element distances etc.
An example would be to place two base stations (a predefined element with several properties), set the scale in the interface and then check the signal interferrence in the environment (user-interface).
The first part might be too abstract whereas the example might be too specific, but I was wondering whether there already exists any friendly framework or language which enables developers to create interactive interfaces (for teaching/learning purpouses) in short ammount of time. Usually I write applications for PC environment in .NET but in this case it would take too much time to create a specific interface for every exercise.
I would appreciate if anyone could suggest any way to create interactive user-interface in short ammount of time. Are there any special programming languages or development tools for this kind of applications or are there any useful frameworks for .NET, Java or any other language to speed up the development of user-interfaces?
Thank you!
Perhaps sketchflow could be of interest
although more intended as a tool for mocking up GUI's. It does also have the ability to hook up behaviours and other short snippets of code to your testgui.
Take a look at Mockingbird. I'm not sure if it's exactly what you are looking for, but it is a pretty sweet web application and works well for the development of UIs (at least the wireframes).
There are lots of tools for this purpose -- but most of them only work well if your user interface follows one of a few fairly well-defined (and widely used) patterns. Just for example, if you're creating a database front-end, there are quite a few tools to make the job quite easy.
One often-overlooked tool for this kind of job is Visio. Visio is normally thought of primarily for drawing and diagramming, but you can also attach behaviors to objects so double-clicking an object can run a macro of your choice, opening forms, doing calculations, etc. The macros are (at least normally) written in VBA, which probably isn't the greatest choice for big projects, but as you said, for a situation like this you're mostly interested in short snippets.
There are, of course, a number of downsides to this, such as the inability (at least AFAIK) to deploy such a diagram as a web-based application. Like Henry Ford's "they can have any color they want as long as it's black", you can respond to any user action you want as long as it's a double-click.
Microsoft expression blend might bee something cool too
http://www.microsoft.com/france/expression/default.aspx

How to control the mouse pointer outside our application

I want to control the mouse pointer with my application and be able to interact with other programs using my program,
For example I want my application to be able to click on a button on another application
How should I go about solving this problem?
(Any programming language would work, also if you have any suggestion please let me know)
Afterthoughts:
I want to do it in windows operating system and want to test my GUI to see if it works in different scenarios. Any language would work for me since this is not part of the final product but I prefer one of these languages (Python, Java, C# or MATLAB)
Thanks
There are many ways of doing this, and you didn't mention any details of your application (system, target goal, etc...).
If your goal is menial automation, I'd recommend whipping together a quick AutoIt script on Windows. http://www.autoitscript.com/autoit3/index.shtml
If this isn't what you're looking for, please give more details.
Okay, this one is really operating system and windowing specific. But the phrase you're looking for is "mouse grabbing".
As #Mitch suggests, unless you've got a really good reason — like maybe a GUI testing app? — then grabbing the mouse and messing with it in that way is very bad form.

What are the differences between different GUI toolkits and language bindings?

As far as I can tell, all GUI toolkits are basically the same.
They all have some sort of base Widget that everything else that can be drawn inherits from.
They all have basically the same widgets - Window, Scrollbar, Button, Dialog, FileSelector, DrawingArea, Menu, Container, etc.
They all use event driven architecture with a "main loop" that responds to user events through application registered callbacks.
Most have some sort of "GUI-builder" program (ala Glade for GTK+).
As far as I can tell, most language bindings to each individual toolkit are more or less a literal translation of the API. This makes it seem to me like any programming language would be just about as productive as any other.
Some toolkits bill themselves as not just a GUI toolkit, but an "application framework", for example wxWidgets. They add on APIs for other stuff like networking, data structures, logging, threading, and database access. Considering that most of this other stuff usually has better libraries to access the functionality you need, it seems like it wouldn't be particularly important in deciding between toolkits. In fact, if you know you already have this stuff covered, it would be beneficial to choose a toolkit that is simple and know it is just a GUI toolkit, like GTK+ or FLTK.
Are there GUI libraries out there that are radically different from this mold?
As someone trying to break into GUI programming, how would you suggest to choose between a GUI toolkit - or does it really even matter which one? What programming language tends to be easiest for developing GUI applications - or should I just stick with what I know?
You're writing this question as if you've never used the these toolkits. I'm not really sure what the actual question is here. Have you ever used Swing? Does that seem as the same level of productivity as the .NET WinForms API? Really, saying anything about any of these will just lead to a flamewar or series of downvotes. There are differences. Of course, there are many similarities. A lot of that has to do with many of the fundamental constructs you need in an event driven GUI programming environment, such as a message loop. Of course, there are probably many other ways to do it but it is a proven method.
I don't know of any that "radically" break from this. Probably the most different GUI library for general purpose GUI applications I know of is from REBOL with its VIEW:
http://www.rebol.com/docs/view-guide.html
However, in reality its not "radically" different.
One big difference in productivity is the tools for these different toolkits have very different levels of maturity. You're kind of asking two questions. One question is more theoretical: "Are any of these toolkits fundamentally different?" and the other is about productivity and that is "Are there differing levels of productivity for the various toolkits?" The first question is very debatable. The second question has the clear answer: Yes.
There are many questions to ask. First what programming language or platform will you be using? Do you need portability to different platforms like Windows, Mac OS X, and Linux? Will it be just Windows or just Linux? Obviously, you wouldn't want to use WinForms on Linux (or Gnome/KDE if anyone wants to be pedantic). You could use GTK+ on Windows, but the "widgets" won't have same look and feel as those offered by native Windows toolkits. You could choose Swing, but it is really only available in Java and has its own issues. I don't think Swing has a great level of productivity, personally. I think having to add all these "adapters" and connections all this "layout" gook is not that productive. Some people do though.
Another aspect is the selection of built-in widgets your chosen toolkit holds and what the selection is among third-party free and commerical widgets. If you choose a more obscure toolkit, you won't have as many exotic sort of widgets to choose from. For instance, you would find a Mac OS X style "dock" widget for .NET WinForms and probably a few others but maybe not in GTK+ (actually, it probably exists there, but its just example).
So, in short, I don't think you can really say that all the GUI toolkits are just interchangeable. There are many other issues to consider than whether they have base widgets and message loops.

Macro/Scripting language for non-developers with a simple GUI-based editor

We wish to provide people to be able to add some logic to their accounts(say, given a few arguments, how to compute a particular result). So, essentially, this would be tantamount to writing simple business rules with support for conditionals and expressions. However, the challenge is to provide them a simple online editor where they can create the logic (preferably) by completely visual means (drag/drop Expr-tree nodes maybe -- kinda like Y! pipes).
Does anybody know of a scripting/macro/domain-specific language that lets people do this? The challenge is the visual editor, since we don't wish to invest in developing the UI to do the editing. The basic requirements would be:
1. Embedded into another language, or run securely (no reboot -n or <JUNK-DANGEROUS-COMMAND> >> ~/.bashrc)
2. Easily accessible to users without coding background (no need of any advanced features)
3. Preferably have a simple GUI based editor to create the logic programs accessible to non-developers (kinda like spreadsheets)
4. Some ability to generate compile-time warnings (invalid code) would be good (Type safety?)
5. Ability to embed some data before execution which is available to the interpreter (Eg., name, birthday, amount)
Anybody tried doing something like this and got any ideas? I looked at Lua, Io, Python, Ruby and a host of others, but the challenge essentially is that I don't think non-programmers will be able to understand the code all that much. Something that could be added via "meta-programming" to say a Ruby would be good as well, if an editor could be easily developed!
As a matter fact, Microsoft is developing Oslo, which is right up your alley.
Chris Sells has been writing a lot about it recently.
It is designed to be a way to author DSLs and also to visually author these models with a graphical tool called Quadrant. Sounds very very similar to what you are looking for.
Open source wise, Ruby I think can be close, as you can see if you look at _whytheluckystiff's Try Ruby or Hackety.
I don't think you'll find anything that isn't too generic, especially regarding the GUI editor. There's no generic tools as far as I know that will be able to automatically interface with your program and be able to query data from it and interpret the script into commands in your software -- if there is I'd like to have a copy. Not being flippant, but you will have to do some (probably alot) of work to get this working. It will probably result in you writing a custom DSL.
I would take a look at PowerShell. You could surface all the activities a user would like to script in a very readable way.
There is some talk of using PowerShell to create a DSL on the PowerShell team blog and Bruce Payette, the technical lead, talks about this in his book Windows PowerShell in Action from Manning.
At the other end of the scale is to write something simple as a HyperText Application (HTA) -- assuming Windows of course -- along the lines of my Clive tool. The article on the blog doesn't mention the HTA version, but essentially I could enter VBScript-ish code into one textarea and interpret it on the spot, output going into another text area on the form.
With HTAs giving you all the form control of HTML, plus the DOM, you could come up with something interesting fairly quickly.

Resources