What is the difference between GUI and UI? - user-interface

What is the difference between GUI = Graphical User Interface and UI = User Interface?

GUI is "graphical user interface" and UI is just "user interface." GUI is a subset of UI. UI can include non-graphical interfaces such as screen readers or command line interfaces which aren't considered GUI.

Keyword - Graphical.
User Interface
In the industrial design field of human-machine interaction, the user interface is (a place) where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the machine which aids the operator in making operational decisions. Examples of this broad concept of user interfaces include the interactive aspects of computer operating systems, hand tools, heavy machinery operator controls. and process controls. The design considerations applicable when creating user interfaces are related to or involve such disciplines as ergonomics and psychology.
A user interface is the system by which people (users) interact with a machine. The user interface includes hardware (physical) and software (logical) components. User interfaces exist for various systems, and provide a means of:
* Input, allowing the users to manipulate a system, and/or
* Output, allowing the system to indicate the effects of the users' manipulation.
Graphical User Interface
A graphical user interface (GUI) (sometimes pronounced gooey[1]) is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices such as MP3 players, portable media players or gaming devices; household appliances and office equipment with images rather than text commands. A GUI offers graphical icons, and visual indicators, as opposed to text-based interfaces, typed command labels or text navigation to fully represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements.
There are lots of other types of User Interfaces.
See http://en.wikipedia.org/wiki/User_interface#Types
Source - Wikipedia

A "G".
That "G" stands for "graphic" - not all user interfaces are graphic. Some programs have textual interfaces. Some watch movements of your retinas, or talk to you in audible Chinese, or... or....

The difference between a TUI and a GUI is:
TUI is Textual User Interface that means falls in between the Command Line and Graphical User Interfaces.
GUI is Graphical User Interface means, wherein graphical objects such as icons, toolbars, and menus are used to perform an action.
Thank you! :) <3 :)

there are different types of UI's than just GUI's. GUI usually refers to WIMP style interfaces: windows, icons, menus, pointer. There's also CLI or command line interface, and ZUI or zooming interface, or Touch Screen interfaces, or hardware interfaces (like game controllers) etc... etc...

Nothing - just jargon. GUI = Graphical User Interface, UI = User Interface. You can use them interchangeably.

There is no major difference(high level) between them but if you want some points to explain the 2 you can refer the below link
UI can just be any command line interface or a simple text input/output screen GUI would mean more usser friendly.
An explanation can be as below.
"The UI is that part of the machine you use to control the machine and it sometimes has instruments to inform you about the status of the machine. For example an excavator can be controlled by several handles to dig, but could also give information about how many oil is left or at what temperate the engine is running. It is the central point of control and information.
The graphic user interface is where you control the machine in a graphical environment. Usually you control a computer by keyboard and mouse and you see all information on a screen. You see what your input is (what you want to control) and what the output is (the information the computer gives back) all on screen.
"
The link is below.
http://toostep.com/question/what-difference-between-gui-and-ui

Related

Projector’s remote controller events

I should make a PowerPoint presentation, but I don’t want do it. Instead, I know c++ and WinApi, and I decided to make an app, with cool effects, that would be presentation. In my classroom there is projector with the remote controller.
How can I handle events from the remote controller in my app? Will it be WM_KEYDOWN or something like this when I press next or previously on controller?
Also, can these events be handled in browser?
If you are familiar with serial communication, this work will not be difficult.
A number of projectors have RS232 or USB ports that can be used for controlling the projector's functions, i.e. switching inputs and powering on and off.
Then you only need to know the model of the projector, you can search the corresponding serial communication protocol on the Internet, or directly ask the manufacturer for the protocol information.
A small blog demo
And you only need to process the buttons of the remote control according to the serial port command.
Cases that might be useful to you:
Projector control - RS232 / USB?
3 EASY STEPS TO UNDERSTAND AND CONTROL YOUR RS232 DEVICES
Control projector via serial port
Obviously hard to say without knowing the model and brand of your projector. Many projectors do present these buttons as a USB keyboard, though (see one user manual specifying "page up" and "page down" keys as an example - I'm not affiliated with the brand in any way; it was just the first explicit specification I could find).
I suggest to try it out with the relevant equipment. The following website might be useful to see the keyboard input (and it incidentally answers your second question about the browser): key event viewer

how to Disable special keyboard keys?

I'm looking for a script or a program that runs in background and blocks special keys on my keyboard (calculator, mute, etc) I have searched a lot on this on the internet but didn't found anything useful or working for me, I tried sharpkeys but didn't detected those keys on my keyboard, key id is 173 for mute on my keyboard and I can get others IDs if I find anything to block them with IDs.
P.S. I don't know much about programming and most likely don't know what I am doing, I'm looking for basic help from anyone. thank you!
TL;DR  To disable all "special keys" you could change the Human Interface Device Access Windows service startup type from Automatic to Manual (or Disabled in case there is some other software installed that causes it to still start when set to Manual). Caution: this may break other input devices if present, such as IR remote controls, or Airplane mode radio management.
For background, those "special keys" are technically called "consumer control buttons (CCB)" (see for example Keyboard Enhancements in Windows 8 and the linked .docx - nevermind that CCBs long predate Windows 8).
The CCBs are handled by the Human Interface Device Access Windows service, as described at Human Interface Device Access:
This service provides generic access to specific functions contained within controls collections on HID (Human Interface Devices). It enables the use of predefined hot buttons on keyboards, remote controls and other multimedia devices.
If the service is stopped or disable, the buttons on USB keyboards will not function (i.e., back, forward, volume up, down, previous track, next track), nor will the volume buttons on USB speakers.
To change the Human Interface Device Access (HidServ) startup mode, navigate to My Computer / Manage / Services and Applications / Services, double-click the Human Interface Device Access in the list, and change the Startup type to Manual or Disabled.
To disable special keyboard keys via registry on Windows 10 go to HKLM:\SYSTEM\CurrentControlSet\Services\hidserv and change "Start" DWORD value to 4. Once you restart the system, special function keys should be disabled.

What is 'Desktop Presence'? (As used in the Windows UI style guidelines)

A lot of the Windows style guidelines refer to 'Desktop Presence' in various places, e.g. http://msdn.microsoft.com/en-us/library/windows/desktop/dn742496(v=vs.85).aspx', but it's never defined anywhere that I can see.
Is there a definition for what exactly they mean by this?
Is it the presence of a normal window on the screen throughout the execution of the application? Do apps that occasionally appear on screen (with dialogs or notifications), but are predominantly hidden count? What about applications you can interact with on the desktop but only on demand, e.g. the wireless network connection menu?
Found an ok answer in the article I initially linked to, in the end (http://msdn.microsoft.com/en-us/library/windows/desktop/dn742496(v=vs.85).aspx):
"The taskbar is the access point for programs displayed on the desktop, even if the program is minimized. Such programs are said to have desktop presence."

Program to drive a windows application

I would like to know is there a way to drive an existing windows application? I want to execute operations in an application like filling out text fields in a form, hitting next and submit buttons, etc. Basically what a user would do, I wanted to automate those operations. What would be the best way to achieve this?
Thanks
Mukul
It is possible (with limitations and quirks), if that particular Windows application uses native windows (so-called) controls (UI elements). Qt, for example, paints UI elements "by hand", while MFC applications uses Win API UI native (and expanded) elements. So, it depends.
You can explore application and it's UI elements using Spy++ tool inside Visual Studio (there are free alternatives available). Using these tools, you can look up target window class name, ID and other attributes that would help you to find and identify elements of interest using Windows API functions.
One can use EnumDesktopWindows, FindWindowEx, FindWindow, and others, to find window and it's inner control of your interest. Then, using SendMessage you can send various messages to set focus, emulate mouse clicks, set text for Edit control, simulate button clicks, etc, etc.
You can write such a program using UI Automation, which allows a program to discover and use the GUI of another application. It's how accessibility tools like screen readers interact with your applications.

How to read a global selection using MacRuby?

How can I read a global UI selection within MacRuby? For instance, of selected text in Preview.
Having no experience in Ruby and Cocoa, I've decided to take a plunge and to write a small dictionary app to aid myself with translation. All the pieces are ready, I just need to know how to read selected text on hotkey.
You can't, because there isn't one.
There is not one global selection. There is one text selection per text view (or other selectable-text-containing view). A window may have any number of such views, an application may have any number of such windows open, and the user may have any number of such applications running.
A further problem is that not all applications are Cocoa. Of those that are, most are accessible, but not all; custom views may trip you up (think of the Text tool in a graphics editor, for example). If the user selects text in a non-Cocoa application, chances are you won't be able to read it.
If you want to access the selected text in the focused view in the focused window in the focused application, the best way to do that is to make your application provide a Service, which the user can invoke from nearly any Cocoa application and some of the more enlightened Carbon apps. That's the best you can do.
Apple's own Dictionary gets special treatment in AppKit (including the availability of a floating Dictionary panel in Cocoa and Carbon apps), but otherwise works the same way: It provides a service that shows up in every Services menu (if the user hasn't turned it off).

Resources