Works well, thanks! And sorry, Christian, F8 is 100 (&h64) on Windows too. &h77 (119) is "End" key.
Jean-Luc Arnaud Le 09/01/2015 11:30, Marnaud a écrit : > Le 9 janv. 2015 à 11:19, Jean-Luc Arnaud <jean-...@cdmultimedia.fr> a écrit: > >> Yes, of course! >> Your help is greatly appreciated. >> >> May I know where these codes could be found? In the future, I could need >> codes for other functions keys. >> >> Many thanks. > Well, some years ago, I made my own app for that. On a window, put a listbox > with 3 columns and an heading (“Key code”, “Key” and “Key ascii”) and a timer > (period=1, mode=2). In the open event (in my example, in the window), have > this: > dim i As integer > dim s As String > > //Fill the list with every key (for searching manually): > for i=0 to 127 //Cover all standard keys on the keyboard > ListMain.AddRow str(i) > s=Keyboard.KeyName(i) > ListMain.Cell(i,1)=s > if len(s)=1 then //That key produces a character, so it's ASCII value is > known > ListMain.Cell(i,2)=str(asc(s)) > else //For other keys (backspace, tab, etc.), (1) it's better to know > its key code (sending the ASCII value has no sense) and (2), it would mean > rewriting. > ListMain.Cell(i,2)="?" > end if > Next > > In the timer.Action: > dim i As integer > dim j As integer > > //Check which keys are pressed (would fail if the key is pressed way too > fast, but will that happen?) > for i=0 to 126 > if Keyboard.AsyncKeyDown(i) then > j=FindKeycode(i) //See below; looks for the entry of “i” in the list > (it would be odd it's not in the list) > if j=-1 then //Well, it's not in the list (?) so add it > ListMain.AddRow str(i) > j=ListMain.ListCount-1 > ListMain.Cell(j,1)=Keyboard.KeyName(i) > ListMain.Cell(j,2)=str(asc(Keyboard.KeyName(i))) > end if > ListMain.ListIndex=j //Select the corresponding row > do > if not Keyboard.AsyncKeyDown(i) then Exit //Wait until the key is > freed > Loop > end if > Next > > Function FindKeycode(KeyCode As integer) As integer > dim i As integer > > if ListMain.ListCount=0 then Return -1 > for i=0 to ListMain.ListCount-1 > if ListMain.Cell(i,0)=str(KeyCode) then Return i > Next > Return -1 > End Function > > (I could send you the project or app, but it's more complicated; tell me if > you found something to improve). > _______________________________________________ > Mbsplugins_monkeybreadsoftware.info mailing list > mbsplugins@monkeybreadsoftware.info > https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info > > _______________________________________________ Mbsplugins_monkeybreadsoftware.info mailing list mbsplugins@monkeybreadsoftware.info https://ml01.ispgateway.de/mailman/listinfo/mbsplugins_monkeybreadsoftware.info