首页 > Windows开发 > 详细

c#中调用windows api (按键精灵)

时间:2016-03-20 00:38:23      阅读:378      评论:0      收藏:0      [点我收藏+]
调用windows api要添加命名空间 
using System.Runtime.InteropServices;
先声明调用函数(函数前要添加)
  1. [DllImport("user32.dll")]
  2. static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraLnfo);
在使用的地方可以直接调用mouse_event(,,,);

MouseEventFlag 的枚举:
  1. public enum MouseEventFlag : uint {
  2. Move = 0x0001,
  3. LeftDown = 0x0002,
  4. LeftUp = 0x0004,
  5. RightDown = 0x0080,
  6. RightUp = 0x0010,
  7. MiddleDown = 0x0020,
  8. MiddleUp = 0x0040,
  9. XDown = 0x0080,
  10. XUp = 0x0100,
  11. Wheel = 0x0800,
  12. VirtualDesk = 0x4000,
  13. Absolute = 0x8000
  14. }
其中添加Absolute之后dx  dy 变为相对坐标

键盘操作类似:
  1. [DllImport("user32.dll")]
  2. static extern void keybd_event(byte bVK,int Bscan,int dwFlags,int dwExtraInfo);
调用位置
  1. keybd_event((byte)(67), 0, 0, 0);

组合按键:

  1. [DllImport("user32.dll")]
  2. private static extern void keybd_event(byte bVk, byte bSCan, int dwFlags, int dwExtraInfo);
  3. //对dwFlags,KEYEVENTF_KEYUP 表示弹起,0按下,KEYEVENTF_EXTENDEDKEY表示一次单机()
  4. (? 0表示按下 2 表示抬起)

  1. //模拟实现Ctrl+O操作
  2. keybd(code,0,0,0);
  3. keybd_event(byte(0),0,KEYEVENTF_EXRENDEDKEY,0)
  4. keybd_event(key,0,KEYEVENTF_KEYUP,0); //中间位置为
  5. 1
  6. 1
  7. 另一种
  8. keybd_event(key.controlkey,0,0,0);
  9. keybd_envet(key.C,0,0,0);
  10. keybd_event(key.controlKey,0,2,0);
  11. keybd_event(key.C,0,2,0);

键盘按键枚举:
  1. /// <summary>
  2. /// 虚拟按键代码
  3. /// 参考于 http://msdn.microsoft.com/zh-cn/library/dd375731(v=vs.85).aspx
  4. /// </summary>
  5. public enum VirtualKeyCode
  6. {
  7. /// <summary>
  8. /// Left mouse button
  9. /// </summary>
  10. Left_mouse_button = 0x01,
  11. /// <summary>
  12. /// Right mouse button
  13. /// </summary>
  14. Right_mouse_button = 0x02,
  15. /// <summary>
  16. /// Control-break processing
  17. /// </summary>
  18. Control_break_processing = 0x03,
  19. /// <summary>
  20. /// Middle mouse button (three-button mouse)
  21. /// </summary>
  22. Middle_mouse_button = 0x04,
  23. /// <summary>
  24. /// X1 mouse button
  25. /// </summary>
  26. X1_mouse_button = 0x05,
  27. /// <summary>
  28. /// X2 mouse button
  29. /// </summary>
  30. X2_mouse_button = 0x06,
  31. /// <summary>
  32. /// Undefined
  33. /// </summary>
  34. Undefined1 = 0x07,
  35. /// <summary>
  36. /// BACKSPACE key
  37. /// </summary>
  38. BACKSPACE_key = 0x08,
  39. /// <summary>
  40. /// TAB key
  41. /// </summary>
  42. TAB_key = 0x09,
  43. /// <summary>
  44. /// CLEAR key
  45. /// </summary>
  46. CLEAR_key = 0x0C,
  47. /// <summary>
  48. /// ENTER key
  49. /// </summary>
  50. ENTER_key = 0x0D,
  51. /// <summary>
  52. /// SHIFT key
  53. /// </summary>
  54. SHIFT_key = 0x10,
  55. /// <summary>
  56. /// CTRL key
  57. /// </summary>
  58. CTRL_key = 0x11,
  59. /// <summary>
  60. /// ALT key
  61. /// </summary>
  62. ALT_key = 0x12,
  63. /// <summary>
  64. /// PAUSE key
  65. /// </summary>
  66. PAUSE_key = 0x13,
  67. /// <summary>
  68. /// CAPS LOCK key
  69. /// </summary>
  70. CAPS_LOCK_key = 0x14,
  71. /// <summary>
  72. /// IME Kana mode
  73. /// </summary>
  74. IME_Kana_mode = 0x15,
  75. /// <summary>
  76. /// IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
  77. /// </summary>
  78. IME_Hanguel_mode = 0x15,
  79. /// <summary>
  80. /// IME Hangul mode
  81. /// </summary>
  82. IME_Hangul_mode = 0x15,
  83. /// <summary>
  84. /// Undefined
  85. /// </summary>
  86. Undefined2 = 0x16,
  87. /// <summary>
  88. /// IME Junja mode
  89. /// </summary>
  90. IME_Junja_mode = 0x17,
  91. /// <summary>
  92. /// IME final mode
  93. /// </summary>
  94. IME_final_mode = 0x18,
  95. /// <summary>
  96. /// IME Hanja mode
  97. /// </summary>
  98. IME_Hanja_mode = 0x19,
  99. /// <summary>
  100. /// IME Kanji mode
  101. /// </summary>
  102. IME_Kanji_mode = 0x19,
  103. /// <summary>
  104. /// Undefined
  105. /// </summary>
  106. Undefined = 0x1A,
  107. /// <summary>
  108. /// ESC key
  109. /// </summary>
  110. ESC_key = 0x1B,
  111. /// <summary>
  112. /// IME convert
  113. /// </summary>
  114. IME_convert = 0x1C,
  115. /// <summary>
  116. /// IME nonconvert
  117. /// </summary>
  118. IME_nonconvert = 0x1D,
  119. /// <summary>
  120. /// IME accept
  121. /// </summary>
  122. IME_accept = 0x1E,
  123. /// <summary>
  124. /// IME mode change request
  125. /// </summary>
  126. IME_mode_change_request = 0x1F,
  127. /// <summary>
  128. /// SPACEBAR
  129. /// </summary>
  130. SPACEBAR = 0x20,
  131. /// <summary>
  132. /// PAGE UP key
  133. /// </summary>
  134. PAGE_UP_key = 0x21,
  135. /// <summary>
  136. /// PAGE DOWN key
  137. /// </summary>
  138. PAGE_DOWN_key = 0x22,
  139. /// <summary>
  140. /// END key
  141. /// </summary>
  142. END_key = 0x23,
  143. /// <summary>
  144. /// HOME key
  145. /// </summary>
  146. HOME_key = 0x24,
  147. /// <summary>
  148. /// LEFT ARROW key
  149. /// </summary>
  150. LEFT_ARROW_key = 0x25,
  151. /// <summary>
  152. /// UP ARROW key
  153. /// </summary>
  154. UP_ARROW_key = 0x26,
  155. /// <summary>
  156. /// RIGHT ARROW key
  157. /// </summary>
  158. RIGHT_ARROW_key = 0x27,
  159. /// <summary>
  160. /// DOWN ARROW key
  161. /// </summary>
  162. DOWN_ARROW_key = 0x28,
  163. /// <summary>
  164. /// SELECT key
  165. /// </summary>
  166. SELECT_key = 0x29,
  167. /// <summary>
  168. /// PRINT key
  169. /// </summary>
  170. PRINT_key = 0x2A,
  171. /// <summary>
  172. /// EXECUTE key
  173. /// </summary>
  174. EXECUTE_key = 0x2B,
  175. /// <summary>
  176. /// PRINT SCREEN key
  177. /// </summary>
  178. PRINT_SCREEN_key = 0x2C,
  179. /// <summary>
  180. /// INS key
  181. /// </summary>
  182. INS_key = 0x2D,
  183. /// <summary>
  184. /// DEL key
  185. /// </summary>
  186. DEL_key = 0x2E,
  187. /// <summary>
  188. /// HELP key
  189. /// </summary>
  190. HELP_key = 0x2F,
  191. /// <summary>
  192. /// 0 key
  193. /// </summary>
  194. _0_key = 0x30,
  195. /// <summary>
  196. /// 1 key
  197. /// </summary>
  198. _1_key = 0x31,
  199. /// <summary>
  200. /// 2 key
  201. /// </summary>
  202. _2_key = 0x32,
  203. /// <summary>
  204. /// 3 key
  205. /// </summary>
  206. _3_key = 0x33,
  207. /// <summary>
  208. /// 4 key
  209. /// </summary>
  210. _4_key = 0x34,
  211. /// <summary>
  212. /// 5 key
  213. /// </summary>
  214. _5_key = 0x35,
  215. /// <summary>
  216. /// 6 key
  217. /// </summary>
  218. _6_key = 0x36,
  219. /// <summary>
  220. /// 7 key
  221. /// </summary>
  222. _7_key = 0x37,
  223. /// <summary>
  224. /// 8 key
  225. /// </summary>
  226. _8_key = 0x38,
  227. /// <summary>
  228. /// 9 key
  229. /// </summary>
  230. _9_key = 0x39,
  231. /// <summary>
  232. /// A key
  233. /// </summary>
  234. A_key = 0x41,
  235. /// <summary>
  236. /// B key
  237. /// </summary>
  238. B_key = 0x42,
  239. /// <summary>
  240. /// C key
  241. /// </summary>
  242. C_key = 0x43,
  243. /// <summary>
  244. /// D key
  245. /// </summary>
  246. D_key = 0x44,
  247. /// <summary>
  248. /// E key
  249. /// </summary>
  250. E_key = 0x45,
  251. /// <summary>
  252. /// F key
  253. /// </summary>
  254. F_key = 0x46,
  255. /// <summary>
  256. /// G key
  257. /// </summary>
  258. G_key = 0x47,
  259. /// <summary>
  260. /// H key
  261. /// </summary>
  262. H_key = 0x48,
  263. /// <summary>
  264. /// I key
  265. /// </summary>
  266. I_key = 0x49,
  267. /// <summary>
  268. /// J key
  269. /// </summary>
  270. J_key = 0x4A,
  271. /// <summary>
  272. /// K key
  273. /// </summary>
  274. K_key = 0x4B,
  275. /// <summary>
  276. /// L key
  277. /// </summary>
  278. L_key = 0x4C,
  279. /// <summary>
  280. /// M key
  281. /// </summary>
  282. M_key = 0x4D,
  283. /// <summary>
  284. /// N key
  285. /// </summary>
  286. N_key = 0x4E,
  287. /// <summary>
  288. /// O key
  289. /// </summary>
  290. O_key = 0x4F,
  291. /// <summary>
  292. /// P key
  293. /// </summary>
  294. P_key = 0x50,
  295. /// <summary>
  296. /// Q key
  297. /// </summary>
  298. Q_key = 0x51,
  299. /// <summary>
  300. /// R key
  301. /// </summary>
  302. R_key = 0x52,
  303. /// <summary>
  304. /// S key
  305. /// </summary>
  306. S_key = 0x53,
  307. /// <summary>
  308. /// T key
  309. /// </summary>
  310. T_key = 0x54,
  311. /// <summary>
  312. /// U key
  313. /// </summary>
  314. U_key = 0x55,
  315. /// <summary>
  316. /// V key
  317. /// </summary>
  318. V_key = 0x56,
  319. /// <summary>
  320. /// W key
  321. /// </summary>
  322. W_key = 0x57,
  323. /// <summary>
  324. /// X key
  325. /// </summary>
  326. X_key = 0x58,
  327. /// <summary>
  328. /// Y key
  329. /// </summary>
  330. Y_key = 0x59,
  331. /// <summary>
  332. /// Z key
  333. /// </summary>
  334. Z_key = 0x5A,
  335. /// <summary>
  336. /// Left Windows key (Natural keyboard)
  337. /// </summary>
  338. Left_Windows_key = 0x5B,
  339. /// <summary>
  340. /// Right Windows key (Natural keyboard)
  341. /// </summary>
  342. Right_Windows_key = 0x5C,
  343. /// <summary>
  344. /// Applications key (Natural keyboard)
  345. /// </summary>
  346. Applications_key = 0x5D,
  347. /// <summary>
  348. /// Reserved
  349. /// </summary>
  350. Reserved1 = 0x5E,
  351. /// <summary>
  352. /// Computer Sleep key
  353. /// </summary>
  354. Computer_Sleep_key = 0x5F,
  355. /// <summary>
  356. /// Numeric keypad 0 key
  357. /// </summary>
  358. Numeric_keypad_0_key = 0x60,
  359. /// <summary>
  360. /// Numeric keypad 1 key
  361. /// </summary>
  362. Numeric_keypad_1_key = 0x61,
  363. /// <summary>
  364. /// Numeric keypad 2 key
  365. /// </summary>
  366. Numeric_keypad_2_key = 0x62,
  367. /// <summary>
  368. /// Numeric keypad 3 key
  369. /// </summary>
  370. Numeric_keypad_3_key = 0x63,
  371. /// <summary>
  372. /// Numeric keypad 4 key
  373. /// </summary>
  374. Numeric_keypad_4_key = 0x64,
  375. /// <summary>
  376. /// Numeric keypad 5 key
  377. /// </summary>
  378. Numeric_keypad_5_key = 0x65,
  379. /// <summary>
  380. /// Numeric keypad 6 key
  381. /// </summary>
  382. Numeric_keypad_6_key = 0x66,
  383. /// <summary>
  384. /// Numeric keypad 7 key
  385. /// </summary>
  386. Numeric_keypad_7_key = 0x67,
  387. /// <summary>
  388. /// Numeric keypad 8 key
  389. /// </summary>
  390. Numeric_keypad_8_key = 0x68,
  391. /// <summary>
  392. /// Numeric keypad 9 key
  393. /// </summary>
  394. Numeric_keypad_9_key = 0x69,
  395. /// <summary>
  396. /// Multiply key
  397. /// </summary>
  398. Multiply_key = 0x6A,
  399. /// <summary>
  400. /// Add key
  401. /// </summary>
  402. Add_key = 0x6B,
  403. /// <summary>
  404. /// Separator key
  405. /// </summary>
  406. Separator_key = 0x6C,
  407. /// <summary>
  408. /// Subtract key
  409. /// </summary>
  410. Subtract_key = 0x6D,
  411. /// <summary>
  412. /// Decimal key
  413. /// </summary>
  414. Decimal_key = 0x6E,
  415. /// <summary>
  416. /// Divide key
  417. /// </summary>
  418. Divide_key = 0x6F,
  419. /// <summary>
  420. /// F1 key
  421. /// </summary>
  422. F1_key = 0x70,
  423. /// <summary>
  424. /// F2 key
  425. /// </summary>
  426. F2_key = 0x71,
  427. /// <summary>
  428. /// F3 key
  429. /// </summary>
  430. F3_key = 0x72,
  431. /// <summary>
  432. /// F4 key
  433. /// </summary>
  434. F4_key = 0x73,
  435. /// <summary>
  436. /// F5 key
  437. /// </summary>
  438. F5_key = 0x74,
  439. /// <summary>
  440. /// F6 key
  441. /// </summary>
  442. F6_key = 0x75,
  443. /// <summary>
  444. /// F7 key
  445. /// </summary>
  446. F7_key = 0x76,
  447. /// <summary>
  448. /// F8 key
  449. /// </summary>
  450. F8_key = 0x77,
  451. /// <summary>
  452. /// F9 key
  453. /// </summary>
  454. F9_key = 0x78,
  455. /// <summary>
  456. /// F10 key
  457. /// </summary>
  458. F10_key = 0x79,
  459. /// <summary>
  460. /// F11 key
  461. /// </summary>
  462. F11_key = 0x7A,
  463. /// <summary>
  464. /// F12 key
  465. /// </summary>
  466. F12_key = 0x7B,
  467. /// <summary>
  468. /// F13 key
  469. /// </summary>
  470. F13_key = 0x7C,
  471. /// <summary>
  472. /// F14 key
  473. /// </summary>
  474. F14_key = 0x7D,
  475. /// <summary>
  476. /// F15 key
  477. /// </summary>
  478. F15_key = 0x7E,
  479. /// <summary>
  480. /// F16 key
  481. /// </summary>
  482. F16_key = 0x7F,
  483. /// <summary>
  484. /// F17 key
  485. /// </summary>
  486. F17_key = 0x80,
  487. /// <summary>
  488. /// F18 key
  489. /// </summary>
  490. F18_key = 0x81,
  491. /// <summary>
  492. /// F19 key
  493. /// </summary>
  494. F19_key = 0x82,
  495. /// <summary>
  496. /// F20 key
  497. /// </summary>
  498. F20_key = 0x83,
  499. /// <summary>
  500. /// F21 key
  501. /// </summary>
  502. F21_key = 0x84,
  503. /// <summary>
  504. /// F22 key
  505. /// </summary>
  506. F22_key = 0x85,
  507. /// <summary>
  508. /// F23 key
  509. /// </summary>
  510. F23_key = 0x86,
  511. /// <summary>
  512. /// F24 key
  513. /// </summary>
  514. F24_key = 0x87,
  515. /// <summary>
  516. /// NUM LOCK key
  517. /// </summary>
  518. NUM_LOCK_key = 0x90,
  519. /// <summary>
  520. /// SCROLL LOCK key
  521. /// </summary>
  522. SCROLL_LOCK_key = 0x91,
  523. /// <summary>
  524. /// Left SHIFT key
  525. /// </summary>
  526. Left_SHIFT_key = 0xA0,
  527. /// <summary>
  528. /// Right SHIFT key
  529. /// </summary>
  530. Right_SHIFT_key = 0xA1,
  531. /// <summary>
  532. /// Left CONTROL key
  533. /// </summary>
  534. Left_CONTROL_key = 0xA2,
  535. /// <summary>
  536. /// Right CONTROL key
  537. /// </summary>
  538. Right_CONTROL_key = 0xA3,
  539. /// <summary>
  540. /// Left MENU key
  541. /// </summary>
  542. Left_MENU_key = 0xA4,
  543. /// <summary>
  544. /// Right MENU key
  545. /// </summary>
  546. Right_MENU_key = 0xA5,
  547. /// <summary>
  548. /// Browser Back key
  549. /// </summary>
  550. Browser_Back_key = 0xA6,
  551. /// <summary>
  552. /// Browser Forward key
  553. /// </summary>
  554. Browser_Forward_key = 0xA7,
  555. /// <summary>
  556. /// Browser Refresh key
  557. /// </summary>
  558. Browser_Refresh_key = 0xA8,
  559. /// <summary>
  560. /// Browser Stop key
  561. /// </summary>
  562. Browser_Stop_key = 0xA9,
  563. /// <summary>
  564. /// Browser Search key
  565. /// </summary>
  566. Browser_Search_key = 0xAA,
  567. /// <summary>
  568. /// Browser Favorites key
  569. /// </summary>
  570. Browser_Favorites_key = 0xAB,
  571. /// <summary>
  572. /// Browser Start and Home key
  573. /// </summary>
  574. Browser_Start_and_Home_key = 0xAC,
  575. /// <summary>
  576. /// Volume Mute key
  577. /// </summary>
  578. Volume_Mute_key = 0xAD,
  579. /// <summary>
  580. /// Volume Down key
  581. /// </summary>
  582. Volume_Down_key = 0xAE,
  583. /// <summary>
  584. /// Volume Up key
  585. /// </summary>
  586. Volume_Up_key = 0xAF,
  587. /// <summary>
  588. /// Next Track key
  589. /// </summary>
  590. Next_Track_key = 0xB0,
  591. /// <summary>
  592. /// Previous Track key
  593. /// </summary>
  594. Previous_Track_key = 0xB1,
  595. /// <summary>
  596. /// Stop Media key
  597. /// </summary>
  598. Stop_Media_key = 0xB2,
  599. /// <summary>
  600. /// Play/Pause Media key
  601. /// </summary>
  602. Play_Or_Pause_Media_key = 0xB3,
  603. /// <summary>
  604. /// Start Mail key
  605. /// </summary>
  606. Start_Mail_key = 0xB4,
  607. /// <summary>
  608. /// Select Media key
  609. /// </summary>
  610. Select_Media_key = 0xB5,
  611. /// <summary>
  612. /// Start Application 1 key
  613. /// </summary>
  614. Start_Application_1_key = 0xB6,
  615. /// <summary>
  616. /// Start Application 2 key
  617. /// </summary>
  618. Start_Application_2_key = 0xB7,
  619. /// <summary>
  620. /// Used for miscellaneous characters; it can vary by keyboard.
  621. /// </summary>
  622. Used_for_miscellaneous_characters1 = 0xBA,
  623. /// <summary>
  624. /// Used for miscellaneous characters; it can vary by keyboard.
  625. /// </summary>
  626. Used_for_miscellaneous_characters2 = 0xBF,
  627. /// <summary>
  628. /// Used for miscellaneous characters; it can vary by keyboard.
  629. /// </summary>
  630. Used_for_miscellaneous_characters3 = 0xC0,
  631. /// <summary>
  632. /// Used for miscellaneous characters; it can vary by keyboard.
  633. /// </summary>
  634. Used_for_miscellaneous_characters4 = 0xDB,
  635. /// <summary>
  636. /// Used for miscellaneous characters; it can vary by keyboard.
  637. /// </summary>
  638. Used_for_miscellaneous_characters5 = 0xDC,
  639. /// <summary>
  640. /// Used for miscellaneous characters; it can vary by keyboard.
  641. /// </summary>
  642. Used_for_miscellaneous_characters6 = 0xDD,
  643. /// <summary>
  644. /// Used for miscellaneous characters; it can vary by keyboard.
  645. /// </summary>
  646. Used_for_miscellaneous_characters7 = 0xDE,
  647. /// <summary>
  648. /// Used for miscellaneous characters; it can vary by keyboard.
  649. /// </summary>
  650. Used_for_miscellaneous_characters8 = 0xDF,
  651. /// <summary>
  652. /// Reserved
  653. /// </summary>
  654. Reserved2 = 0xE0,
  655. /// <summary>
  656. /// OEM specific
  657. /// </summary>
  658. OEM_specific1 = 0xE1,
  659. /// <summary>
  660. /// Either the angle bracket key or the backslash key on the RT 102-key keyboard
  661. /// </summary>
  662. Either_the_angle_bracket_key_or_the_backslash_key_on_the_RT_102_key_keyboard = 0xE2,
  663. /// <summary>
  664. /// IME PROCESS key
  665. /// </summary>
  666. IME_PROCESS_key = 0xE5,
  667. /// <summary>
  668. /// OEM specific
  669. /// </summary>
  670. OEM_specific2 = 0xE6,
  671. /// <summary>
  672. /// Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
  673. /// </summary>
  674. Used_to_pass_Unicode_characters_as_if_they_were_keystrokes = 0xE7,
  675. /// <summary>
  676. /// Unassigned
  677. /// </summary>
  678. Unassigned = 0xE8,
  679. /// <summary>
  680. /// Attn key
  681. /// </summary>
  682. Attn_key = 0xF6,
  683. /// <summary>
  684. /// CrSel key
  685. /// </summary>
  686. CrSel_key = 0xF7,
  687. /// <summary>
  688. /// ExSel key
  689. /// </summary>
  690. ExSel_key = 0xF8,
  691. /// <summary>
  692. /// Erase EOF key
  693. /// </summary>
  694. Erase_EOF_key = 0xF9,
  695. /// <summary>
  696. /// Play key
  697. /// </summary>
  698. Play_key = 0xFA,
  699. /// <summary>
  700. /// Zoom key
  701. /// </summary>
  702. Zoom_key = 0xFB,
  703. /// <summary>
  704. /// Reserved
  705. /// </summary>
  706. Reserved = 0xFC,
  707. /// <summary>
  708. /// PA1 key
  709. /// </summary>
  710. PA1_key = 0xFD,
  711. /// <summary>
  712. /// Clear key
  713. /// </summary>
  714. Clear_key = 0xFE
  715. }






c#中调用windows api (按键精灵)

原文:http://www.cnblogs.com/m9zjl/p/5296697.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!