2019年2月27日 星期三

VS C++ 專案的使用者權限(UAC)

在開發找COM Port的程式的時候會需要用到 Admin的權限
如果沒有權限,指令未必不可執行,但可能發生不可預期的行為
可以在Project 按右鍵 > Properties > Linker > Manifest file 中 將 UAC (User Account control) 設定為 "requireAdministrator" 強迫 User 要用 Admin 執行

多螢幕工具

目前辦公室有三顆螢幕,有時候會有突然找不到游標,或是有時候想將游標鎖定在固定的視窗當中
Dual Monitor tools 可以做到,並且在可以設定按快捷鍵切解除鎖定
可惜的是他沒有將視窗開起在游標位置,要另外找程式
目前可以用AutoHotKey做到

Code下載

#Persistent
SetBatchLines, -1
Process, Priority,, High

Gui +LastFound
hWnd := WinExist()

DllCall( "RegisterShellHookWindow", UInt,hWnd )
MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
OnMessage( MsgNum, "ShellMessage" )
Return

ShellMessage( wParam,lParam ) {

  If ( wParam = 1 ) ;  HSHELL_WINDOWCREATED := 1
{
WinGetTitle, Title2, A

; Activate top window
WinActivate, %Title2%

; This un-maximizes fullscreen things to prevent UI bug.
WinRestore, %Title2%
; Mouse screen coords = mouse relative + win coords therefore..
WinGetPos, xtemp, ytemp,,, A ; get active windows location
MouseGetPos, X, Y   ; get mouse location

;; Calculate actual position
;; -16 on x and y pos allows you to doubleclick and close window(most of the time)
xpos:=temp-16
ypos:=temp-16

WinMove, %Title2%, , %xpos%, %ypos%  ; move window to mouse
     }
}

2019年2月13日 星期三

C++ 忽略跳脫字元(Escape Codes)

常常在路徑中都會含有 \的字元,造成\以後的字元與\形成跳脫字元(Escape Codes)
可以用R"()"來避開
ex:
String path = R"(D:\)"
就與
String path = "D:\\" 的結果相同

2019年2月12日 星期二