JFrame.setSize(int, int) - how set window dimensions?

Hello,
In my simpliest swing apps I can't set window dimensions by setSize(int, int). What am I doing wrong?
//v 1.3
import javax.swing.*;   
public class HelloWorldSwing {
    public static void main(String[] args) {
        JFrame frame = new JFrame("HelloWorldSwing");
        final JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);
     frame.setSize(200, 200); //won't change anything??
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
}

.pack() is resizing the frame. Move setSize() after it.

Similar Messages

  • Is there a way to set window dimensions before publishing project as standalone from Aggregator?

    Hi,
    I am combining several SWF files using aggregator and publishing it as a Standalone (.exe) File type. The executable works fine and displays all the files as expected. The expectation from the customer is to have the ability to maximize, minimize the window of the executable. Is there a way to set the dimensions before publishing the standalone. Currently, I am able to minimize or close the window and not maximize the window of the exe.
    P.S - I am using Captivate 4.
    Thanks,
    Latha

    Me again, Carol
    You also asked about the functional differences between WebHelp and WebHelp Pro, so let me elaborate.
    I'm aware of only two major differences (other than the extra benefits of feedback analytics reports and management of "Areas" with authentication in RoboHelp Server).
    The behavior of Browse Sequences as explained above
    The fact that Content Categories are not supported in WebHelp Pro for this latest version 9.
    As for the Browse Sequences you are trying to provide for different modules (licensed, etc.): Multiple Browse Sequences are included in a single .BRS file. The sequences are defined in the XML within the single file.
    As a workaround (for either WebHelp or WebHelp Pro) you could create a NGP Help.brs. which you have already created for one module; then backup and archive it. Then, create a modification for the different module before you generate again. The NGP Help.brs. will need to have the same name as your project so you will have to manage the desired .brs file into the project folder when you generate that version. All of your other choices (TOC, Index, Conditional Tags, etc.) would remain the same for the respective modules.
    Finally, I note that you are apparently generating WebHelp Pro right now even though you are not publishing it to the RH Server? This is really not the best practice. You should generate plain WebHelp for a web server that does not have RH Server on it (even though you may be getting away with it). As for your concern about "breaking" something; each output is placed in a different !SSL! folder automatically when you generate, so you should be able to generate WebHelp without interferring with the WebHelp Pro output. Then, you can re-publish to the RH Server using WebHelp Pro whenever the server is ready.
    John Daigle
    Adobe Certified RoboHelp and Captivate Instructor
    Evergreen, Colorado
    www.showmethedemo.com

  • Can't set netsh int tcp set supplemental

    Hello!
    Seems like I can't operate within netsh int tcp set supplemental preferences. When I try to set congestion provider the 'old way' with
    "netsh int tcp set global congestionprovider=ctcp"
    in elevated command prompt, Windows 8 saying that I must do it now with
    "netsh int tcp set supplemental"
    But that doesn't work either. All I can do with that new command is set template, but only one is available - "internet", and it's already set to it.
    I want to set ctcp, ICW and minrto, but I can't, here's what me getting:
    http://s10.postimage.org/jrpkudg53/suplemental.png
    The syntax is right, even example doesn't work.
    The problem exists in Windows 8 CP, RP and in this build.
    Sorry for my English. Thanks in advance.

    gsilva stated:  "One misconception I'm seeing above is that the CTCP is not the default congestion provider on Win8 machines.  By default, CTCP is set as the congestion provider on the Internet template and so it also the default on all Win8 machines."
    There's an excellent reason for this "misconception."  If one types netsh int tcp show global the display indicates that the Congestion Control Provider is in the "none" state!!!!
    So if, as you claim, CTCP is set as the congestion control provider in the Windows 8 default Internet template, please explain why the display referenced above says that the CTCP state is "none!"
    Also, I've spent the last five hours trying to figure out how to manipulate the CTCP state on my Windows 8 laptop and have ended up precisely nowhere.  As I understand, the default TCP template is the Internet template, and that is read only and cannot
    be modified.  Okay, fine.  As I understand it, I can switch between templates depending on my needs.  One of those templates is called Custom, and that would be the template for me if I want to toggle or otherwise manipulate CTCP, correct?
    But then I bump into another problem.  As I understand it, in order set a particular TCP template as the current active template one types netsh int tcp set supplemental followed by the particular desired template.
    For example, if I want to load the Internet template, I type netsh int tcp set supplemental internet.
    Well, I'm bumping into another problem.  When I type netsh int tcp set supplemental custom I get ungatz, nada.  All I get is the message "Set supplemental command failed to set the global default template."
    It's almost as if my laptop is missing all the templates but the Internet one.  I tried a few of the others, like datacenter and so on; same results.
    Just so you know, the reason why I wish to alter the CTCP state is because my Windows 7 laptop is getting an average 8000 kps download speed on my Sprint LTE connection but my Windows 8 laptop is getting an average 2000 kps download speed.  Clearly
    SOMETHING is wrong on my Windows 8 box, and I'm theorizing that turning on the congestion provider may fix the issue, unless you have other ideas.

  • SetSize(int,int) not working in JTextPane.. Please help

    Hi,
    I want to set size of JTextPane so that by default it should show atleast 2 lines.
    I am using setSize(int, int) , but its not working.
    Can anybody help me?

    hi
    From onwards, I will take care of it.. I will put my query in particular category only.
    Actually I tried this one also...
    Following is my method in which I want to set size of JtextPane
    public JPanel initComponents(Vector columnNames, Vector dbNames, Vector data) {
    fieldrefs = new JTextComponent[columnNames.size()];
    JPanel content = new JPanel();
    content.setLayout(new GridBagLayout());
    content.setSize(900,900);
    // Create Menubar
    JMenuBar menuBar = createMenuBar();
    setJMenuBar(menuBar);
    GridBagConstraints gbc = new GridBagConstraints();
    //some code
    gbc.gridx = 2;
    gbc.gridy = 0;
    gbc.insets = new Insets(SG_SwingUtilities.BORDER_COMP, // (top, left, bottom, right)
    SG_SwingUtilities.BORDER_COMP, 0, 0);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    JLabel pathLabel = new JLabel(stringPath);
    Font font = new Font(null, Font.BOLD, 12);
    pathLabel.setFont(font);
    content.add(pathLabel, gbc);
    // Insert all the fields.
    for (int i = 0, j = 0; i < columnNames.size(); i++, j += 2) {
    int gridy = i + 1;
    String label = (String) columnNames.elementAt(i); // Name of column.
    gbc = new GridBagConstraints();
    gbc.gridy = gridy;
    gbc.insets = new Insets(SG_SwingUtilities.BORDER_COMP, SG_SwingUtilities.BORDER_COMP, 0, 0);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    content.add(new JLabel(label), gbc);
    if ((i == 4 || i == 5) || (i == 2 && (isMacroNode || isSystemNode))) {
    // tagstart and tagend are expanded in HORIZONTAL direction.
    gbc.fill = GridBagConstraints.BOTH;
    gbc.weightx = 1.0;
    gbc.weighty = 1.0;
    if(i==5)
         styledDocEnd = new DefaultStyledDocument();
    fieldrefs[i] = new JTextPane(styledDocEnd);
    }else
    styledDocStart = new DefaultStyledDocument();
    fieldrefs[i] = new JTextPane(styledDocStart);
    if (i == 5) {
         textarea2 = new JTextPane(styledDocEnd); // I want to set this JtextPane size      
    textarea2 = (JTextPane)fieldrefs;
         fieldrefs[i].setSize(100,500);
    tagEndField = new JPanel(new GridBagLayout());
    content.add(tagEndField, gbc);
    normalComponent2 = new JScrollPane(fieldrefs[i]);
    setNormalMode(2);
    // my code
    else {
    // TagStart      
         textarea1 = new JTextPane(styledDocStart); // I want to set this JtextPane size
         textarea1 = (JTextPane)fieldrefs[i];//me
         fieldrefs[i].setSize(100,500);
    tagStartField = new JPanel(new GridBagLayout());
    content.add(tagStartField, gbc);
    normalComponent1 = new JScrollPane(fieldrefs[i]);
    setNormalMode(1);
    /// my code
    fieldrefs[i].addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent me) {
    // DOUBLE (left) CLICK
    if (data != null && !data.isEmpty()) {
    if (data.elementAt(j) != null) {
    String insertData = data.elementAt(j) + "";
    insertData = insertData.replaceAll("\\&\\{\\}", ""); // remove dummy ref
    insertData = insertData.replaceAll("\r", "");
    fieldrefs[i].setText(insertData);
    if(i==4 || i==2)
    insertLineBreaks(textarea1);
    updateColors(textarea1.getText(),true); //me
    if(i==5)
    insertLineBreaks(textarea2);
         updateColors(textarea2.getText(),false); //me
    else if (i == 5) {
    gbc.fill = GridBagConstraints.BOTH;
    gbc.weightx = 1.0;
    gbc.weighty = 1.0;
    fieldrefs[i] = new JTextArea(3, 10);
    fieldrefs[i].setForeground(new Color(0, 0, 255));
    // ((JTextArea) fieldrefs[i]).setLineWrap(true);
    if (data != null && !data.isEmpty()) {
    if (data.elementAt(j) != null) {
    String insertData = data.elementAt(j) + "";
    insertData = insertData.replaceAll("\\&\\{\\}", ""); // remove dummy ref
    fieldrefs[i].setText(insertData);
    content.add(new JScrollPane(fieldrefs[i]), gbc);
    else {
    fieldrefs[i] = new JTextArea(2, 10); // description field.
    ((JTextArea) fieldrefs[i]).setLineWrap(true);
    if (data != null && !data.isEmpty()) {
    if (data.elementAt(j) != null) {
    fieldrefs[i].setText(data.elementAt(j) + "");
    content.add(new JScrollPane(fieldrefs[i]), gbc);
    //code
    return content;
    } // initComponents
    protected JTextComponent[] fieldrefs = null; is taken from super class
    Message was edited by:
    ring

  • How to Set Video Dimension

    I have on the general tab a DV Playback or Playback for Windows and Im not for sure on how to set the Dimensions this is related to the Scaling Video thread.

    Along with the answers to Harm's questions, please detail your intended delivery scheme. Please go into as much detail, on all, as you can.
    Good luck,
    Hunt

  • How to set window.status when returning to a page with back button/list?

    It is easy enough to set window.status to application-oriented information when loading a page: do it in a function which is the onload handler for the page's body element. But, when returning to this window from another window with the second window's back button, or selecting the first window from the second window's back list, window.status gets set to browser-oriented information, usually the string "Done". Is there any means by which I can set window.status to application-oriented information when returning to the window via another window's back button/list? What would be really great is if there is an event handler like this:
    window.onreturnviaback = onreturn_via_backhandler;
    Any ideas?

    How about:
    - (void)viewWillAppear:(BOOL)animated
    I use that a lot.

  • Where can I set the window dimensions for the "Java Applet window"?

    Hi,
    When I run a form on the web, the Java Applet is loaded and the form appear in the window. But "base window" have gived dimensions indifferent what dimensions has the window of the form which I run.
    So, where can I set the dimensions of the "core window" which is behind the MDI window of the application?
    Thanks in advance,
    Eugen

    Eugen,
    in formsweb.cfg you will find parameters "width" and "height". You can set absolute values in pixels or "relative" in percent.
    width=800
    height=600
    or
    width=100%
    height=100%
    Gerald Krieger

  • How to unlock the Form Setting Window?

    Dear all,
                 I have one query.I want to lock/disable  the form setting window for normal user .
    If he will not permitted  to make changes to that form setting window.

    Hello Manohar,
    As Sridharan has replied, document settings authorization is what controls access to Form Settings when you are on a particular form.
    If you want to restric access to form setting when no forms are OPEN and when the user only has the Main Menu...then you need to use Additional Authorizations..
    PLease read this thread  How to set Authorization on Form Settings
    Suda

  • Setting Windows Envirnoment variables within Java code!!

    Hello All,
    How to setup Windows envirnoment variables within Java code dynamically.
    int customer = jList1.getSelectedIndex();
    System.out.println(customer);
    switch (customer)
    case 0:
    System.out.println("HOME1");
    break;
    case 1:
    System.out.println("HOME2");
    break;
    case 2:
    System.out.println("HOME3");
    break;
    case 3:
    System.out.println("HOME4");
    break;
    default:
    System.out.println("HOME5");
    break;
    }

    set windows %HOME% variableWhat is it?
    A system-wide resource? Something pertinent to the processes of a given user? Or does it apply only to your Java process?

  • JFrame.setSize() problem

    I'm facing a strange problem. I have a class derived from JFrame which is the main application frame window. Problem is I'm not able to set its size arbitrarily e.g. in following call to setSize(...) even if I replace 700 with 100 OR 1000 or whatever, the frame is always displayed of some fixed size . I can't find out why .. any clues ?
    JGuessFrame() {
    this.setSize(700, 700);   
    // Center the window on the screen
    setLocationRelativeTo(null);
    setDefaultLookAndFeelDecorated(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    try this:
    JGuessFrame() {
    this.setSize(700, 700);
    // Center the window on the screen
    setLocationRelativeTo(null);
    setDefaultLookAndFeelDecorated(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.pack(); // maybe this will help
    // if not then try this
    this.repaint();

  • Can an action set the dimension of the crop and put in the center of the image?

    Hi
    running cs6 64bit under w7 64bit
    can an action set the dimensions of the crop height & length and put the crop in the center of the image?
    or should i need a script?
    i mean for example i taken many photos about 20mp mega pixel
    i would like to run a script or an action that set the height & length and set the crop in the center of the image
    thanks

    mantralightroom wrote:
    i have cs6 but i haven't in the action option conditional actions
    ps i tried to record a script to set the histogram channel RGB or Luminocity , but the script plugin doesn't record it and even the action can do it
    you know cs6 starts with histogram in colors mode
    I have a hard time with English even though it may native language.  I'm having some problem with what you wrote.
    Yes cs6 does not have what Adobe calls conditional actions they put into CC.  That feature more or less an IF statement condition on some document attributes.  Like if document width is greater then document height play action landscape else play action portrait.   With CS6 you need to write one line script to use in actions.  Most of the utility scripts I wrote for use in actions are more complex then a simple if statement.
    The way you record scripts is PS is be using Adobe Scriptlistener Plug-in when installed the plug-in records everything you do that can be recorded into two log files one in JavaScript and the other in VBS.  The code generated  works by passing parameters to Adobe Photoshop's Action Manager.  To make scripts toy need to extract the steps you need from one of the log files.    However some thing you can do in Photoshop can not be recorded. And while your right that the scriptlistener plug-in  does not record anything for setting the histograms to RGB channel or Luminosity  channel your wrong when you write the Action Recorder can do it.
    However scripts can get the histograms channel data. I have never process a histogram in a script however there is a sample Photoshop Histogram in the Photoshop javascripting guide. That creates a text graph log.
    // Function to activate all the channels according to the documents mode
    // Takes a document reference for input
    function TurnOnDocumentHistogramChannels(inDocument) {
        // see how many channels we need to activate
        var visibleChannelCount = 0
        // based on the mode of the document
        switch (inDocument.mode) {
            case DocumentMode.BITMAP:
            case DocumentMode.GRAYSCALE:
            case DocumentMode.INDEXEDCOLOR:
                visibleChannelCount = 1
                break;     
            case DocumentMode.DUOTONE:
                visibleChannelCount = 2
                break;
            case DocumentMode.RGB:
            case DocumentMode.LAB:
                visibleChannelCount = 3
                break;
            case DocumentMode.CMYK:
                visibleChannelCount = 4
                break;
            case DocumentMode.MULTICHANNEL:
            default:
                visibleChannelCount = inDocument.channels.length + 1
                break;
        // now get the channels to activate into a local array
        var aChannelArray = new Array()
        // index for the active channels array
        var aChannelIndex = 0
        for(var channelIndex = 0; channelIndex < inDocument.channels.length;channelIndex++) {
            if (channelIndex < visibleChannelCount) { aChannelArray[aChannelIndex++] = inDocument.channels[channelIndex] }
        // now activate them
        inDocument.activeChannels = aChannelArray
    // Save the current preferences
    var startRulerUnits = app.preferences.rulerUnits
    var startTypeUnits = app.preferences.typeUnits
    var startDisplayDialogs = app.displayDialogs
    // Set Adobe Photoshop CC to use pixels and display no dialogs
    app.preferences.rulerUnits = Units.PIXELS
    app.preferences.typeUnits = TypeUnits.PIXELS
    app.displayDialogs = DialogModes.NO
    // if there are no documents open then try to open a sample file
    if (app.documents.length == 0) { open(File(app.path + "/Samples/Fish.psd")) }
    // get a reference to the working document
    var docRef = app.activeDocument
    // create the output file
    // first figure out which kind of line feeds we need
    if ($.os.search(/windows/i) != -1) {fileLineFeed = "Windows" }
    else { fileLineFeed = "Macintosh"}
    // create the output file accordingly
    fileOut = new File("~/Desktop/Histogram.log")
    fileOut.lineFeed = fileLineFeed
    fileOut.open("w", "TEXT", "????")
    // write out a header
    fileOut.write("Histogram report for " + docRef.name)
    // find out how many pixels I have
    var totalCount = docRef.width.value * docRef.height.value
    // more info to the out file
    fileOut.write(" with a total pixel count of " + totalCount + "\n")
    // channel indexer
    var channelIndex = 0
    // remember which channels are currently active
    var myActiveChannels = app.activeDocument.activeChannels
    // document histogram only works in these modes
    if (docRef.mode == DocumentMode.RGB ||docRef.mode == DocumentMode.INDEXEDCOLOR ||docRef.mode == DocumentMode.CMYK) {
        // activate the main channels so we can get the documents histogram
        TurnOnDocumentHistogramChannels(docRef)
        // Output the documents histogram
        OutputHistogram(docRef.histogram, "Luminosity", fileOut)
    // local reference to work from
    var myChannels = docRef.channels
    // loop through each channel and output the histogram
    for (var channelIndex = 0; channelIndex < myChannels.length; channelIndex++) {
        // the channel has to be visible to get a histogram
        myChannels[channelIndex].visible= true
        // turn off all the other channels
        for (var secondaryIndex = 0; secondaryIndex < myChannels.length;secondaryIndex++) {
            if (channelIndex != secondaryIndex) { myChannels[secondaryIndex].visible= false }
        // Use the function to dump the histogram
        OutputHistogram(myChannels[channelIndex].histogram,myChannels[channelIndex].name, fileOut)
    // close down the output file
    fileOut.close()
    alert("Histogram file saved to: " + fileOut.fsName)
    // reset the active channels
    docRef.activeChannels = myActiveChannels
    // Reset the application preferences
    app.preferences.rulerUnits = startRulerUnits
    app.preferences.typeUnits = startTypeUnits
    app.displayDialogs = startDisplayDialogs
    // Utility function that takes a histogram and name
    // and dumps to the output file
    function OutputHistogram(inHistogram, inHistogramName, inOutFile) {
        // find ouch which count has the largest number
        // I scale everything to this number for the output
        var largestCount = 0
        // a simple indexer I can reuse
        var histogramIndex = 0
        // see how many samples we have total
        var histogramCount = 0
        // search through all and find the largest single item
        for (histogramIndex = 0; histogramIndex < inHistogram.length;histogramIndex++) {
            histogramCount += inHistogram[histogramIndex]
            if (inHistogram[histogramIndex] > largestCount)
            largestCount = inHistogram[histogramIndex]
        // These should match
        if (histogramCount != totalCount) {
            alert("Something bad is happening!")
        // see how much each "X" is going to count as
        var pixelsPerX = largestCount / 100
        // output this data to the file
        inOutFile.write("One X = " + pixelsPerX + " pixels.\n")
        // output the name of this histogram
        inOutFile.write(inHistogramName + "\n")
        // loop through all the items and output in the following format
        // 001
        // 002
        for (histogramIndex = 0; histogramIndex < inHistogram.length;histogramIndex++) {
        // I need an extra "0" for this line item to keep everything in line
        if (histogramIndex < 10)
            inOutFile.write("0")
        // I need an extra "0" for this line item to keep everything in line
        if (histogramIndex < 100)
            inOutFile.write("0")
        // output the index to file
        inOutFile.write(histogramIndex)
        // some spacing to make it look nice
        inOutFile.write(" ")
        // figure out how many X’s I need
        var outputX = inHistogram[histogramIndex] / largestCount * 100
        // output the X’s
        for (var a = 0; a < outputX; a++)
            inOutFile.write("X")
        inOutFile.write("\n")
    inOutFile.write("\n")

  • How set a JDialog to let no close button on upper right?

    How set a JDialog to let no close button on upper right?

    a dialog is like a jframe so when u remove the upper part of it u can add a label like and other component to the frames content pane. u can create a panel which will serve as the upper label and will have a background gradient coloring (like windows frames) and an icon and any buttons u want. its a simple jpanel that u put on the upper side of the dialog. u can add a mouse listener to the panel so when the user pressed the mouse and moves it around u move the dialogs position.

  • How to Sort Dimension in Pivot Table via Order Column which is changing like Factual values

    Hi,
    Recently in of our product offerings we got stuck on this following question:
    How to Sort Dimension based on the Order Value which Keeps Changing with Factual Values??
    We have a data source laid out as (example)
    In the above the “Order” columns are changing per
    Company/(DimensionA) for DimesnsionB.
    Instead what we want is: (But only if we can get the following result without putting the “Order” Column in the “Values” Section. 
    If there are any configurations that we can make to our power pivot model for the similar data set so that the
    DimesnionB in this case can be sorted by the Order column, would be greatly helpful to us. 
    Sample File:
    http://tms.managility.com.au/query_example.xlsx
    Thanks
    Amol 

    Hi Amol,
    According to your description, you need to sort dimension members in Pivot Table via order column, and you don't want the order column show on the Pivot table, right?
    Based on my research, we can sort the data on the Pivot table based on one of the columns in that table, and we cannot sort the data based on the columns that not existed on the Pivot table. So in your scenario, to achieve your requirement, you can
    add the column to pivot table and hide it.
    https://support.office.com/en-gb/article/Sort-data-in-a-PivotTable-or-a-PivotChart-report-49efc50a-c8d9-4d34-a254-632794ff1e6e
    Regards,
    Charlie Liao
    TechNet Community Support

  • Two Fact tables with Different set of Dimension Tables

    Here is my scenario:
    I got two fact tables: X and Y (actually, they are the same tables, but with different level of data)
    and four dimension tables: A, B, C, D
    X joins relationship to all dimensions (A, B, C, D).
    Y joins relationship to only A, B, C, but no D.
    When I select dimension A, B and C together with fact tables X and Y in BI Answer, result is displayed and compared.
    However, if I select dimension D together with fact tables X and Y, only data from fact table X is displayed. There is no result displayed for fact table Y. I know that this is because fact table Y does not join to dimension D.
    If the above relationship unchanged, how can I display both X and Y's result in BI Answer when dimension D is selected?

    Thanks for all your replies.
    Actually, I've tried the solutions you guys mentioned. Generally speaking, the result should be displayed. However, my scenario is a little bit tricky.
    table Y's figures are not the aggregation of table X for D dimension. Instead, table Y's figures include not only D dimension total, but also others (others do not mean A, B, C dimension). For example, table Y stores all food's figure, while table X stores only drink's figure. D dimension is only about drink's detail. In my scenario, other foods' figure is not provided.
    So, even if I set D dimension to all/total for table X, table X's result is still not the same as table Y.
    Indeed, table Y does not have a column key to join to D dimension's key. So, if I select D dimension and table Y's measures at the same time in BI Answer, result returns no data. Hence, I can't compare table X and table Y's results with selection of D dimension.
    Is there any solution to solve this problem?
    Edited by: TomChan on Jun 3, 2009 9:36 AM

  • Missing Data Sets Window

    Running BIDS with Visual Studio 2012, the Data Sets Window seems to have gone away. Can you tell me how to bring it back?

    Hi SQLDave,
    Do you mean the Report Data window in a SQL Server Reporting Services project? If in this case, you can show the Report Data window by clicking View->Report Data.
    Besides, in SQL Server Reporting Services (SSRS) 2008 and 2008 R2, we use Business Intelligence Development Studio (BIDS) to design report, it use Visual Studio (VS) 2008 shell. In SSRS 2012, we use SQL Server Data Tools (SSDT) to design
    reports, it use VS 2010 shell.
    If I have anything misunderstood, please point it out.
    Regards,
    Charlie Liao
    TechNet Community Support

Maybe you are looking for