標籤

2025年12月18日 星期四

ReportViewer 和 WINDONS DPI 感知 造成列印縮小大小問題

ReportViewer 和 WINDONS  DPI 感知 造成列印縮小大小問題

感謝資料來源:
~楓花雪岳~
https://jengting.blogspot.com/2017/07/WinForm-ReportViewer-DPI-Aware.html


 PC Windows 10 設定 DPI 設定不是標準的 100%,是 125%,嘗試調回 100% 後,報表就正常啦

尋找 ReportViewer 和 DPI 相關資料,發現要讓報表依設計呈現,必須利用應用程式資訊清單(Application Manifest File)告知 Windows,程式是 DPI 感知,不需要去變化它

在 Project 內新增 Mainfest 檔案
Manifest 檔案內的預設檔案內容
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 資訊清單選項
             如果要變更 Windows 使用者帳戶控制層級,請將 
             requestedExecutionLevel 節點以下列其中之一取代。

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            指定 requestedExecutionLevel 項目會停用檔案及登錄虛擬化。
            如果您的應用程式需要針對回溯相容性進行這項虛擬化,請移除這個
            項目。
        -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>

  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- 這個應用程式測試所在及可配合使用的
           Windows 版本清單。請取消註解適當的項目,Windows 將會
           自動選取最相容的環境。-->

      <!-- Windows Vista -->
      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->

      <!-- Windows 7 -->
      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->

      <!-- Windows 8 -->
      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->

      <!-- Windows 8.1 -->
      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->

      <!-- Windows 10 -->
      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->

    </application>
  </compatibility>

  <!-- 表示應用程式為 DPI 感知,Windows 不會在 DPI 變高時自動
       調整。Windows Presentation Foundation (WPF) 應用程式會自動感知 DPI,因此不需要
       選擇加入。選擇加入這項設定之以 .NET Framework 4.6 為目標的 Windows Form 應用程式也
       應該在其 app.config 中將 'EnableWindowsFormsHighDpiAutoResizing' 設定為 'true'。-->
  <!--
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>
  -->

  <!-- 啟用 Windows 通用控制項和對話方塊的佈景主題 (Windows XP 以後版本) -->
  <!--
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>
  -->

</assembly>
新增 Manifest 後,在 Project 屬性內,預設會自動選取該 Manifest 檔案


把 dpiAware uncomment 並把參數設為 true/pm (預設為 true),參數說明請參考 Application Manifests
<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
         true/pm
      </dpiAware>
    </windowsSettings>
  </application>
另外 Manifest 檔案內還有提到 dotNet 4.6 以上,也要把 EnableWindowsFormsHighDpiAutoResizing 參數,加入 App.Config 檔案內
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
  </appSettings>
</configuration>
設定之後在 Windows 10 上,DPI 非 100% PC 上就可以輸出預期的報表,不過要特別注意,畢竟該設定會影響整個程式,要看看 WinForm Layout 會不會跑掉喔


最簡單方式

Windows 10 1703 有個新功能 - 覆蓋高 DPI 縮放行為,可以直接對 EXE 檔案設定該選項,也可以避免該問題



2025年8月18日 星期一

晶片讀卡機 安裝

 1.插讀卡機入PC,不放IC卡
2.安裝驅動程式(PS:如果再行,就移除其它卡機驅動程式)
3.重開機
事情往往出現在意外
在WIN11會有問題
因為WIN11讓不信任的驅動不能順利安裝
要解決,往下看下去
▲Win 11需先至設定→ Windows 安全性→"裝置安全性" →找到 "核心隔離"→點選 "核心隔離詳細資料",將其關閉。
後續再做安裝即可,若使用完還是建議將"核心隔離"功能開啟喲!


參考資料來源:https://www.lingdong.com.tw/blogs/download/103548





2025年6月14日 星期六

解除安裝 Windows 更新

先暫停更新五週


開始(按右鍵)>設定>WINDOWS UPDATE>更新記錄>解除安裝更新>找出最新的更新記錄

(目前觀察直接影響有kb5063060,kb5054979)先移kb5063060可能就有效





附註:
如果上述無效,可復原再試一次
開始(按右鍵)>設定>WINDOWS UPDATE>復原>使用Windows Update修正問題>立即重新安裝
>下載並立即安裝




完成後再回到解除安裝一次



以下僅供參考:可略過不看
開始(按右鍵)>設定>WINDOWS UPDATE(更新)

步驟 1. 前往搜尋框,然後輸入命令提示字元或 CMD。
步驟 2. 點選「以管理員身分執行」以啟動具有不同管理功能的命令提示字元。
步驟 3. 輸入wmic qfe list Brief /format:table以查看更新歷史記錄,然後按 Enter 按鈕。


步驟 4. 驗證 Windows 系統的 Windows 更新歷史記錄,並透過其 InstalledOn 和 HotFixID 資訊查找更新。

步驟 5. 使用下列指令從 cmd 刪除最需要的更新: wusa /uninstall /kb:Number 。若要將「number」替換為更新的 KB 編號,您可以輸入: wusa /uninstall /kb:5005635




步驟 6. 您的螢幕將顯示一個確認窗口,要求您批准該操作。選擇是繼續。

步驟 7. 解除安裝完成後重新啟動電腦。




2025年3月27日 星期四

Windows 10 的 C 磁碟出現三角形黃色驚嘆號 BitLocker

當 Windows 10 的 C 磁碟出現三角形黃色驚嘆號
問題
這是因為 BitLocker 所造成。 可能是在系統更新,或者是不小心誤觸開啟的 BitLocker 功能但又沒設定好, 才導致出現了三角形黃色驚嘆號。

解法
以系統管理員身分執行CMD
輸入
 manage-bde -off "磁碟代號":


2025年1月20日 星期一

WIN32_WMISetting命名空間無效,導致.NET System.Management.ManagementException



問題
ReadyGo在LOGIN,判定CPUID時,因無Windows Management Instrumentation的類別,造成
System.Management.ManagementException: Invalid namespace

原因:此錯誤是由 WMI 問題引起的
Win32_Processor、Win32_WMISetting 和 Win32_OperatingSystem 是 WMI 下的「無效類別」。

辨識:確認 WMI 已損壞
透過開始 -> 執行 ,然後輸入WMIMGMT.MSC -> 啟動 WMI MMC 管理單元 
右鍵單擊 “WMI 控制(本機)” ,然後按一下 “屬性”
檢查「無法初始化所有必要的 WMI 類別」下的錯誤(如下圖所示)。




處理:手動重建修復 WMI repository
1.開啟CMD>系統管理員>輸入net stop winmgmt
(此命令停止 Windows Management Instrumentation 服務。)



2.接下來,導覽到C:\Windows\System32\wbem目錄。
將 Repository 資料夾重新命名為Repository_old之類的名稱。





3.開啟CMD>系統管理員>輸入net start winmgmt
(此命令啟動 Windows Management Instrumentation 服務。)


2024年12月20日 星期五

Win10新增ㄅ半注音輸入法

SETP 1
下載並新增ㄅ半的登錄檔
先到Mega雲端空間下載檔案。


SETP 2
點兩下開啟【微軟ㄅ半注音.reg】

SETP3
新增ㄅ半設定
這時候點右下角的「ㄅ」可以看到有兩個ㄅ的微軟注音,仔細看可以發現兩個ㄅ有些微的不同,上面那個ㄅ的圖案是完全正方形(新注音),而下面那個ㄅ則是左上角有一點點的缺角(ㄅ半),這樣你就知道該如何分辨新注音跟ㄅ半了吧!







2024年9月10日 星期二

使用 DiskSpd 測試磁碟效能

 DiskSpd 是微軟創建的命令行磁碟測試工具。它結合了強大的IO工作負載定義來測量磁碟效能。由於它支援自由配置和調整參數,使其成為存儲效能測試、驗證和基準測試的理想工具。

步驟 1. 從GitHub(說明)

https://github.com/Microsoft/diskspd/releases

獲取DiskSpd。

步驟 2.  DiskSpd 不需要安裝,只需下載並解壓到本地磁碟即可。解壓後,根據您的Windows系統選擇一個檔案:

◢ amd64fre - 適用於64位系統

◢ armfre - 適用於ARM系統

◢ x86fre - 適用於32位系統

步驟 3. 同時按下“Win”+“R”,鍵入CMD並按回車鍵。

鍵入:diskspd.exe -c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L D:\diskpsdtmp.dat > DiskSpeedResults.txt


提示:使用diskspd.exe時,被測系統的磁碟和CPU有相當大的負載。為了消除使用者的效能下降,不建議在高峰時段在生產系統上啟動它。

步驟 4. 壓力測試完成後,可以從輸出表中得到如下效能數據:

MiB/s — 241(大約 252 Mb/s,還不錯)

IOPS — 3866(非常好!)

平均延遲 — 66.206 ms(相當多的延遲!)

查看磁碟效能

步驟 5. 測試結果由兩部分組成:

第一部分包括命令中指定選項的摘要,例如持續時間、預熱和冷卻時間、延遲統計資訊和其他詳細資訊。

第二部分主要是測試結果。在這裡,您將看到完成測試所用的時間、風險和處理器的數量。需要注意的是:“Total IO”表顯示了每個線程的讀寫。通常重要的信息是總 MiB/s 結果,它告訴您每秒讀取和寫入的平均兆字節數。

ReportViewer 和 WINDONS DPI 感知 造成列印縮小大小問題

ReportViewer 和 WINDONS  DPI 感知 造成列印縮小大小問題 感謝資料來源: ~楓花雪岳~ https://jengting.blogspot.com/2017/07/WinForm-ReportViewer-DPI-Aware.html  PC Windo...