User login

Frequently Asked Questions


Thanks to TJ for contributing this to the program-l e-mail group.

You are getting the message:

csc.exe is not recognized as an internal or external command, operable program or a batch file...

All this message really means is that the system cannot find the program requested, because it is not in the current path of directories it checks.

There are many ways to add a directory to the path. I will show you the one that I use.

Step 1: open a command prompt. To do this, hold down the Windows key and press the letter R on systems older than Vista. In Vista and newer, hit the Windows key. Once you have an edit box focused, type cmd and press Enter.

At the command line, enter the command: cls

This will clear the screen and make it easier to work with later.

Step 2: enter cd \

This will take you to the root directory of drive c:

To verify this, look at the bottom of the screen. It should look something like: c:\>

C:\> is the working command prompt.

Step 3: enter md cSharp

This will create a working directory called cSharp. Md stands for make directory.
We will use this directory to store the results of some later commands.

Step 4: enter dir /s csc.exe

Dir is the dos directory command. It will give a listing of the files in a directory.
/s is an argument telling the dir command to search the current directory and all subdirectories for a given file.

csc.exe - is the c# compiler. In our case it is the requested file.

If you look at the screen, you will see a listing of all of the directories that have a csc.exe file within the current working directory, which is the root.

It is hard to work with the data that is on the screen. The next step will save the important data to a file that will make it easier to work with.

Step 5: enter dir /s /b csc.exe > c:\cSharp\csc.lst

This is the same command that you entered in step 4, but the results are now
reduced to the bare minimum by using the /b argument and being directed or "piped" to a file named csc.lst. That file is in the working directory that you created earlier: c:\cSharp

Step 6: enter cd cSharp

This means change directory. Now the working directory is c:\CSharp.

Your prompt should now look something like c:\cSharp>

Step 7: open the file csc.lst with your favorite text editor

The path to the file is: c:\cSharp\csc.lst

One thing you could do is type: start notepad csc.lst. This will start notepad and load the csc.lst file.

Note: there are different versions of the ms .net framework on your system
Each version will contain a csc.exe file. I choose to use the latest version on my system. That was:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

Step 8: remove the filename: csc.exe from the directory path that points to the C# compiler you want to use.

Using your text editor, remove the "\csc.exe" from the end of the ms .net frame work path.

Your line should look something like this:

c:\Windows\Microsoft.NET\Framework\v4.0.30319

This is the directory that needs to be added to the system path.

Copy this line to the clipboard.

Save the file for further use.

Step 9: Go back to the command line and enter echo %path%

This will display your current path. It is to this path that the results of step 9 must be added.

Step 10: open your text editor to a new file and enter the following:

@echo off
rem add2path.cmd
rem add to the current path
rem
set old_path = %path%
set path = %old_path%;

** Note:
Paste the copied line to the set path statement above after the ;

The path statement should look something like this:

set path = %old_path%;c:\Windows\Microsoft.NET\Framework\v4.0.30319

Add this line to the file:

echo %path%

Save the file as: add2path.cmd

Step 11: review the batch file you created. It should look similar to this:

@echo off
rem add2path.cmd
rem add to the current path
rem
set old_path = %path%
set path = %old_path%;c:\Windows\Microsoft.NET\Framework\v4.0.30319
echo %path%

Step 12: From the command line, enter add2path.cmd

You should see the current path, which should now include the added .net frame work directory

Step 13: enter cls to clear the screen

Step 14: enter csc.exe

If all goes well, you should see the options that can be used with the csc.exe compiler.

You should now be able to run csc.exe from any of your directories without getting the dreaded error:

Csc.exe is not recognized as an internal or external command, operable program or a batch file...


http://www.cplusplus.com. This site contains both non-technical and technical material

about the C++ language. There is also material about the C language here.

If you want to learn about Win32 programming, check out http://www.winprog.org/.


You can find a full Document Object Model JavaScript Reference at http://www.w3schools.com/jsref/default.asp.


Adobe, Accessibility Resource Center
http://www.adobe.com/accessibility/

Apple, Accessibility
http://www.apple.com/accessibility/

IBM, Accessibility
http://www.ibm.com/accessibility/us/en/

The Linux Foundation, Open Accessibility
http://a11y.org/

Microsoft, Accessibility Information for Developers
http://www.microsoft.com/enable/developer.aspx

Mozilla Foundation, Accessibility Project
http://www.mozilla.org/access/

Oracle, Accessibility
http://www.oracle.com/accessibility/index.html

Sun, Accessibility
http://www.sun.com/accessibility/index.jsp

United States Government, Section 508
http://section508.gov/

World Wide Web Consortium, Web Accessibility Initiative
http://w3.org/wai/


AbilitiesSoft -- Developing software for people with disabilities
http://www.AbilitiesSoft.com/

Blind Geeks -- Where Blind People Learn Programming
http://BlindGeeks.org

Fruit Basket Demos, where you can find sample programs in various languages.
http://www.fruitbasketdemos.org
Inthane's Grab Bag -- Blind programming assistance
http://GrabBag.AlacornComputer.com

NonvisualDevelopment -- promoting software development without visual dependencies
http://NonvisualDevelopment.org


Blind Geeks -- Where Blind People Learn Programming
http://BlindGeeks.org

BlindWebbers -- List for blind and visually impaired web authors
http://tech.groups.yahoo.com/group/blindwebbers/

dev-accessibility -- Accessibility of Mozilla products to those with disabilities
https://lists.mozilla.org/listinfo/dev-accessibility

Dolphin Scripting Forum -- Discuss scripting speech, braille, or magnification with Supernova
http://www.yourdolphin.com/scripts/scripting_forum.asp

GW-Scripting -- Discussion list for information regarding the development and use of Window-Eyes scripts
http://www.gwmicro.com/Support/Email_Lists/

Java Accessibility
http://archives.java.sun.com/cgi-bin/wa?A0=java-access

JAWSScripts -- For scripting and configuring JAWS
http://www.freelists.org/list/jawsscripts

LibLouis and LibLouisXML -- List for the discussion and development of the liblouis and liblouisxml braille translation, back-translation, and formatting
software
http://www.freelists.org/list/liblouis-liblouisxml

NVDA Developers -- List for development of the Nonvisual Desktop Access screen reader
http://www.nvda-project.org/wiki/Community

Open A11y of the Linux Foundation
http://www.linux-foundation.org/en/accessibility/email

program-l -- Discussion group for visually impaired computer programmers
http://www.freelists.org/list/program-l


Lion's World Services For the Blind has a curriculum called Enterprise Solutions Programming -- a 10-month course which prepares clients to work in a wide
range of programming environments including .NET and others. Exams for Microsoft Certified Professional Developer (MCPD) are offered through the program.
http://www.lwsb.org/enterprise_solutions_programming.asp




Sodbeans is being developed at
http://sodbeans.sourceforge.net/


To contribute to the community, it is helpful to know one or more of the following languages:

* Bash schell scripting. This may be the easiest language to learn in Linux, and it is very powerful. Bash scripts are used throughout most Linux systems
to control practically everything.

Bash Guide for Beginners
http://tldp.org/LDP/Bash-Beginners-Guide/html/

Main Page - Linux Shell Scripting Tutorial - A Beginner's handbook
http://bash.cyberciti.biz/guide/Main_Page

GNU Bash Reference Manual
http://www.gnu.org/software/bash/manual/bashref.html

* C. Most programs in Linux are written in C, including atk, at-spi, and speech-dispatcher, which are used for connecting screen readers to the system.
Speakup, and GTK+, the Gnome GUI library, are also written in C.

* Python. Many programs in Gnome are written in Python and use the pygtk bindings if they need GUIs. Orca, the Gnome screen reader, is written entirely
in Python.

* C++. Some applications, like espeak, the default TTS engine, are written in C++. Some GUI engines, like Qt and wxWidgets, are also in C++.

Before developing on Linux, make sure you like programming. Linux is considered by many hackers to be the happiest place to code. It is a wonderful operating
system (OS) for hackers, where you will experience freedom unlike anything in Windows. However, unless you absolutely love programming, Linux may just
drive you nuts.

There are suggestions elsewhere in this FAQ for getting started in programming on Windows, which you should probably follow first. Right now, while Linux
is fairly accessible, it's currently better for blind programmers than for general blind users. Once you feel you've learned enough to start contributing,
then feel free to jump right into almost any Linux project. There are literally thousands of them, and being blind will not hold you back from contributing
in most cases.

Decide how you want to interact with Linux. For example, if you're going to use JAWS to controll a shell, JAWS email lists can help. If you want to boot
directly into a Linux console and do your work there, you can get help on the speakup list. If you want to use the Gnome desktop, the Vinux mailing list
is friendly to newbie questions, and generally can help you get started. If you want to help improve Linux accessibility, the Vinux project is looking
for volunteers.


You can use a screen reader on another computer to log into any distro remotely, and then use it accessibly in a console mode session. Some mainstream distros
can be made to come up talking, without sighted assistance. There are blind programmers who love Debian, Arch, Knoppix, and Gentoo, for example. Ubuntu
Lucid currently holds a small lead over other main-stream distros in terms of default accessibility on the Gnome desktop, though more experience hackers
often prefer other distros.

Specialized distros for the blind are also available. For beginning computer users, you probably can't beat Knoppix Adrian, which boots into a talking menu.
It can be downloaded from mirrors like the one at
http://www.kernel.org/pub/dist/knoppix/

There are other distros for the blind, but Vinux may have the most users at present, available at
http://vinuxproject.org/

Being based on Ubuntu Lucid helps the Vinux community feed improvements they make into a mainstream distro quickly.

Linux has just about every kind of programming environment. There is not, however, a solid and highly integrated IDE like Visual Studio, though progress
is being made on Eclipse accessibility, and other IDEs are also progressing.

Blind programmers on Linux are encouraged to learn to control it through a shell, like bash, which is similar to a Windows command shell, but better. You
can log in from a Windows box and make Linux do just about anything remotely. You can also boot into Linux directly, and control it from the command line
using console readers like Speakup, available at
http://www.linux-speakup.org/

or Yasr, available at
http://yasr.sourceforge.net/

Shells are highly accessible, through programs like Speakup, and most programming is done directly in shell-based editors. The GNU debugger also works
well in a shell.

Alternatively, you can boot into Gnome, the most popular Linux desktop, and use the Orca screen reader.

Orca works with FireFox, mail, Open Office, and various GUI-based administration utilities. Gnome is fairly accessible, but not as good as Windows or Mac
OS X.

Check out the Gnome Desktop Accessibility Guide at http://library.gnome.org/users/gnome-access-guide/stable/index.html.en

Many blind programmers prefer the Emacspeak environment, which is a powerful audio desktop built on top of emacs, available at
http://emacspeak.sourceforge.net/

In Linux, you have many choices, and are free to choose what works best for you. You can also improve any part of the system, and working with open source
communities, you can make them better.


Inno Setup
http://InnoSetup.org

NSIS (Nullsoft Scriptable Install System)
http://nsis.sourceforge.net/Main_Page


Install Python from
http://python.org

Install the wxPython package for creating accessible GUIs from
http://wxPython.org

For Windows development, install the Python for Windows extensions at
http://sourceforge.net/projects/pywin32/

Also install py2exe, a package for building stand-alone executables from
http://py2exe.org

Alternatively, install ActivePython from http://www.activestate.com/activepython/downloads/. ActivePython comes with some Windows extensions and ActiveState's PyPM, which you can use to easily install, upgrade, and remove Python packages and modules.

You can also get Portable Python, from http://www.portablepython.com/. Portable Python is a Python distribution made to be installed for various operating systems that you can take anywhere and use.
In Python, code indentation is syntactically required rather than stylistically optional. The EdSharp editor includes features that help screen reader
users manage indentation efficiently. EdSharp is available at
http://EmpowermentZone.com/edsetup.exe


Install the Java Development Kit (JDK) from
http://JavaSoft.com

Also there is the Java Access Bridge (JAB), which should be installed for each Java Virtual Machine (JVM) on your computer. A direct download URL for the
JAB is
http://www.renovation-software.com/files/tgsdk/accessbridge-2_0_1.exe

Eclipse is an accessible IDE especially tailored for Java development. It is available from
http://eclipse.org

Also there is the Standard Widget Toolkit (SWT), a Java package that produces accessible GUIs on Windows and Linux. SWT comes with Eclipse.


AutoIt is a Visual Basic-like language that is freely available from
http://AutoItScript.com


Blind programmers have contributed to a project intended for this purpose. Specifications and samples of a "fruit basket program" are at the web site
http://www.FruitBasketdemos.org.

A fruit basket program is intended as a simple but nontrivial graphical user interface (GUI), exhibiting how a developer may employ a particular programming
language and platform, and how a user may experience the result. The length and complexity of code may be considered from a developer standpoint; the accessibility
and performance of the program may be considered from a user standpoint.

Basically, the user interface contains an edit box for entering a fruit name (e.g, apple), a listbox for collecting the fruit (the basket), and buttons
to add or delete items. Obviously, such a program is not inherently useful, but it does offer an informative example of a development approach, with comparisons
possible to other programs meeting the same criteria. Fruit basket samples are available for many development approaches.


A collection of tips has been gathered from blind programming lists, called "Nonvisual Development with .NET," posted at
http://EmpowermentZone.com/ndn.htm


VS comes in various versions with increasing amounts of developer tools and corresponding costs. The "Express Editions" may be freely downloaded and used,
even in commercial projects. Each Express Edition is oriented to a particular language or platform: C#, Visual Basic, Visual C++, or Visual Web Developer
(for developing web sites with ASP.NET). These are available at
http://www.microsoft.com/express/Windows/


Blind programmers have developed a set of JAWS scripts for Visual Studio (VS), which work with either VS 2005 or VS 2008. They do not work with VS 2010,
which uses Windows Presentation Foundation (WPF) controls rather than Windows Forms controls.

The executable installer for the scripts works with 64-bit Windows and Windows 7, as well as earlier versions of Windows. It is available at
http://EmpowermentZone.com/msenv2005.exe

Pick your JAWS version in the installer dialog -- the default is the latest version found on your computer. Otherwise, just press Enter to accept all defaults
of that dialog.

A zip archive is also available for a manual install at
http://EmpowermentZone.com/msenv2005.zip

Documentation for the scripts is in the file msenv2005.htm. It gives steps for manual installation. It also includes a list of hotkeys and a tutorial on
developing a fruit basket program with C# and VS.


Sharp Develop is an open source, cross platform IDE for .NET languages, available at
http://www.icsharpcode.net/opensource/sd/

Eclipse is an open source, cross-platform IDE for Java and other languages, available at
http://eclipse.org

A plug in for C# development with Eclipse is called Emonic, available at
http://emonic.sourceforge.net/


C#, Visual Basic, and JScript .NET command-line compilers are part of the .NET Framework 2.0 Software Development Kit (SDK), which is freely available at
http://msdn.microsoft.com/en-us/netframework/aa731542.aspx

Later versions of the .NET Framework include these command-line compilers in the distribution of the Framework, itself. Usually, a shortcut is put on the
Windows Start Menu for opening a command prompt with PATH and other environment variables set so that these tools are found when run. You could also search
your hard disk for the C# compiler, csc.exe, and then add its directory to your search path.

Book navigation