How to get event when app is minimized.

How to get event when app is minimized in only windows app, not phone version.

Hi,
Suspending Event will be called when a windows store app is minimized. It will not hit the Suspending Event when minimised while debugging, So you need to trigger it manually from the VisualStudio Toolbar.
Also Read
Application Lifecycle for windows apps
Pradeep AJ

Similar Messages

  • How to get event when any library object added to indesign doc?

    I want to do some operation when any library object is added to doc. So please tell me how to get event when any library object is added to the doc. better provide some code snippet.

    Daves61,
    I need to clarify what kind of event you're interested in.
    1. When you click once on page/spead widget in the Pages panel and only widget becomes selected. The layout window remains unchanged. OR
    2. When you doubleclick on page/spread widget the selected master spread appears in the layout window.
    In the first case you work with Pages panel.
    Have a look to file PageTransitionsPanelObserver.cpp from SDK. 
    PageTransitionsPanelObserver::LazyUpdate()
    In the second case you work with Layout window.

  • How to get event press ESC when plugin's GUI is flashUI

    Hi all
    I implement my plugin use GUI is FlashUI (CSExentersion suite).
    when I pressed ESC. My GUI close imidately.
    I want to check whe n ESC press. But I can't get event pressed key for ESC
    I think that my GUI close from Illustrator. But I don't know how to get event press ESC.
    Thank for your help.

    Put a trace() to print the keyCode into the stage's keydown handler and run your extension in debug mode of flash builder, you can check whether ESC is pressed or not.
    However, I don't know how to prevent extension from closing neither.

  • Cant Figure out how to get out of App's like Twitter

    I just got my new Q5 (Traded in Curve)  \i figured out most of the phone but have not been able to figure out how to get out of App's like Twitter or any browser Apps once \i am in there.  I used to have the nice little "back button" on the Curve but no more Back Button on this one  Ive tried swipping every which way but loose with no luck.  Even when I am in my photos, I can figure out how to go back to the main menu (other than to turn the phone off and turn it back on)   Is there a Back button somewhere or is my phone just not working right.  please help
    Solved!
    Go to Solution.

    Hello tomanator
    To close app, swipe up from the bottom of the screen, and tap X at bottom right of each app.
    • Click Likes to appreciate those who helps you
    • If your issue solved, mark the best post in your thread as Solution

  • How to get notified when changes happen on Hyper-V host or VMs

    Is there a way to get notified on Hyper-V host or VM changes? Our intention is to notify the system-administrators on any changes.
    1. How to get notified when new VM is created (or deleted) on Hyper-V.
    2. How to get notified when any memory/CPU/disk is added (or deleted) on any VM(s).
    In general: 
    - Get notified when any changes happens to Hyper-V host.
    - Get notified when any changes happens on any VMs.
    Our target servers are Windows Server(2008, 2008 R2, 2012, and 2012 R2)
    We tried to get the notification using "Event Viewer" on different Windows servers (2008, 2008 R2, 2012, and 2012 R2)
    We were able to get event-logs only on one of our 2012 R2 server as described below on creation/deletion of VMs (on another 2012 R2 server, we did not got any such event, Is there any setting required on host computer to get Hyper-V event-logs in "Event
    Viewer"?)
    Log Name:      Microsoft-Windows-Hyper-V-VMMS-Admin
    Source:        Microsoft-Windows-Hyper-V-VMMS
    Date:          12/18/2014 1:21:45 AM
    Event ID:      13002
    Task Category: None
    Level:         Information
    Keywords:      
    User:          SYSTEM
    Computer:      HPHyper-V.COMPUTERNAME.lab
    Description:
    A new virtual machine 'TestVM' was created. (Virtual machine ID A0FED305-7B1A-4BB5-952C-BA9634ACDA45)
    Log Name:      Microsoft-Windows-Hyper-V-VMMS-Admin
    Source:        Microsoft-Windows-Hyper-V-VMMS
    Date:          12/17/2014 10:57:01 PM
    Event ID:      13003
    Task Category: None
    Level:         Information
    Keywords:      
    User:          SYSTEM
    Computer:      HPHyper-V.COMPUTERNAME.lab
    Description: The virtual machine 'TestVM' was deleted. (Virtual machine ID A0FED305-7B1A-4BB5-952C-BA9634ACDA45)

    Thanks for your reply,
    Just to make it more clear:
    In our environment we have enabled Hyper-V on following Windows servers: 2012 R2, 2012, 2008 R2, 2008. The environment is very dynamic, VMs are getting created and deleted very frequently. Our intention is to get notified by any means on VM creation/deletion,
    currently we are relying on event-logs (we are OK with any different mechanism for such notification if there exists, i,e other than event-logs)
    We were able to get event-logs only on few of our 2012 R2 server on creation/deletion of VMs. On another 2012 R2 server, we did not got any such event (do we need to make some settings on 2012 R2 to get events? If yes, what are those settings).
    Also we are not getting any such event of VM creation/deletion on our Windows Server 2012, 2008, 2008 R2. Is there any setting required on hese host computer to get Hyper-V event-logs in "Event Viewer" for VM creation/deletion?

  • HT204034 How to get an Apple App store account without a credit card?

    Does anyone know how to get an Apple App store account without a credit card?
    When I sign in with my Apple ID it says I did not have an account with the App store, but in order to create one it requires a credit card.
    There is NO None option as some articles show when selecting a credit card.

    Hello SandraLAVixen,
    I understand you would like information on how to use an Apple ID without a credit card. The following article may help:
    Create an iTunes Store, App Store, or iBooks Store account without a credit card or other payment method - Apple Support
    If you already have an Apple ID
    If you've already created your Apple ID, you'll need to add a payment method when you first use it to sign in to the iTunes Store, App Store, or iBooks Store. But you can optionally remove the payment method after you sign in to the store. You won't be asked for a payment method again until you make your first purchase.
    Thank you for contributing to Apple Support Communities.
    Cheers,
    Bobby_D

  • How to get event.columIndex on dragstart (before the actual drag)

    Hi there,
    I would like to know how to get event.columnIndex (ListEvent) when a drag starts within a datagrid.
    I need the index to get the value from a selected cell in a datagrid.
    It works with the itemClick handler (but then I have to click before dragging) on the datagrid but the DragEvent does not have a columIndex for de underlaying datagrid.
    Please advice and thanks.
    Grtz

    The dragStart event is a subclass of a MouseEvent that can be used in
    mouseEventToItemRenderer

  • How to get back iWork apps if I removed them by mistake.

    How to get back iWork apps if I removed them by mistake?
    Note that I bought my mac pro retina in the first week of December 2014. Yosemite, Numbers, Pages and Keynote were already installed. By mistake I removed the three apps by dragging them into trash. If I log into the Appstore, I see that Pages, Numbers and Keynote are not available for free now.
    How do I get them back?
    PS: I want to get the genuine versions without resorting to illegal means or taking advantage of bugs.
    Thanks in advance.

    Basics of File Recovery
    Files in Trash
    If you simply put files in the Trash you can restore them by opening the Trash (left-click on the Trash icon) and drag the files from the Trash to your Desktop or other desired location.  OS X also provides a short-cut to undo the last item moved to the Trash -press COMMAND-Z.
    If you empty the Trash the files are gone. If a program does an immediate delete rather than moving files to the Trash, then the files are gone.  Recovery is possible but you must not allow any additional writes to the hard drive - shut it down. When files are deleted only the directory entries, not the files themselves, is modified. The space occupied by the files has been returned to the system as available for storage, but the files are still on the drive. Writing to the drive will then eventually overwrite the space once occupied by the deleted files in which case the files are lost permanently. Also if you save a file over an existing file of the same name, then the old file is overwritten and cannot be recovered.
    General File Recovery
    If you stop using the drive it's possible to recover deleted files that have not been overwritten by using recovery software such as Data Rescue II, File Salvage or TechTool Pro.  Each of the preceding come on bootable CDs to enable usage without risk of writing more data to the hard drive.  Two free alternatives are Disk Drill and TestDisk.  Look for them and demos at MacUpdate or CNET Downloads.
    The longer the hard drive remains in use and data are written to it, the greater the risk your deleted files will be overwritten.
    Also visit The XLab FAQs and read the FAQ on Data Recovery.

  • How to get sound when my laptop is hooked to my tv w/hdmi cable?

    how to get sound when my laptop is hooked to my tv w/hdmi cable?  it's a hd tv and my mac's os 10.6.8
    tried using an external speaker both w/the computer and then the tv, but neither worked......
    Message was edited by: bevmex

    Hi,
    Open windows Control Panel, open Device Manager and open up Display Devices - make a note of the hardware listed here i.e. ATI, NVidia or Intel.
    Next, connect your notebook via HDMI to your Tv.  Right click the speaker icon in the Taskbar and select Playback Devices.  Left click once ( just to highlight the entry ) the HDMI Output that has the same name as your display adapter and then click the Set Default button - see if you now have audio.
    Regards,
    DP-K
    ****Click the White thumb to say thanks****
    ****Please mark Accept As Solution if it solves your problem****
    ****I don't work for HP****
    Microsoft MVP - Windows Experience

  • My ipod touch got wet and is no longer working - i purchased a new ipod touch and want to know how i get my purchased apps onto my new ipod

    my ipod touch got wet and now is broken - I purchased a new ipod touch and want to know how I get my purchased apps onto my new ipod touch

    To restore app data, the apps have to be in the iTunes library of the computer on which you do the restore. The iPod ackup that iTunes makes does not included synced media like apps and music.
    To redownload iTunes purchases see:
    Downloading past purchases from the App Store, iBookstore, and iTunes Store

  • How to get header when we use CL_GUI_FRONTEND_SERVICES= GUI_DOWNLOAD

    Hi SDN's,
    Can u tell me how to get headers when we download data to excel with using (we are using DBF as file type in the following method )
    CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
    (We can't use GUI_DOWNLOAD)
    Thanks in advance..
    BR

    Hi,
    I m giving u a bdc code i hope ur prob ll be solved.
    *& Report  ZDTK_BDC_LT01
    *& PROGRAME TITLE : LT01
    *& AUTHOR         : D TARUN KUMAR
    *& MM CONSULTANT  : Mr. MRINMOYE CHAKRABORTY
    *& REQUEST NO.    : RD1K901995
    *& TRANSACTION ID : ZLT01
    *& PACKAGE        : ZTARUN
    *& DESCRIPTION : BDC REPORT TO UPLOAD INITIAL STOCK POSTING AND
    *&               STORAGE BINS THROUGH LT01.
    REPORT  ZDTK_BDC_LT01
           no standard page heading line-size 255.
    TYPE-POOLS: TRUXS.
    STRUCTURE DECLARATION
    TYPES : BEGIN OF TY_UPLOAD,
                     LGNUM(3),
                     BETYP(1),
                     BENUM(10),
                    BWLVS(3),
                     MATNR(18),
                    BISMT(18),
                     ANFME(16),
                    WERKS(4),
                    LGORT(4),
                     CHARG(10),
                    LETYP(10),
                    VLTYP(3),
                    VLBER(3),
                    VLPLA(10),
                    VLQNR(10),
                     NLTYP(3),
                    NLBER(3),
                     NLPLA(10),
                    NLQNR(10),
              END OF TY_UPLOAD.
    INTERNALTABLE & WORKAREA DECLARATION
    DATA : T_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD,
           T_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
           T_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL,
           W_UPLOAD TYPE TY_UPLOAD,
           W_BDCDATA TYPE BDCDATA,
           W_BDCMSGCOLL TYPE BDCMSGCOLL,
    GLOBLE DECLARATION
           G_FLNAME TYPE STRING,
           G_MESSAGE(70) TYPE C,
           IT_RAW TYPE TRUXS_T_TEXT_DATA,
    GLOBLE DECLARATION
           WA_OPT TYPE CTU_PARAMS.
           WA_OPT-UPDMODE = 'A'.
           WA_OPT-DEFSIZE = 'X'.
           WA_OPT-DISMODE = 'A'.
    SLECTION SCREEN DECLARATION
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN SKIP 2.
    PARAMETER : P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN : END OF BLOCK B1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    PERFORM GET_FILENAME.
    START-OF-SELECTION.
    PERFORM UPLOAD_DATA.
    *PERFORM GET_FINAL.
    *PERFORM GET_MIGO.
    PERFORM SESSION.
    *PERFORM TEST.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR W_BDCDATA.
      W_BDCDATA-PROGRAM  = PROGRAM.
      W_BDCDATA-DYNPRO   = DYNPRO.
      W_BDCDATA-DYNBEGIN = 'X'.
      APPEND W_BDCDATA TO T_BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
    IF FVAL <> NODATA.
        CLEAR W_BDCDATA.
        W_BDCDATA-FNAM = FNAM.
        W_BDCDATA-FVAL = FVAL.
        APPEND W_BDCDATA TO T_BDCDATA.
    ENDIF.
    ENDFORM.
    *&      Form  GET_FILENAME
          TEXT
    FORM GET_FILENAME .
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
       PROGRAM_NAME        = SYST-CPROG
       DYNPRO_NUMBER       = SYST-DYNNR
       FIELD_NAME          = 'P_FILE'
    IMPORTING
       FILE_NAME           = P_FILE
    ENDFORM.                    " GET_FILENAME
    *&      Form  UPLOAD_DATA
          text
    form UPLOAD_DATA .
    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
      EXPORTING
      I_FIELD_SEPERATOR          =
        I_LINE_HEADER              = 'X'
        I_TAB_RAW_DATA             = IT_RAW
        I_FILENAME                 = P_FILE      "WORK TABLE
      TABLES
        I_TAB_CONVERTED_DATA       = T_UPLOAD[]    "ACTUAL DATA
    EXCEPTIONS
       CONVERSION_FAILED          = 1
       OTHERS                     = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endform.                    " UPLOAD_DATA
    *&      Form  SESSION
          text
    FORM SESSION .
    *sort t_upload by bismt.
    LOOP AT T_UPLOAD INTO W_UPLOAD.
    REFRESH T_BDCDATA.
    *CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
       input         = W_UPLOAD-CHARG
    IMPORTING
      OUTPUT        = W_UPLOAD-CHARG .
    *CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
       input         = W_UPLOAD-VLBER
    IMPORTING
      OUTPUT        = W_UPLOAD-VLBER .
    *CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
       input         = W_UPLOAD-NLTYP
    IMPORTING
      OUTPUT        = W_UPLOAD-NLTYP .
    *CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
       input         = W_UPLOAD-NLBER
    IMPORTING
      OUTPUT        = W_UPLOAD-NLBER .
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input         = W_UPLOAD-CHARG
    IMPORTING
       OUTPUT        = W_UPLOAD-CHARG .
    DATA : BWLVS(3),
           LGORT(4),
           WERKS(4),
           CHARG(10),
           LETYP(10),
           VLTYP(3),
           VLBER(3),
           VLPLA(10),
           VLQNR(10),
           NLTYP(3),
           NLBER(3),
           NLQNR(10).
    DATA : W_MATNR(18).
    *SELECT SINGLE MATNR FROM MARA INTO W_MATNR
                      WHERE BISMT = W_UPLOAD-BISMT.
    BWLVS = '999'.
    LGORT = '3500'.
    WERKS = '1030'.
    LETYP = 'E1'.
    VLTYP = '998'.
    VLBER = '001'.
    VLPLA = 'AUFNAHME'.
    NLTYP = '354'. "(packaging material)
    *NLTYP = '353'. "(spareparts material)
    NLBER = '001'.
    *include bdcrecx1.
    *start-of-selection.
    *perform open_group.
    perform bdc_dynpro      using 'SAPML03T' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LTAP-CHARG'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LTAK-LGNUM'
                                  W_UPLOAD-LGNUM.  "'350'.
    perform bdc_field       using 'LTAK-BENUM'
                                  W_UPLOAD-BENUM.  "'1000000000'.
    perform bdc_field       using 'LTAK-BETYP'
                                  W_UPLOAD-BETYP.  "'P'.
    perform bdc_field       using 'LTAK-BWLVS'  BWLVS.    "'999'.
    perform bdc_field       using 'LTAP-MATNR'
                                  W_upload-MATNR.    "'40000009'.
    perform bdc_field       using 'RL03T-ANFME'
                                  W_UPLOAD-ANFME.    "'1,000'.
    perform bdc_field       using 'LTAP-WERKS' WERKS.    "'1030'.
    perform bdc_field       using 'LTAP-CHARG'
                                  w_upload-charg.
    perform bdc_dynpro      using 'SAPML03T' '0102'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LTAP-NLPLA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RL03T-ANFME'
                                  W_UPLOAD-ANFME.    "'1,000'.
    *perform bdc_field       using 'LTAP-ALTME'
                                 'KG'.
    perform bdc_field       using 'LTAP-LETYP' LETYP.    "'E1'.
    *perform bdc_field       using 'LTAP-CHARG' W_UPLOAD-CHARG.    "'0000000101'.
    perform bdc_field       using 'LTAP-VLTYP' VLTYP.    "'998'.
    perform bdc_field       using 'LTAP-VLBER' VLBER.    "'001'.
    perform bdc_field       using 'LTAP-VLPLA' VLPLA.    "'AUFNAHME'.
    perform bdc_field       using 'LTAP-NLTYP'
                                   W_UPLOAD-NLTYP.       "'351'.
    perform bdc_field       using 'LTAP-NLBER' NLBER.    "'001'.
    perform bdc_field       using 'LTAP-NLPLA'
                                  W_UPLOAD-NLPLA.    "'01 00 01'.
    *perform bdc_transaction using 'LT01'.
    *perform close_group.
    CALL TRANSACTION 'LT01' USING T_BDCDATA
                            MODE 'A'
                          UPDATE 'A'
                            OPTIONS FROM WA_OPT
         MESSAGES INTO T_BDCMSGCOLL.
    IF SY-SUBRC <> 0.
    READ TABLE T_BDCMSGCOLL INTO W_BDCMSGCOLL INDEX 1.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        = SY-MSGID
            LANG      = 'EN'
            NO        = SY-MSGNO
            V1        = SY-MSGV1
            V2        = SY-MSGV2
            V3        = SY-MSGV3
            V4        = SY-MSGV4
          IMPORTING
            MSG       = G_MESSAGE
          EXCEPTIONS
            NOT_FOUND = 1
            OTHERS    = 2.
        IF SY-SUBRC = 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          WRITE : / W_upload-matnr ,'-----' , G_MESSAGE.
          REFRESH T_BDCMSGCOLL.
        ENDIF.
        ENDIF.
    *clear : w_matnr, w_upload.
    ENDLOOP.
    ENDFORM.                    " SESSION

  • How to Process event when select ALV mark ?

    Hi.
    The Screen have ALV data.
    How to Process event when select ALV mark ?
    Regards.
    LY.

    EVENT
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 0
        IMPORTING
          et_events       = it_events[]
        EXCEPTIONS
          list_type_wrong = 1
          OTHERS          = 2.
    IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      READ TABLE it_events WITH KEY name = slis_ev_top_of_page
                                    INTO it_events.
      IF sy-subrc = 0.
        MOVE t_formname_top_of_page TO it_events-form.
        APPEND it_events.
      ENDIF.
    ALV
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat        = it_fieldcat
          it_events          = it_events[]
          i_callback_program = sy-repid
          is_layout          = gs_layout
          i_save             = g_save
          is_variant         = gx_variant
        TABLES
          t_outtab           = i_data[].

  • How to download maverick when app store thinks it is allready downloadet ?

    how to download maverick when app store thinks it is allready downloadet ?

    It won't be available from Amazon anytime soon.
    Install the Mac OS X 10.6.8 Update Combo
    Then restart your Mac.
    Then click your Apple icon top left in your screen then click App Store.

  • How to get group when the data source from system instead of UME database

    Hig guys,
    How to get group when the data source comes from backend system instead of UME database?
    I tried to use
    IUMPrincipal RefGroup = WPUMFactory.getGroupFactory().getGroup(groupName);
    But I was not able to get the group. But in "UserAdministrator", I can find this groupName.
    Which kind of API can I use?
    Thanks in advance!
    Regards,
    Liying
    Message was edited by:
            Liying Wang

    Ok,
    try this:
    com.sapportals.portal.security.usermanagement.IGroupFactory ep5GroupFactory = userManagementService.getGroupFactory();
    IGroupFactory groupFactory = UMFactory.getGroupFactory();
    com.sap.security.api.IGroup group = groupFactory.getGroupByUniqueName(groupName);
    IUMPrincipal ep5Principal = ep5GroupFactory.getEP5Group(group);
    This should do the trick,
    Romano
    PS: and thanks for the stars!

  • How to get value when OAMessageLovInputBean Change

    How to get value when OAMessageLovInputBean Change
    I want to get lov value atfer user select value return page

    As you wanna get the value in process form request, get the value from the VO column attached to the bean, if not you can attach a tranient Vo attribute!
    --Mukul                                                                                                                                                                                                                                                                                                                                                                               

Maybe you are looking for

  • Help. Need to remove one of the listed QuickTimes from the "open with" menu

    When I bring up the 'Open with' menu on an audio file I have QuickTime Player (7.3.1) and just below that I have QuickTime Player (7.2.1). I would like to remove the 7.2.1 listing from this menu. There is on one version on my computer (7.3.1). The la

  • Replacing Comma in the field values

    Hi Friends, I have some data like " ,1,2,3,4 " in my table I want to remove the first comma alone and to list the data values. How can i do this?

  • ITUNES MUSIC LOADED ON AN IPAD2

    IS THERE A BLUETOOTH DEVICE TAT I CAN USE TO CONTROL ITUNES MUSIC LOADED ON AN IPAD2  ??

  • FM/BAPI needed to change document status

    Hi, I have a requirement wherein i need to change the document status field in table DRAW. I have document number and document type as input, based on a condition i will be changing the document status. is there any FM or BAPI available to change the

  • Uploading data using portals

    Hello Gurus,      in my program i am using 'KCD_EXCEL_OLE_TO_INT_CONVERT' as a function module to upload the file and it is working very good when i am uploading the data through GUI  and now i am trying to upload the data using portal it is not work