呼叫API彈出印表機屬性對話方塊
呼叫api彈出印表機屬性對話方塊
Author:vitoriatang
From:Internet
.NET Framework封裝了很多關於列印的對話方塊,比如說PrintDialog, PageSetupDialog.
但是有的時候我們還需要關心印表機屬性對話方塊,那麼就可以呼叫API來解決這個問題。有幾個API函式與之相關
PrinterProperties
DocumentProperties
OpenPrinter
ClosePrinter
逐一介紹
printerproperties
顯示印表機屬性對話方塊。
documentproperties
顯示印表機配置對話方塊。
openprinter
開啟印表機
closeprinter
關閉印表機
在呼叫printerproperties或者documentproperties的時候,都需要先呼叫openprinter,並在結束後呼叫closeprinter。
至於印表機屬性和印表機配置有什麼不同,就自己領會了。更為詳盡的資訊可以查閱msdn
sample codes:
1. 宣告API函式
[System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError = true)]
public extern static int DocumentProperties(
IntPtr hWnd, // handle to parent window
IntPtr hPrinter, // handle to printer object
string pDeviceName, // device name
ref IntPtr pDevModeOutput, // modified device mode
ref IntPtr pDevModeInput, // original device mode
int fMode); // mode options
[System.Runtime.InteropServices.DllImportAttribute("winspool.drv")]
public static extern int PrinterProperties(
IntPtr hwnd, // handle to parent window
IntPtr hPrinter); // handle to printer object
[System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError = true)]
public extern static int OpenPrinter(
string pPrinterName, // printer name
ref IntPtr hPrinter, // handle to printer object
ref IntPtr pDefault); // handle to default printer object.
[System.Runtime.InteropServices.DllImportAttribute("winspool.drv", SetLastError = true)]
public static extern int ClosePrinter(
IntPtr phPrinter); // handle to printer object
2.呼叫DocumentProperties
private void documentPropButton_Click(object sender, EventArgs e)
{
string printerName = _document.PrinterSettings.PrinterName;
if (printerName != null && printerName.Length > 0)
{
IntPtr pPrinter = IntPtr.Zero;
IntPtr pDevModeOutput = IntPtr.Zero;
IntPtr pDevModeInput = IntPtr.Zero;
IntPtr nullPointer = IntPtr.Zero;
OpenPrinter(printerName, ref pPrinter, ref nullPointer);
int iNeeded = DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, 0);
pDevModeOutput = System.Runtime.InteropServices.Marshal.AllocHGlobal(iNeeded);
DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, DM_PROMPT);
ClosePrinter(pPrinter);
}
}
3. 呼叫PrinterProperties
private void printPropButton_Click(object sender, EventArgs e)
{
string printerName = _document.PrinterSettings.PrinterName;
if (printerName != null && printerName.Length > 0)
{
IntPtr pPrinter = IntPtr.Zero;
IntPtr pDevModeOutput = IntPtr.Zero;
IntPtr pDevModeInput = IntPtr.Zero;
IntPtr nullPointer = IntPtr.Zero;
OpenPrinter(printerName, ref pPrinter, ref nullPointer);
int iNeeded = PrinterProperties(this.Handle, pPrinter);
ClosePrinter(pPrinter);
}
相關推薦
呼叫API彈出印表機屬性對話方塊
呼叫api彈出印表機屬性對話方塊 Author:vitoriatangFrom:Internet.NET Framework封裝了很多關於列印的對話方塊,比如說PrintDialog, PageSetupDialog. 但是有的時候我們還需要關心印表機屬性對話方塊,那麼就可以呼叫API來解決這個問題。有幾個
點選聯絡我們彈出臨時QQ對話方塊
一般企業網站或電商網站都有聯絡我們的功能。 為了能方便快速聯絡,提高使用者體驗,需要點選聯絡我們按鈕就能讓使用者與商家直接溝通。 這樣就需要用到以下程式碼: <a href="http://wpa.qq.com/msgrd?v=3&uin=商家QQ號(220xxxxxx
android 實現點選輸入框彈出日期選擇對話方塊(DatePickerDialog)
前言 這裡我們實現一個功能,點選日期輸入框(EditText),即可彈出日期選擇對話方塊(DatePickerDialog),等使用者選擇日期後,將使用者選擇的日期顯示在日期輸入框。 1.activity_main.xml 這裡只有一個TextView和EditText。
VC自動關閉彈出的MessageBox對話方塊的總結
下面的程式從5種方法,關閉彈出的MessageBox對話方塊: 首先,建立定時器和彈出MessageBox: void CTestDlg::OnBnClickedButton1() { //啟動一個定時器,用於自動觸發關閉MessageBox對話方塊 SetTimer(
js 彈出確認 取消對話方塊
一種: <a href="javascript:if(confirm('確實要刪除該內容嗎?'))location='http://www.google.com'">彈出視窗</a> 二種: <script language="JavaScript">
JS彈出框、對話方塊、提示框,JS關閉視窗、關閉頁面和JS控制頁面跳轉
1. RequestDispatcher.forward() 在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet或者是JSP到另外的一個Servlet、JSP 或普通HTML檔案,也即你的form提交至a.jsp,在a.jsp用到了forw
原生Js彈窗外掛|web彈出層元件|對話方塊
wcPop.js 是一款基於原生javascript開發的前端 web版 彈窗元件,遵循原生 H5/css3/JS 的書寫規範,簡單實用、拿來即用(壓縮後僅10KB)。已經相容各大主流瀏覽器。內含多種彈窗型別(普通型彈窗、仿微信|android|ios彈窗、定位彈窗、全屏彈窗),多種動畫展示效果,可以讓您的網
Android 如何監聽返回鍵,彈出一個退出對話方塊
Android 如何監聽返回鍵點選事件,並建立一個退出對話方塊, 防止自己寫的應用程式不小心點選退出鍵而直接退出。自己記錄下這個簡單的demo,備用。 注:如下程式碼當時是從網上copy過來的,現在忘了它出自哪個原作者了,在此說聲抱歉。 原始碼如下: public cla
js彈出框、對話方塊、提示框、彈窗總結
一、JS的三種最常見的對話方塊 //====================== JS最常用三種彈出對話方塊 ======================== //彈出對話方塊並輸出一段提示資訊 function ale() { //彈出一
JQuery的Boxy彈出模態對話方塊,如何獲得頁面的返回值returnValue
JQuery很好用,現在想做個原來window.ShowModelDialog()的模態對話方塊,但是不知道如何像以前一樣獲得returnValue,請知道的給指點一二。 用jq不可能實現~~ lz想要的是同步的返回結果,但是自己實現的對話方塊始終不是"模態對話方塊",
Android開發 之 監聽返回鍵,彈出一個退出對話方塊
Android 如何監聽返回鍵點選事件,並建立一個退出對話方塊,防止自己寫的應用程式不小心點選退出鍵而直接退出。 自己記錄下這個簡單的demo,備用。 注:如下程式碼當時是從網上copy過來的,現在忘了它出自哪個原作者了,在此說聲抱歉。 原始碼如下: public
點選按鈕彈出表單對話方塊帶透明遮罩
使用模態對話方塊來請求使用者在一個多步驟過程中輸入資料。在內容區域嵌入 form 標記,設定 modal 選項為 true,並通過 buttons 選項來指定主要的和次要的使用者動作 1. 按鈕 <input class="primary-btn" type="b
怎樣在關閉窗體時彈出一個確認對話方塊,確定再退出?
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
HOOK。另一個程式單擊某個按鈕時,彈出自己的對話方塊。
半年沒來。瑣事太多是藉口。其實是半年來一直用VC做東西,而且只用VC6。因為與.Net沒什麼關係,所以不好意思到這裡灌了。。近兩天在做個東西,主要目的是為方便一個MIS錄入人員照片。通過Camera SDK,實時採集。今天先談談對另一個程式單擊某個按鈕時,彈出自己的對話方塊。
VBScript - 彈出“檔案選擇對話方塊”方法大全!
本文記錄,VBScript 中,各種開啟 “檔案選擇對話方塊” 的方法。 實現方法-1 (mshta.exe): 首先,我們要實現的就是,彈出上面的這個“檔案選擇對話方塊”。 這種方法是通過,Shell 物件,開啟 mshta.exe 程式,執行一個 .hta 檔案,從而開啟視窗, 這種方法,其實是
js彈出框、對話框、提示框、彈窗總結
js彈出框、對話框、提示框、彈窗總結一、JS的三種最常見的對話框//====================== JS最常用三種彈出對話框 ======================== //彈出對話框並輸出一段提示信息 function ale() { /
如何彈出QQ臨時對話框實現不添加好友在線交談效果
*** brush ref nbsp alt lan 驗證 組件 真的 如何不添加好友彈出QQ臨時對話框實現在線交談效果,這樣的一個需求,我們真的是太需要了,實現起來也很簡單,一行代碼即可搞定,需要的朋友可以參考下 其實這個很簡單,在img我們加入一個a標簽,然後
解決win10打開組策略彈出管理模板對話框問題
windows htm 解決 take .html 全選 In 描述 idt 今天win10企業版更新完系統,打開組策略編輯器時彈出管理模板對話框問題 1、問題描述 打開組策略編輯器時彈出管理模板對話框問題 2、解決方法 1)window+x 打開命令提示符(管理員
程式碼從Polyline讀取到的座標和屬性對話方塊顯示的不一樣?
屬性視窗中查詢的第一個點座標: 程式輸出的各個點座標: 差這麼多? 原來是座標系的問題,程式查詢到的是世界座標,屬性視窗中是當前ucs座標 Document doc = Application.DocumentManager.MdiActiveDocument;doc.Edit
解決開機彈出系統屬性框:由於啟動計算機時出現了頁面配置問題
最近重新裝了一個Win8。1的系統,不知怎麼的,一開機就彈出由於啟動計算機時出現了頁面檔案配置問題...這樣的問題 ,雖然目前沒有發現這個問題帶來的其他問題,但是每次開機都彈這個,實在讓人 有點煩。於是就百度了一下,發現這個問題是由於虛擬記憶體引起的。 設定的方法有 兩種。