Tuesday, October 06, 2009 - 文章

Add Printer的隱藏關卡

今天在Windows 2008 x64上要新增一台印表機,使用內建的Add Printer功能,卻沒有如預期,下一步、下一步就過著幸福快樂的生活。

Add Printer一啟動,會先出現以下晝面,由於要直接用IP連上印表機,所以選擇"The printer that I want isn't listed"。


圖一

出現很貼心的設定畫面,只要給IP,餘下的都自動偵測,不像以前還要選裝置型別什麼的。此時會跳出"PnPX Device Association"要升級管理者權限的UAC提示,按下確認鈕放行,開始等待...


圖二

等了約十來秒,噹! Access Denied。都升級權限了還不行是怎樣?

Google到一篇文章,提到要以Run As Administrator執行Add Printer。

有趣的事來了,以Admin身份執行Add Printer,開始前會多跳出"Change Printing Setting"的UAC權限提示,確認後會出現先前用一般權限跑時沒有出現的畫面。
(嘿... 傳說中的隱藏關卡嗎?)

選擇Add a local printer後,再出現隱藏關卡2,選取Standard TCP/IP Port後按下一步才會進入圖一的畫面。

換句話說,使用Run As Administrator執行Add Printer,程式會多出額外的設定畫面,之後的操作一路順暢,印表機終於裝起來囉。

jQuery-利用上下左右鍵移動輸入焦點

今天同事詢問如何在網頁實作以上下左右鍵移動輸入焦點的效果,我寫了一個jQuery解法示範,順便貼出來跟大家分享。

範例中有4x4共16個矩陣狀排列的<input>,我先用each("tr") each("td")為每個<input>標上tabindex。每列的tabindex相差100,如此加減100就可以跳到上下列的同一欄。統一為<input>加上cGridInput Class Name,方便後續以selector一次選取。用live鎖定.cGridInput keydown事件,分別配合上、下、左、右算出移動目標元素的tabindex,接著用.cGridInput[tabindex=?]找到元素觸發focus()取得焦點,大功告成。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Arrow Key Focus Moving</title>
</head>
<body>
<script type='text/javascript' 
src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js'></script>   
<script type="text/javascript">
    $(function() {
        var baseIndex = 100;
        $("#tblGrid")
        .find("tr").each(function(r) {
            $(this).find("td").each(function(c) {
                $(this).find("input")
                .attr("tabindex", r * 100 + c + baseIndex)
                .addClass("cGridInput");
            });
        });
        $("#tblGrid .cGridInput").live("keydown", function(evt) {
            var tabIndex = parseInt($(this).attr("tabindex"));
            switch (evt.which) {
                case 38: //上
                    tabIndex -= 100;
                    break;
                case 40: //下
                    tabIndex += 100;
                    break;
                case 37: //左(會導致輸入時無法使用左右移)
                    tabIndex--;
                    break;
                case 39: //右(會導致輸入時無法使用左右移)
                    tabIndex++;
                    break;
                default:
                    return;
            }
            if (tabIndex > 0) {
                $(".cGridInput[tabindex=" + tabIndex + "]").focus();
                return false;
            }
            return true;
        });
    });
</script>
<table id="tblGrid">
<tr><td><input /></td><td><input /></td><td><input /></td><td><input /></td></tr>
<tr><td><input /></td><td><input /></td><td><input /></td><td><input /></td></tr>
<tr><td><input /></td><td><input /></td><td><input /></td><td><input /></td></tr>
</table>
</body>
</html>

搜尋

Go

<October 2009>
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
 
RSS
【工商服務】
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication