昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-08-28, 10:14:23
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: Wink有贊助本論壇經營的會員,請務必來信通知小誌,這樣才能為您更新會員群組喔!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  請問print screen的代碼如何寫??
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 2 向下 列印
作者 主題: 請問print screen的代碼如何寫??  (閱讀 1024 次)
nolo
機器人
高中生
*
離線 離線

會員性別: 男
文章: 219



個人網站
請問print screen的代碼如何寫??
« 於: 2006-12-13, 10:13:49 »

如題

window鍵盤上PrtScr鍵代碼無法用錄製取得
PRINT SCREEN 代碼是   {PRTSC}
這樣寫試不出來
不知如何才正確
請指點謝謝先
Sub Macro2()
SendKeys ("{PRTSC}")
Sheet1.[A1].Paste
End Sub

我的要求是
打開檔案時即擷取一張屏幕圖
(截屏前須先將EXCEL視窗縮至最小以顯現要截屏的畫面)
並將其貼到A1
以後每小時擷取一張屏幕圖
(截屏前一樣須先將EXCEL視窗縮至最小
下張圖則貼至最適合之高度之行(緊接前一張圖)
例如第一張圖貼滿A1:K20
第二張貼到A21
不知如何達成
敬請版主及高手大大們賜教
謝謝先
已記錄

機器人:請不要問我:為什麼?
好奇寶寶:哦...為什麼?
歡迎訪問My Blog
http://www.officefans.net/blog/?50809/action_viewspace_itemid_589.html
Emily_Li
尊貴會員
*
離線 離線

會員性別: 女
文章: 53


Re: 請問print screen的代碼如何寫??
« 回覆文章 #1 於: 2006-12-13, 14:22:13 »

一個 Print Screen 的例子, 但不是屏幕, 是 Web 的
http://cat14051.mysinablog.com/index.php?op=ViewArticle&articleId=77652


程式碼:
Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal _
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12
Dim ws As Worksheet

Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2


Sub Print_Screen()

keybd_event VK_MENU, 0, 0, 0
DoEvents

keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents

keybd_event VK_SNAPSHOT, 0, VK_KEYUP, 0
DoEvents

keybd_event VK_MENU, 0, VK_KEYUP, 0
DoEvents

ws.Paste Destination:=ws.Range("A1")
DoEvents
End Sub

Tools - Macro - Print_Screen   ' Active Windows

Ref:
http://www.officefans.net/cdb/viewthread.php?tid=66035&pid=472302&page=1&extra=page%3D2#pid472302
已記錄
Emily_Li
尊貴會員
*
離線 離線

會員性別: 女
文章: 53


Re: 請問print screen的代碼如何寫??
« 回覆文章 #2 於: 2006-12-13, 14:24:39 »

遺漏
Set ws = ActiveSheet
已記錄
hsieh
版主
*
離線 離線

會員性別: 男
文章: 3870



Re: 請問print screen的代碼如何寫??
« 回覆文章 #3 於: 2006-12-13, 14:27:06 »

少有API使用範例
多謝Emily_Li 前輩提供
供我後輩學習
已記錄

回答滿意嗎?
  記得告訴我哦!!
nolo
機器人
高中生
*
離線 離線

會員性別: 男
文章: 219



個人網站
疑問中???
« 回覆文章 #4 於: 2006-12-13, 15:32:43 »

謝謝Emily_Li 大姐姐 Smiley Wink
試試先 Cheesy
已記錄

機器人:請不要問我:為什麼?
好奇寶寶:哦...為什麼?
歡迎訪問My Blog
http://www.officefans.net/blog/?50809/action_viewspace_itemid_589.html
nolo
機器人
高中生
*
離線 離線

會員性別: 男
文章: 219



個人網站
Re: 請問print screen的代碼如何寫??
« 回覆文章 #5 於: 2006-12-13, 15:43:55 »

結果與要求有落差內 Lips Sealed Cry
這代碼是擷取excel的畫面
我的要求是
打開檔案時即擷取一張屏幕圖
(截屏前須先將EXCEL視窗縮至最小以顯現要截屏的畫面)
亦即是擷取另一個正於視窗最上層執行的程式畫面而不是擷取excel的畫面
並將其貼到A1
以後每小時擷取一張屏幕圖
(截屏前一樣須先將EXCEL視窗縮至最小)
不知能否改改
謝謝先 Cheesy


已記錄

機器人:請不要問我:為什麼?
好奇寶寶:哦...為什麼?
歡迎訪問My Blog
http://www.officefans.net/blog/?50809/action_viewspace_itemid_589.html
Emily_Li
尊貴會員
*
離線 離線

會員性別: 女
文章: 53


Re: 請問print screen的代碼如何寫??
« 回覆文章 #6 於: 2006-12-13, 17:58:53 »

你還是找 Capture Program 例如 SnagIt
已記錄
nolo
機器人
高中生
*
離線 離線

會員性別: 男
文章: 219



個人網站
Re: 請問print screen的代碼如何寫??
« 回覆文章 #7 於: 2006-12-13, 18:13:10 »


無論如何還是感謝Emily_Li 大姐姐 您:D
已記錄

機器人:請不要問我:為什麼?
好奇寶寶:哦...為什麼?
歡迎訪問My Blog
http://www.officefans.net/blog/?50809/action_viewspace_itemid_589.html
hsieh
版主
*
離線 離線

會員性別: 男
文章: 3870



Re: 請問print screen的代碼如何寫??
« 回覆文章 #8 於: 2006-12-14, 22:31:23 »

依樣畫葫蘆
利用Emily_Li 前輩程式碼修改
程式碼:
Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal _
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12
Dim ws As Worksheet

Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2


Sub Print_Screen()

keybd_event VK_MENU, 0, 0, 0
DoEvents
Application.WindowState = xlMinimized
Application.Wait Now + TimeValue("00:00:05")
keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents

keybd_event VK_SNAPSHOT, 0, VK_KEYUP, 0
DoEvents

keybd_event VK_MENU, 0, VK_KEYUP, 0
DoEvents
Application.WindowState = xlMaximized
Set ws = ActiveWorkbook.ActiveSheet
ws.Paste Destination:=ws.Range("A1")
DoEvents
Application.OnTime Now + TimeValue("01:00:00"), "Print_Screen"
End Sub

[附件已被管理員刪除]
« 最後編輯時間: 2006-12-14, 22:53:24 由 hsieh » 已記錄

回答滿意嗎?
  記得告訴我哦!!
nolo
機器人
高中生
*
離線 離線

會員性別: 男
文章: 219



個人網站
Re: 請問print screen的代碼如何寫??
« 回覆文章 #9 於: 2006-12-15, 01:40:09 »

哇!!!!萬歲 Grin
好像真的可以耶 Cheesy Wink
萬分謝謝hsieh 版主大大
測試先!!
已記錄

機器人:請不要問我:為什麼?
好奇寶寶:哦...為什麼?
歡迎訪問My Blog
http://www.officefans.net/blog/?50809/action_viewspace_itemid_589.html
頁: [1] 2 向上 列印 
« 上一篇主題 下一篇主題 »
跳到:  


本頁花了 0.323 秒, 以及 20 次的資料庫查詢.