Windows中斷編程

一、前

Windows NT下實現對I/O地址的訪問

Windows NT 作業系統設定的進程模式會使運行在其中的應用程式訪問I/O地址的指令引起保護性的失敗。這使得應用程式需要附以一個裝置驅動程式進行I/O操作。裝置驅動程式運行在核心模式,這使得在這種狀態的中啟動並執行進程可以執行I/O操作。---- Windows 95/98 是僅為 Intel 類型機器設計的,沒有額外複雜的I/O需求,而Windows NT 被設計成可以在不同機器機構上進行移植。這使得Windows NT 的系統模式要求驅動程式的編寫者要考慮一台機器可能有多種類型的匯流排,

Delphi編程調用指定的Windows程式

本執行個體介紹如何在自己的程式中調用指定的Windows程式。首先啟動一個新的項目,在空白的表單上添加4個TButton組件。添加組件後的表單如圖1所示。圖1

如何在工作列中顯示Word 2007文檔所有視窗

在Word 2007中,使用者可以設定在Windows工作列中顯示所有視窗,或者在任務 欄中只顯示當前Word文件視窗。如果只顯示當前活動Word文件視窗,則需要取消 當前Word文件視窗的最大化狀態才能看到其他Word文件視窗,具體操作步驟如下 所述:第1步,開啟Word 2007文件視窗,依次單擊“Office按鈕”→ “Word選項”按鈕,如圖2012040507所示。圖2012040507

Windows中的訊息詳細列表

訊息,就是指Windows發出的一個通知,告訴應用程式某個事情發生了。例如,單擊滑鼠、改變視窗尺寸、按下鍵盤上的一個鍵都會使Windows發送一個訊息給應用程式。訊息本身是作為一個記錄傳遞給應用程式的,這個記錄中包含了訊息的類型以及其他資訊。例如,對於單擊滑鼠所產生的訊息來說,這個記錄中包含了單擊滑鼠時的座標。這個記錄類型叫做TMsg,它在Windows單元中是這樣聲明的:typeTMsg = packed recordhwnd: HWND; //視窗控制代碼message:

WINDOWS鍵盤事件的掛鈎監控原理及其應用技術

WINDOW的訊息處理機製為了能在應用程式中監控系統的各種事件訊息,提供了掛接各種反調函數(HOOK)的功能。這種掛鈎函數(HOOK)類似擴充中斷驅動程式,掛鈎上可以掛接多個反調函數構成一個掛接函數鏈。系統產生的各種訊息首先被送到各種掛接函數,掛接函數根據各自的功能對訊息進行監視、修改和控制等,然後交還控制權或將訊息傳遞給下一個掛接函數以致最終達到視窗函數。WINDOW系統的這種反調函數掛接方法雖然會略加影響到系統的運行效率,但在很多場合下是非常有用的,通過合理有效地利用鍵盤事件的掛鈎函數監控機

如何捕獲VCL沒有處理的Windows訊息

---- C++ Builer的VCL提供了對大多數Windows訊息的處理機制,這對於一般應用程式是足夠了,但VCL也不是無所不包的,對於那些VCL沒有處理的Windows訊息,在需要時如何進行捕獲呢?C++ Builder採用了訊息映像表機制,通過訊息映像表將特定的Windows訊息與代碼中的函數聯絡起來,當視窗捕獲到訊息時就會調用這個函數,這其實和事件控制代碼非常相似。---- C++ Builder訊息映像表定義形式如下:BEGIN_MESSAGE_MAP   

讓應用程式禁止Windows螢幕保護裝置

如果在你的程式中需要一個很長的時間段來進行大量的資料處理,這段時間長得足以使Windows因檢測不到使用者動作而啟用螢幕保護裝置程式,一旦啟動了螢幕保護裝置程式,你的程式運行實際上就變慢了,這會大大影響程式的正常運行。有沒有一種方法,使程式在進行長時間的資料處理前關掉螢幕保護裝置呢?答案是肯定的。Windows在啟動螢幕保護裝置程式前會向當前啟用的應用程式發送WM_SYSCOMMAND訊息,其中wParam參數指定了即將執行的系統命令類型,在本例中其值為SC_SCREENSAVE。問題在於程式如

攔截Windows訊息

---- Borland C++ Builder的API後門---- 引子---- C++ Builder不愧為Borland公司的優秀產品,用它來開發Windows程式非常快捷高效,但在編程過程中你也會發現它的一些限制性,讓你無法實現自己的想法。比如你無法在修改表單的系統功能表;比如使用跟蹤欄時,你找不到StartTrack和EndTrack事件,而偏偏你的程式需要這兩個事件。Windows

Delphi編程使用HOOK監視Windows

每個程式都有自己的生存空間,在Windows系統中你可以在任何時候讓你的程式執行一些操作,還可以觸發訊息,觸發的訊息分為三種,一是操作你程式的介面,onClick,onMouseMove等等,另外一個可以使用Windows的訊息機制來捕獲一些系統訊息,但是如果你想在任何時候監控任何程式的情況那可能你就會選擇HOOK來實現了,雖然還有其他方法,但不得不承認,HOOK是一個比較簡單解決問題的途徑。下面就來舉個例子(使用Delphi7.0調試通過):如果你需要訪問某個人的機器,那在運行\\SB之後那個

Windows表單之建立動態操作功能表

若要節省建立應用程式所需的時間並減少代碼量,可以讓多個控制項共用單個操作功能表對象。利用一個只包含該控制項必需功能表項目的“動態”操作功能表(或捷徑菜單),可以減少應用程式中控制項所需的操作功能表總數。以下演練顯示如何更改每個控制項的功能表項目。建立應用程式以下步驟將建立一個 Windows 應用程式,它具有包含兩個控制項的表單。在運行時,如果右擊每個控制項(只要它具有焦點,即被選定),將顯示相應的操作功能表。RadioButton

一個典型的Windows表單程式執行個體

/*Form1.cs檔案*/using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace FormsTest{public partial class Form1 : Form{public

WPF : 自訂Windows Presentation Foundation的控制項

雖然 Windows Presentation Foundation 中的控制項模型非常多,但仍不可能提供需要的每一種控制項。這時候,控制項編寫就派上用場了。在本文中,我將向您講述如何使用 Windows® Presentation Foundation 自訂現有控制項,以及如何為您的項目建立全新的控制項(或元素)。在開發一個自訂控制項之前,應該先問問自己是否真的需要它。在 Windows Presentation Foundation 中,組合、樣式和模板化功能使您可以自訂現有控制項,

Windows表單的.Net架構繪圖技術

幸運的是當編寫一個典型的Windows 表單程式時,表單和控制項的繪製、效果等操作是不需要特別加以考慮的。這是為什麼呢?因為通過使用.Net 架構,開發人員可以拖動一系列的控制項到表單上,並書寫一些簡單的與事件相關聯的代碼然後在IDE中按F5,一個完完全全的表單程式就誕生了!所有控制項都將自己繪製自己,表單或者控制項的大小和縮放都調整自如。在這裡經常會用到的,且需要引起一點注意的就是控制項效果。遊戲,自訂圖表控制項以及螢幕保護裝置程式的編寫會需要程式員額外撰寫用於響應 Paint

windows程式自動鎖屏功能的實現

這個問題來自論壇提問Q:當我登入進入主介面時,在規定的時間內沒有做任何操作,系統就登出(就像電腦的屏保)。A: 其實很簡單,參考一個api函數就可以了:GetLastInputInfo,以下是參考代碼示範程式在你10秒內沒有任何滑鼠鍵盤活動既最小化,最小化後晃動滑鼠即可複原using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;

MFC封裝WINDOWS應用程式的流程

MFC封裝了WIN API.大家都知道.但是MFC應用程式的真正流程又有多少人知道呢?下面就是我對MFC啟動代碼的一些剖析.在TCHAR.H裡,有這麼2小段define.通過我的簡化,我們可以看到://TCHAR.H#ifdef _UNICODE#define _tWinMain wWinMain#else#define _tWinMain

socket編程學習筆記(1), Unix Socket和Windows Socket

1,關於Unix Socket1.1 什麼是Socket?Socket是網路檔案描述符。在基於Socket的編程技術中,使用者不直接存取發送和接收包的網路介面裝置,而是建立一個中間檔案描述符來處理編程介面到網路的操作。1.2 Socket包括哪些內容?一個特殊的通訊域,比如一個網路連接一個特殊的通訊類型,比如流或者資料報一個特殊的協議,比如TCP或者UDP1.3 Unix的Socket() C函數詳細說明:int socket(int domain, int type, int

如何鎖定windows系統以及調用其它系統對話方塊

這個問題來自論壇提問,原題目是如何?win+L效果。第一反應都是類比按鍵,其實做開發的人不應該上來就用這個思路,實在不行才應該考慮通過按鍵解決。解決代碼如下:using System;namespace ConsoleApplication2...{  class Program  ...{    static void Main(string[] args)    ...{      System.Diagnostics.Process p = new

在.NET下開發windows服務

建立 Windows 服務--------------------------------------------------當建立服務時,可以使用稱作 Windows 服務的 Visual Studio.NET 項目模板。此模板引用適當的類和命名空間、設定從服務基類的繼承並重寫您可能要重寫的幾種方法,從而自動為您完成大部分工作。若要建立功能性服務,必須至少:設定 ServiceName 屬性。為服務應用程式建立必要安裝程式。重寫 OnStart 和 OnStop

仿Windows關機效果:封裝lightbox類

初始化資料時,為每個可高亮顯示的連結建立了lightbox對象。該類的代碼具體實現如下:var lightbox = Class.create();   lightbox.prototype = {      yPos : 0,      xPos : 0,      //構造方法,ctrl為建立該對象的元素      initialize: function(ctrl) {          //將該元素的連結賦值給this.content          this.content =

總頁數: 1345 1 .... 858 859 860 861 862 .... 1345 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.