星期二, 12月 29, 2015

[Win10] 預設印表機

Win10 64bit build 10586 印表機的一個預設啟動設定,預設印表機是最後一次使用的印表機

如下圖

[Win10] 預設印表機

這個設計對公司內 ERP 內的標籤機列印產生很大的影響,標籤列印是透過程式來選擇標籤機和紙張大小,因為預設印表機是最後一次使用的印表機,當使用者列印標籤後,要列印正常紙張(通常是 A4)時,應當從原本預設印表機進行輸出,但此時預設印表機已經變成標籤機,程式就會一直出現內容超過設定紙張的 Error,Orz。

星期六, 12月 19, 2015

這不是 EFI BIOS!

之前  更新 BIOS 很順利,完全沒發生任何問題,沒想到同型號的另一台 PC 更新時,一直出現下面的警告訊息

這不是 EFI BIOS

後來亂猜,把更新檔案放在 FAT32 的 USB 上,才開始進行更新,之前那台的 Disk 已經被拿去做其他用途,也沒有辦法確認是不是 FAT32,反正 BIOS 內一切作業,NTFS 是派不上用場,用 FAT32 就對啦
  • 20151228
找到 更新 BIOS 這篇文章中的 Disk,原來老大還留著,檢查硬碟格式是 NTFS,也不是 FAT32,^^''

星期五, 12月 18, 2015

[SQL] 擴充屬性

Turning 時,對 Index 進行修正,突然一個念頭是,該 Index 到底是甚麼時候建立、修改的,想要紀錄該時間點,才查到有擴充屬性(Extended Properties)可以使用

操作擴充屬性的三個功能,分別為 sp_addextendedproperty、sp_updateextendedproperty 和 sp_dropextendedproperty,在 MSDN 說明上,都會有 Level0、Level1 和 Level2 參數需要設定,以 sp_addextendedproperty 為例說明

[SQL] 擴充屬性-1

在這篇文章 - Document Your SQL Server Databases with Extended Properties 內,有把三層 Level 的物件,利用圖表方式來表達,清楚明瞭,看完就知道 Level0、Level1 和 Level2 參數,要如何設定

星期四, 12月 17, 2015

Wago 內容間距

在 Win10 上安裝 Wago 258-5000 設備,原本是利用買設備附贈光碟來安裝,測試時只有 smartScript 這套軟體安裝後,即使使用相容性模式,也無法在 Win10 上執行,後來在官網上下載新版軟體,就可正常執行,但使用者回報,當列印張數不是 1 時,內容和內容之間的間距太大,由於紙張一卷要 2000 多元,所以這間距過大變成一件很重要的問題,Orz

綠色框框是內容,紅色框框是間距
Wago 內容間距-1

星期三, 12月 16, 2015

Microtek ArtixScan DI 2125c

測試 Microtek ArtixScan DI 2125c Win10 Driver 時,一直抓不到該 scanner,即使我上官網重新下載最新版本(Win7) Driver,也無法在 Win10 上驅動該 scanner,打電話訊問課服才發現,原來還有另外一個官網,Orz

在 Google 上輸入 Microtek 前兩個網址,都是 ww3 開頭

Microtek-1
客服人員請我在 ww3 網頁上點選 Microtek logo 就可以進入最新官網,還很貼心地告知我,該 scanner 目前並沒有推出 Win10 Driver 用 Win7 的就可以,且安裝時 scanner 不要跟 PC 連接,安裝完成後重開機後,再連接 PC

Microtek-2

兩個不同網址下載 Driver 分別為
  • ww3:swdi_3160_eu
  • ww7:swdi_3670_eu
版本感覺差很大

在 Google 上打 Microtek 或全友,搜尋內容第一頁完全沒有 ww7 的影子,^^''

星期二, 12月 15, 2015

Jetcam 中文化

Jetcam V18 程式一開啟是英文,每次在設定內改為中文後,重新啟動又變成英文,使用者每次進入都需要先去更改語言,Orz

英文介面

Jetcam 中文-1

語言設定

Jetcam 中文-2

中文介面

Jetcam 中文-3

星期二, 12月 08, 2015

[C#] 變更 MDI 父表單的背景顏色

根據這篇官方文章 如何變更 MDI 父表單中視覺化 C# 中的背景色彩 的練習筆記

把 IsMDIContainer 設為 True 之後,Form 會變成下圖

[C#] 變更 MDI 父表單的背景顏色-1

在 Form_Load 利用 C# Code 來變更 MDI 背景顏色
namespace MDIBackGroundColor
{
    public partial class MDIParent : Form
    {
        public MDIParent()
        {
            InitializeComponent();
        }

        private void MDIParent_Load(object sender, EventArgs e)
        {
            foreach (Control ctl in this.Controls.OfType<MdiClient>())
            {
                ctl.BackColor = Color.YellowGreen;
            }
        }
    }
}
執行後效果

[C#] 變更 MDI 父表單的背景顏色-2

星期四, 12月 03, 2015

[SQL] 權限設定

論壇問題:原 PO 對 db_datareader 和 db_datawriter 權限設定有疑慮,剛好拿來練習並驗證

建立 Login (LoginWrite) 和 User (UserWrite) 對 AdventureWorks2014 內的 Demo Table 進行不同權限設定的 SELECT、INSERT、UPDATE 和 DELETE,藉此觀察權限設定情況
USE [AdventureWorks2014]
GO

IF OBJECT_ID('Demo') IS NOT NULL
   DROP TABLE Demo

-- 建立一個簡單 Table 來驗證,是否具備 Read 或 Write 權限
CREATE TABLE [dbo].[Demo](
   [ID] [int] NULL
) ON [PRIMARY]
GO

IF EXISTS
  (
    SELECT 1
    FROM sys.database_principals
    WHERE Name = 'UserWrite'
  )
  DROP USER UserWrite

IF EXISTS 
  (
    SELECT 1 FROM  sys.sql_logins WHERE Name = 'LoginWrite'
  )
  DROP LOGIN LoginWrite


-- 建立 Login
CREATE LOGIN [LoginWrite] 
  WITH PASSWORD = N'P@ssw0rd', 
  DEFAULT_DATABASE = [AdventureWorks2014], 
  DEFAULT_LANGUAGE = [繁體中文], 
  CHECK_EXPIRATION = OFF, 
  CHECK_POLICY = OFF
GO

-- 建立 User 並指定預設 Schema
CREATE USER [UserWrite] FOR LOGIN [LoginWrite] WITH DEFAULT_SCHEMA = [dbo]
GO

-- 把 UserWrite 加入 db_datareader 內
EXEC sys.sp_addrolemember 'db_datareader' , UserWrite

-- 確認目前的 Login 和 User:
-- SUSER_SNAME():WIN2012R2\Administrator
-- USER_NAME()  :dbo
SELECT 
  SUSER_SNAME() , -- Instance Level
  USER_NAME()     -- DB Level

-- 切換 Login 來進行測試
EXECUTE AS LOGIN  = 'LoginWrite'

-- 確認目前的 Login 和 User:
-- SUSER_SNAME():LoginWrite
-- USER_NAME()  :UserWrite
SELECT 
  SUSER_SNAME() , -- Instance Level
  USER_NAME()     -- DB Level

-- 權限測試
-- 對 Demo Table 進行 Select、Insert、Update 和 Delete
SELECT * FROM [AdventureWorks2014].[dbo].[Demo]
INSERT INTO [AdventureWorks2014].[dbo].[Demo] (ID) VALUES(1)
DELETE FROM [AdventureWorks2014].[dbo].[Demo]
UPDATE [AdventureWorks2014].[dbo].[Demo] SET ID = 2

-- 測試訊息
--(0 個資料列受到影響)
--訊息 229,層級 14,狀態 5,行 65
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 INSERT 權限。
--訊息 229,層級 14,狀態 5,行 66
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 DELETE 權限。
--訊息 229,層級 14,狀態 5,行 67
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 UPDATE 權限。

-- 返回 WIN2012R2\Administrator Login,後續要對權限進行設定 LoginWrite 和 UserWrite 並沒有授給權限的權利
REVERT

-- 確認目前的 Login 和 User:
-- SUSER_SNAME():WIN2012R2\Administrator
-- USER_NAME()  :dbo
SELECT 
  SUSER_SNAME() , -- Instance Level
  USER_NAME()     -- DB Level

-- 授給 UserWrite 對 Demo Table 進行 INSERT 的權限
GRANT SELECT , INSERT
ON AdventureWorks2014.dbo.Demo
TO [UserWrite]
 
 -- 切換 Login
EXECUTE AS LOGIN  = 'LoginWrite'

-- 權限測試
-- 對 Demo Table 進行 Select、Insert、Update 和 Delete
SELECT * FROM [AdventureWorks2014].[dbo].[Demo]
INSERT INTO [AdventureWorks2014].[dbo].[Demo] (ID) VALUES(1)
DELETE FROM [AdventureWorks2014].[dbo].[Demo]
UPDATE [AdventureWorks2014].[dbo].[Demo] SET ID = 2

-- 測試訊息
--(0 個資料列受到影響)
--(1 個資料列受到影響)
--訊息 229,層級 14,狀態 5,行 96
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 DELETE 權限。
--訊息 229,層級 14,狀態 5,行 97
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 UPDATE 權限。

-- 返回 WIN2012R2\Administrator Login,後續要對權限進行設定 LoginWrite 和 UserWrite 並沒有授給權限的權利
REVERT

-- 把 UserWrite 加入 db_denydatawriter 內
EXEC sys.sp_addrolemember 'db_denydatawriter' , UserWrite

-- 切換至 LoginWrite
EXECUTE AS LOGIN  = 'LoginWrite'

-- 權限測試
-- 對 Demo Table 進行 Select、Insert、Update 和 Delete
SELECT * FROM [AdventureWorks2014].[dbo].[Demo]
INSERT INTO [AdventureWorks2014].[dbo].[Demo] (ID) VALUES(1)
DELETE FROM [AdventureWorks2014].[dbo].[Demo]
UPDATE [AdventureWorks2014].[dbo].[Demo] SET ID = 2

-- 測試訊息
--(0 個資料列受到影響)
--訊息 229,層級 14,狀態 5,行 117
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 INSERT 權限。
--訊息 229,層級 14,狀態 5,行 118
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 DELETE 權限。
--訊息 229,層級 14,狀態 5,行 119
--結構描述 'dbo',資料庫 'AdventureWorks2014',物件 'Demo' 沒有 UPDATE 權限。

星期三, 12月 02, 2015

[Win10] build 查詢

Win10 查詢 build 資訊
  • 方法一:利用指令
在搜尋功能內輸入 winver

[Win] build 查詢-1
  • 方法二:檔案總管功能表
檔案總管 => 檢視 => 選項 => 檢視 Tag 內勾選 "一律顯示功能表"

[Win] build 查詢-3

開啟後在系統內,就可以找到,功能表 => 說明 => 關於 Windows 選項

[Win] build 查詢-4

  • 結果:上述二種方法,都可以開啟 "關於 Windows" 並查詢 build 資訊
[Win] build 查詢-2

  • 20170313 方法三:關於 
所有設定 => 關於

[Win] build 查詢-5