Capture keyboard events using c# in SBO

How do I capture keyboard events(especially those with Control like CTRL-R) in SBO using C#??

Payal,
You will want to look at the UI API Help in the SDK Help Center and specifically look at the "SendKeys" method.  This will allow you to send keyboard key strokes to the UI.
Your post is related to the Business One SDK.  That forum for questions and answers for the Business One SDK is located on the SAP Business One page on SDN and then under the SAP Business One Discussion Forum.  This forum is for the SAP Business One Integration Technology.
HTH,
Eddy

Similar Messages

  • Capture a keyboard event on af:panelGridLayout?

    Hi,
    <af:panelGridLayout> currently supports a client listener with mouse events.
    But I have a requirement where I need to capture keyboard events.
    I tried adding an invisible inputText component on the page and focus on it onclick of the panel.
    My assumption was that when the inputText is on focus, it should be able to capture keyboard events even though its invisible.
    This does not work. Please see code below. The "showAlert" javascript method never gets called.
    <af:inputText clientComponent="true" visible="false" value="dummy" id="keyLink">
         <af:clientListener method="showAlert" type="keyUp"/>
    </af:inputText>
    <af:panelGridLayout id="pgl3">
        <af:clientListener method="toggleRowSelection" type="click"/>
    </af:panelGridLayout>Javascript code:
    function showAlert(event) {
        alert("javascript event " + event.getKeyCode());
    function toggleRowSelection(event) {
        var source = event.getSource();
        var keyLink = source.findComponent("::keyLink");
        keyLink.focus();
        callServerMethod(event);
    };How do I achieve this?
    -Anitha

    "[email protected]" <[email protected]> wrote in message news:[email protected]..
    I have figured out how to add menu Item to an existing EXE program, but I have not yet been able to figure out how to capture there events.&nbsp; Any help would be greatly appreciated.
    It's not entirely clear what you are trying to acieve. I think you're trying to add menu items to an exsisting exe without recompiling it, from LabVIEW. If so the following applies.
    You have to hook the winproc. When a menu item is selected, windows send a message to the window's winproc. There are some API's that can be used to point the address of the winproc to another routine. This routine can do filtering, and then call the original routine.
    Note that LabVIEW doesn't (or didn't until LV7) use windows menu's, so when a LabVIEW (or exe created with LabVIEW) menu item is called, windows will not send anything. That is the price for platform independency.
    I think the OpenG site (or perhaps Winutils from NI) has some vi's to hook windows messages that are send to LabVIEW. Perhaps you can also use them hook another application.
    Regards,
    Wiebe.

  • Sap  business One (capture control events)

    How do I capture keyboard events(especially those with Control like CTRL-R) in SBO??

    Hi Payal,
    You can catch the key down event in your Item_Event handler as follows:
    If pVal.Modifiers = SAPbouiCOM.BoModifiersEnum.mt_CTRL And pVal.CharPressed = 82 Then
        'do something
    End If
    Hope it helps,
    Adele

  • How to Listen keyboard event

    I know we can capture the events triggerd from indesign to extension e.g. 'attributeChange', 'documentOpen' etc. But I really don't know If we could capture keyboard events also in Extension palette, fired from InDesign CS6. Which is my current requirement.
    Can some one put some light on this ?
    Thanks
    Mac

    How did u manage to get the events like "documentOpen" worked. Can you share ? And for the keyboard events i guess you can capture using Flash API , but the focus have to be in your extension.

  • ADF Mobile: amx:listView keyboard event handler

    My view needs to accept keyboard input, but does not have an inputText, only a listView. I need to update listItems based on the keyboard input, but cannot add an inputText field to the view. Can I capture keyboard events in the view, the panelPage, or the listView?
    Thanks,
    Mike

    Plzz help :(

  • Capturing all keyboard events.

    I'm using the keyboard to control a mobile robot through a Java applet.
    I also have lots of other buttons in the applet. I don't want to add KeyListeners to all of the buttons. So is there a way to directly capture all keyboard events? So that no matter which button has the focus, the keyboard events would be processed?
    Thanks a lot!

    I don't want to add KeyListeners to all of the buttons.You could use a single KeyListener and add it to each button.
    So is there a way to directly capture all keyboard
    events? So that no matter which button has the focus,
    the keyboard events would be processed?I don't know if this works or not, but check out Toolkit.addAWTEventListener().

  • Capture All Mouse and Keyboard events even if java window NOT in FOCUS

    Hi All,
    Is this possible to capture all mouse and keyboard events even if java window is not in focus or is minimized. This java program should cature each and every event from the user once the program is started. Any help in this regard is appreciated!
    Thanks&Regards
    Sam

    I don't think you can. (without JNI)

  • Movieclip.x movement using keyboard event

    Hi, im working on a game project and i have a question about movie clip movement using keyboard event.
    Basicly i have a character on screen and it can move on the x axis using the left and right buttons.
    Im making my charater move by changing the x value of the character movieclip but i find very it laggy and not smooth and if im going point by point
    then it's too slow.
    Whats the best way to make the character move so that the transition will be smooth.

    Ok obviously you've left out where you add your eventListener, i'll assume that's a KEY_DOWN event. When the user holds down a key, that key event is triggered once immediately and then after a pause it is triggered at regular intervals. Check this out by holding down the up/down arrow and watching this browser window scroll.
    That's not the movement you'd be looking for when moving a character in a game. Instead, you'd be setting a variable on KEY_DOWN to indicate the character direction - it could be an integer for example that you increase by 1 if the user pressed RIGHT or decrease by 1 if the user pressed LEFT.
    In addition to your KEY_DOWN eventListener, you could have an ENTER_FRAME and  KEY_UP eventListeners set up:
    The enterFrame event handler could move the character in the direction specified in your direction variable. This is where you might ensure your character doesn't go beyond its limits in both directions.
    In the keyUp event handler, you could do the converse of what you did in the keyDown handler(increase by 1 if the user released LEFT, decrease by 1 if the user released RIGHT).

  • How to capture keyboard strokes while focus is on an external app. Opened with system exec

    Hi to the Forum,
    I have an application that runs an external app. Through system exec, while this application is open the user needs to input a 6 digit serial number using the keyboard, I need to capture in parallel that information on my main VI in order to perform some information validations, such as the six digits were entered, the serial number is not repeated etc. I have read other post about the same issue but did not found a practical way to achieve a solution, please help with an example of how to do that as I'm on the final stage of the project.
    Thanks in advance for your time and help.
    MRDK

    Hi MRDK,
    You can/have to use Connectivity>>Input Device Control palette functions.
    Attached is the simple example.
    Regards,
    Yogesh Redemptor
    Regards,
    Yogesh Redemptor
    Attachments:
    Get Keyboard Event.vi ‏15 KB

  • Flex 4 does not dispatch keyboard events for ENTER key.

    Hello everyone. I think I have a strange problem with Flex 4 Beta (4.0.0.8909). My application has had event listener for keyUp event for a month now and suddenly (two days ago) I've noticed that keyUp event is not dispatched for ENTER (ALT also) key. Anyone know why? By the way, I've tried this with keyDown event, also 4.0.0.8847 version of SDK - still the same: no keyboard events for ENTER (and ALT) key.
    Here is the sample application that has got this issue:
    <s:Application
       xmlns:fx="http://ns.adobe.com/mxml/2009"
       xmlns:s="library://ns.adobe.com/flex/spark"
       xmlns:mx="library://ns.adobe.com/flex/halo"
       minWidth="640" minHeight="480"
       keyUp="application1_keyUpHandler (event)">
       <fx:Script>
          <![CDATA[
             import mx.controls.Alert;
             protected function application1_keyUpHandler (event: KeyboardEvent):void
                Alert.show ("Key up: " + event.keyCode);
          ]]>
       </fx:Script>
       <s:layout>
          <s:BasicLayout/>
       </s:layout>
       <s:TextArea verticalCenter="0" horizontalCenter="0" width="200"/>
    </s:Application>
    If you run this application and try typing anything in a TextArea you will get alerts with key codes. However, if you press ENTER (or ALT), you will get no alert.
    I'm pretty sure the code above is right so that means there is a bug in latest nightly builds of SDK (i would swhitch to an older build if i knew which one does not have this bug).
    Any ideas?

    Flex harUI wrote:
    That's true, but in this case, I think the text editing code is eating ENTER key in order to prevent parents from seeing it and acting on it (like a submit button).  We'll see if we can find a way around that.
    You can get the ENTER key now by listening in capture phase.
    Alex Harui
    Flex SDK Developer
    Adobe Systems Inc.
    Blog: http://blogs.adobe.com/aharui
    The enter key isn't being disposed of by textedit, the attached example code works without error if you a- remove the alert box and b-set the focus to your text area on initialisation. I agree that pressing the enter key then calling a dialog box will result in the enter key being "gobbled up" as  the enter key is overridden by the dialog box code.
    I think the first suggestion should be to anyone don't use dialogboxes for testing code. If for some reason debugging isn't desirable instead of a trace statement a simple label  can be used as a 'fake' trace.
    David
    Message was edited by: David_F57: I worded this wrong, imho there is no need for a work around, the textarea component works as it should. When intercepting 'system' keycodes there is a need to consider the effect of the intercept and code appropriately to that end.

  • Listen Keyboard events in AIR for iOS? [HELP]

    It works in the browser...  Is there any way in AIR to do this for iOS ?

    Hi, this is an old post but it is related to issues that still in Adobe AIR 3.7, I have the same situation implementing an iCade controller, I have solved the problem creating an iCade proxy that use a hidden TextField to capture text change events that are mapped into keyboard events and finally dispatched to the game listener. This is the code so far, it works but is not optimized, im sure you can optimize and remove the useless code from here:
    package {
              import flash.display.DisplayObjectContainer;
              import flash.display.FocusDirection;
              import flash.display.Sprite;
              import flash.events.Event;
              import flash.events.KeyboardEvent;
              import flash.events.MouseEvent;
              import flash.events.TouchEvent;
              import flash.text.TextField;
              import flash.text.TextInteractionMode;
              import flash.ui.Keyboard;
               * ICadeProxy
               * @author Juan Fernando Vélez Melguizo - © Copyright 3DLogical - www.3dlogical.com
              public class ICadeProxy extends Sprite {
                        private var fireKeysDown:String = "yuihjk";
                        private var fireKeysUp:String = "tfmrnp";
                        public var inputField:TextField;
                        public function ICadeProxy() {
                                  if (stage) {
                                            init();
                                  } else {
                                            addEventListener(Event.ADDED_TO_STAGE, init);
                        private function init(e:Event = null):void {
                                  removeEventListener(Event.ADDED_TO_STAGE, init);
                                  inputField = this.inputFieldSource;
                                  initKeyboardCapture();
                        public function initKeyboardCapture():void {
                   inputField.text = "";
                                  inputField.addEventListener(Event.CHANGE, doKeyChange);
                                  inputField.addEventListener(Event.DEACTIVATE, doRefocus);
                                  inputField.addEventListener(MouseEvent.CLICK, doClick); // This is for debug only
                                  recoverFocus();
                        public function doClick(e:MouseEvent):void {
                                  trace("CLICKED ME:" + e.currentTarget);
                        public function dispose():void {
                                  inputField.removeEventListener(Event.CHANGE, doKeyChange);
                                  inputField.removeEventListener(Event.DEACTIVATE, doRefocus);
                                  stage.focus = null;
                        private function doRefocus(e:Event):void {
                                  recoverFocus();
                        public function recoverFocus():void {
                                  stage.focus = this;
                                  stage.focus = inputField;
                                  inputField.dispatchEvent(new MouseEvent(MouseEvent.CLICK, false, false, 384, 512, inputField));
                                  inputField.text = "";
                                  inputField.requestSoftKeyboard();
                        private function doKeyChange(e:Event):void {
                                  var t:String = inputField.text;
                                  var k:String = t.charAt(t.length - 1);
                                  var eventType:String = "";
                                  var newKey:uint = 0;
                                  if (k == "w") {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.UP;
                                  if (k == "x") {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.DOWN;
                                  if (k == "a") {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.LEFT;
                                  if (k == "d") {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.RIGHT;
                                  if (k == "e") {
                                            eventType = KeyboardEvent.KEY_UP;
                                            newKey = Keyboard.UP;
                                  if (k == "z") {
                                            eventType = KeyboardEvent.KEY_UP;
                                            newKey = Keyboard.DOWN;
                                  if (k == "q") {
                                            eventType = KeyboardEvent.KEY_UP;
                                            newKey = Keyboard.LEFT;
                                  if (k == "c") {
                                            eventType = KeyboardEvent.KEY_UP;
                                            newKey = Keyboard.RIGHT;
                                  if (k == "o") {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.Q;
                                  if (k == "l") {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.P;
                                  if (fireKeysDown.indexOf(k) != -1) {
                                            eventType = KeyboardEvent.KEY_DOWN;
                                            newKey = Keyboard.SPACE;
                                  } else
                                  if (fireKeysUp.indexOf(k) != -1) {
                                            eventType = KeyboardEvent.KEY_UP;
                                            newKey = Keyboard.SPACE;
                                  stage.dispatchEvent(new KeyboardEvent(eventType, true, false, 0, newKey));

  • Responding to keyboard events when focus is lost

    Is there any way to have a Java Application respond to keyboard events if the focus has been lost?

    Media programs respond to keyboard events to turn up
    the volume, etc... and the program does not have to
    have the focus to do this.On the computer I'm using here, the keyboard button
    to raise/lower the volume goes to the OS's volume control.
    Not to an arbitrary application.
    So the situation in your analogy is not mandatory.
    And more generally, even if your app is not hidden,
    users do not expect that it will "steal" keystrokes.
    Let's say I download a very cool "World Clock Display"
    program that displays the world time of New York
    and Tokyo in the background.
    Let's say I then go to my bank's website.
    I do not want that the World Clock Program
    (which is in full view) to capture my bank password.
    (Clarification: on Windows, on Linux... it is
    actually perfectly trivial for a C/C++ program
    to capture all keystrokes in the background.
    But I do not know if you can do it using Java or not)

  • Send a keyboard event from labview to C#

    Hi,
    We currently have a program in c# that takes keyboard inputs from a user and will fly a quadrotor. We aim to have a LabView .vi generate keyboard commands based on our experiment and send the commands to the c# code creating a feedback loop where the .vi will keep track of sensor and experimental data.
    Our problem is that we have tried many different methods to send the keyboard commands in LabView. 
    1) http://zone.ni.com/devzone/cda/epd/p/id/3711
    2) http://forums.ni.com/t5/LabVIEW/Send-keyboard-commands-to-another-windows-program/td-p/330670/page/2
    as well as other variations and similar .vi's that do the same thing. Here is an example of a .vi used to press the letter "t" once.
    http://i.imgur.com/hwmjZ.png
    All of them can write the string to a text (open notepad put cursor in blank window) file but none can do it in such a way that it is detected by the c# code. On my own I can open and run the c# code and press keyboard buttons myself and the commands are recognized, so I think it could be an issue with how LabView sends the keyboard events and how c# reads them. Here is the c# code segment that we are using to read the input commands:
    public override List<String> GetPressedButtons()
              KeyboardState state = device.GetCurrentKeyboardState();
              List<String> buttonsPressed = new List<String>();
              foreach (Key key in Enum.GetValues(typeof(Key)))
                        if (state[key])
                                  if (!buttonsPressed.Contains(key.ToString()))
                                            buttonsPressed.Add(key.ToString());
              return buttonsPressed;
    Can anyone help trying to figure out why using the keybd_event function in LabView can not interface correctly with the above detection code in c#? I can provide any code and clarification if you think it can be helpful.
    Thanks,
    Andy

    Hi,
    I can't say with certainty where the problem is or even how many there are. I do know that the KeyboardListener.cs class should work according to what I have read online. I also know that if I press the keyboard myself then the state is changed and the correct action is taken. If I try to issue an event from Labview then the event is not captured. Here is the code, it is rather large ~20 MB.
    https://www.dropbox.com/s/vsvcje1ro364otu/ARDrone.zip
    https://www.dropbox.com/s/p3h3tj8bcqc29gk/Forward_backward0924.vi
    The key listener is in ARDroneInput>Utils>KeyboardListener.cs and the polling takes place in ARDroneInput>KeyboardInput.cs
    The reason I wanted to use keyboard inputs is because the quadrotor we are using takes keyboard commands W,A,S,D,T and L. Initially I thought having Labview issue these commands would be the simplest method. That may not be the case.
    I was just thinking that it is not necessary that key events are sent from Labview. Instead, one could send an array representing the frequency of each button press rather than the button press directly. In that case an array that is updated continuously from Labview will just have to be kept track of in the C# code. The C# can then convert that to whatever control input we want. Can it be easier to send a vector of numbers in real time to C#?
    If you think it is better to establish a connection between Labview and C# using .NET to send keyboard commands (rather than the vector idea above) can you explain that a little more? How does one go about doing that? If you think the vector idea is simpler how should the interface be set-up?
    I just talked with my collegue and we think that maintaing a .txt file in Labview and having C# read it is the best option. We will begin working on that and will update you tomorrow.
    Thanks,
    Andy 

  • Unable to capture button event in pageLayout Controller

    Hi Guys,
    I have the following layout
    pageLayout
    pageLayoutCO (controller)
    ----header (Region)
    ----------messageComponentLayout (Region)
    -----------------MessageLovInpurt
    -----------------MessageChoice(Item)
    -----------------MessageTextInput
    -----------------MessageLayout
    ----------HideShow (Region)
    -----------------MessageLovInpurt(Item)
    -----------------MessageChoice(Item)
    -----------------MessageTextInput(Item)
    -----------MessageComponentLayout (Region)
    -----------------MessageLayout
    ------------------------SubmitButton(ID:SearchBtn)
    ------------------------SubmitButton(ID:ClearBtn, fires partial action named clear)
    -----------header(Region)
    I am not able to capture the event fired by the button ClearBtn in the controller of the pagelayout.....
    The two methods I used as follows aren't worked:
    if ("clear".equals(pageContext.getParameter(OAWebBeanConstants.EVENT_PARAM)))
    if (pageContext.getParameter("ClearBtn") != null) {
    what should i do in order to capture the button event in the pageLayout Controller
    Thanks in advance
    Mandy
    Edited by: user8898100 on 2011-8-2 上午7:49

    Mandy,
    Its really strange that its not able to caputure the event in CO.
    Below is the way in which we handle to Submit action at CO level.
    /Check whether ClearBtn is same in case too.
    if(pageContext.getParameter("ClearBtn")!=null){
    System.out.println("Inside the Clear Btn Action");
    Regards,
    Gyan

  • How to Capture Button event on TrainBean navigation

    Hi All
    i m being required to capture a button event in train bean Navigation, i m doing customization in Iexpense Module,here in Create IExpenseReport i need to capture the events of Remove,Return etc.how is it possible any clue would be very helpful.
    Thanx
    Pratap

    try this..
    if (GOTO_PARAM.equals(pageContext.getParameter(EVENT_PARAM))
    "NavBar".equals(pageContext.getParameter(SOURCE_PARAM))
    // This condition checks whether the event is raised from Navigation bar
    // and Next or Back button in navigation bar is invoked.
    int target = Integer.parseInt(pageContext.getParameter(VALUE_PARAM));
    // We use the parameter "value" to tell use the number of
    // the page the user wants to visit.
    String targetPage;
    switch(target)
    case 1: targetPage = "/oracle/apps/dem/employee/webui/EmpDescPG"; break;
    case 2: targetPage = "/oracle/apps/dem/employee/webui/EmpAssignPG"; break;
    case 3: targetPage = "/oracle/apps/dem/employee/webui/EmpReviewPG"; break;
    default: throw new OAException("ICX", "FWK_TBX_T_EMP_FLOW_ERROR");
    HashMap pageParams = new HashMap(2);
    pageParams.put("empStep", new Integer(target));
    pageContext.setForwardURL("OA.jsp?page=" + targetPage,
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    pageParams,
    true, // Retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO, // Do not display breadcrumbs
    OAWebBeanConstants.IGNORE_MESSAGES);
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • Disk Utility says "drive can't be repaired, disk and restore your backed up files."

    My Mac Book Pro froze yesterday and I had to force restart it. It had been showing me messages that my hard drive disk was full for a while and I was in the middle of transferring files to my external hard drive and I accidentally put a huge large fi

  • Material prices vendor wise

    Dear all , i need material , plant , vendor , price (buying price / processing charge) . is there any report for the same ( excluding ME1p) Pl guide

  • Create .jspx page to add users using ADF security.

    Hello, I'm using JDeveloper 11.1.1.3. I've created a login page (form based) with different users and roles using ADF Security. I'm able to successfully login/logout through the users and get redirected to the home page. However, i'm asked to create

  • Table COEP - OBJNR

    Dear Gurus, I want to ask about Object Number - OBJNR in table COEP. As we know OBJNR is 22 digit char. CMIIW, this object is represent: Controlling Area (digit 3-6), Cost Center (digit 7-16 ) and Activity Type (digit 17-22). How about digit 1-2? Is

  • Backing up during import with Vista

    When I import my images and enable the ":backup to second location"  feature, the backup always fails.  The import to the main disk is just fine, but afterwards I get a message saying "the following files could not be backed up...."   all of them.  I