史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   生活話題、日常閒聊、喇勒唬爛灌水區 (http://forum.slime.com.tw/f23.html)
-   -   一個簡單到只要隨便"估狗"都可以免費下載的程式 (http://forum.slime.com.tw/thread287559.html)

魔術王子 2017-06-28 08:32 PM

一個簡單到只要隨便"估狗"都可以免費下載的程式
 
我想應該沒有人會這麼閒吧
一個可以從網路隨便下載的免費軟體
甚至功力強一點的,找個試用版的,然後再找啟用碼把它變成完整版
就是這麼簡單,但有人就偏偏喜歡自己寫一個
而到底是怎樣的程式
"螢幕畫面擷取程式",就是把目前螢幕的畫面存程圖片檔
最簡單的方式就是按"PrtScr鍵,然後到小畫家貼上就行了
就是這麼簡單,雖然有一些小小的缺憾,就是沒有游標
但很多免費的小工具,也都具備這樣的功能
其實小王子也有從網路上找到一個叫做HyperSnap的截圖工具
只是小王子只是想要簡單的功能,而HyperSnap功能太過於強大,強大到小王子有股衝動想要設計一個類似的操作介面,但就只有截圖功能的程式

會程式設計的人都會有這種毛病嗎?還是說程式設計只是用在工作上
想當初DOS時代,會學BASIC的人,大部分都是把程式設計當玩具玩的,至少小王子是這樣

自從上次Basic設計完後,小王子最近又閒到想設計一個"螢幕畫面擷取"的小工具
而會想設計是因為上次再寫工作操作說明手冊時,為了截取螢幕操作畫面,所以用的HyperSnap
結果覺得這軟體非常好用,但有很多操作的動作,讓小王子覺得礙手礙腳的,而想要自己設計一個...

mini 2017-06-28 09:08 PM

以前在WinXP+VB6 時有接觸過螢幕截圖
找了一下還蠻單純的

使用三個 WinAPI
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long

程式碼:
PHP 語法:

Private Sub mCopyScreen_Click()

    
Dim hDC As Longsx As Integersy As Integer
    
    Me
.Hide
    DoEvents    
' 若不執行此一敘述,可讓 Me.Hide 不會即時被執行
    
    picCopy.Width = Screen.Width
    picCopy.Height = Screen.Height
    
    picCopy.AutoRedraw = True
    
    ' 
圖像的轉移
    hDC 
GetDC(0)                              ' 取得螢幕DC
    sx = Screen.Width \ Screen.TwipsPerPixelX   ' 
螢幕寬度(以Pixel為單位)
    
sy Screen.Height Screen.TwipsPerPixelY  ' 螢幕高度(以Pixel為單位)
    ' 
將螢幕DC的圖像轉移到名稱為picCopy的PictureBox中
    BitBlt picCopy
.hDC00sxsyhDC00vbSrcCopy
    ReleaseDC 0
hDC                            ' 釋放螢幕DC
    
    picCopy.AutoRedraw = False
    
    SetPicture      ' 
設定 PictureBox 與捲動軸之間的關係
    Me
.Show

End Sub 

(試了一下在Windows 10依舊可執行)

只要看得懂要翻譯成C/C++應該很簡單

HyperSnap 除了截圖
就是喜好他的畫箭頭與文字框
拿來製作簡單的說明用圖解很好用
不過覺得要用向量製圖還是首推
Corel Draw 或 Adobe Illustrator
只是屬於大型套裝軟體開啟速度不如HyperSnap
所以目前還是偏好HyperSnap

魔術王子 2017-06-28 09:20 PM

有這麼好用的語法喔:on_16::on_16::on_16:
這是用vb 2008完全不用引用API
PHP 語法:

        Me.Hide()
        
Dim dt As Double My.Computer.Clock.TickCount
        
While My.Computer.Clock.TickCount dt 1000
            My
.Application.DoEvents()
        
End While
        
Dim g As Graphics
        Dim bmp 
As Bitmap
        bmp 
= New Bitmap(My.Computer.Screen.Bounds.WidthMy.Computer.Screen.Bounds.Height)
        
Graphics.FromImage(bmp)
        
g.CopyFromScreen(New Point(00), New Point(00), New Size(My.Computer.Screen.Bounds.WidthMy.Computer.Screen.Bounds.Height))
        
g.Dispose()
        
'Dim i As Integer = 1
        '
While (My.Computer.FileSystem.FileExists(My.Computer.FileSystem.SpecialDirectories.Desktop "\ToyAide" ".jpg"))
        
' i += 1
        ' 
End While
        
' bmp.Save(My.Computer.FileSystem.SpecialDirectories.Desktop & "\ToyAide" & i & ".jpg")
        '
PictureBox1.Image bmp
        Me
.Show()
        
PictureBox1.Image bmp 

當然這是從網路上找到的,另外.NET還有圖片翻轉功能
PHP 語法:

        If PictureBox1.Image IsNot Nothing Then
            Dim Img 
As Image PictureBox1.Image
            Img
.RotateFlip(RotateFlipType.Rotate270FlipNone)
            
PictureBox1.Image Img
            Img 
Nothing
            ImageSize
()
        
End If 

再附加尺寸縮小語法
PHP 語法:

        ' If My.Computer.Clipboard.ContainsImage Then
        ' 
Get the scale factor.
        
Dim scale_factor As Single 0.5 'Single.Parse(txtScale.Text)

        ' 
Get the source bitmap.
        
Dim bm_source As New Bitmap(PictureBox1.Image)

        
' Make a bitmap for the result.
        Dim bm_dest As New Bitmap(CInt(bm_source.Width * scale_factor), CInt(bm_source.Height * scale_factor))

        ' 
Make a Graphics object for the result Bitmap.
        
Dim gr_dest As Graphics Graphics.FromImage(bm_dest)

        
' Copy the source image into the destination bitmap.
        gr_dest.DrawImage(bm_source, 0, 0, bm_dest.Width + 1, bm_dest.Height + 1)

        ' 
Display the result.
        
' My.Computer.Clipboard.SetImage(bm_dest)
        ' 
PictureBox1.Image My.Computer.Clipboard.GetImage
        
'PictureBox1.Image = bm_dest
        '  
End If
        
PictureBox1.Image bm_dest
        ImageSize
() 


魔術王子 2017-06-28 09:22 PM

這是BCB用API的程式碼而且還利用GetCursorInfo()取得游標資訊,加入游標,這部分在.NET還找不到程式碼
PHP 語法:

    ShowWindow(Application->Handle,SW_HIDE);
    
ShowWindow(Handle,SW_HIDE);
  
//  Application->ProcessMessages();
    
DWORD bt;
    
bt=GetTickCount();
    do {
      
Application->ProcessMessages();
    } while (
GetTickCount()-bt<(Edit2->Text.ToInt()*1000));
    
HDC ScrDC;
    
TRect R;
    
HWND Wnd=GetDesktopWindow();
    
ScrDC=GetWindowDC(Wnd);
    
GetWindowRect(Wnd, &R);
    
ImageBmp->Width R.right;
    
ImageBmp->Height R.bottom;
    
BitBlt(ImageBmp->Canvas->Handle00R.rightR.bottomScrDC00SRCCOPY);
    if(
CheckBox1->Checked){
      
CURSORINFO ci;
      
ci.cbSize=sizeof(CURSORINFO);
      
GetCursorInfo(&ci);
      
POINT pt;
      
GetCursorPos(&pt);
      
DrawIcon(ImageBmp->Canvas->Handlept.xpt.yci.hCursor);
    }
    
ReleaseDC(WndScrDC);
    
float sf=(float)ImageBmp->Width/(float)ScrollBox1->ClientRect.right;
    
Image1->Width=ImageBmp->Width/sf;
    
Image1->Height=ImageBmp->Height/sf;
    
Image1->Picture->Assign(ImageBmp);
    
Image1->Refresh();
    
ShowWindow(Application->Handle,SW_NORMAL);
    
ShowWindow(Handle,SW_NORMAL); 


mini 2017-06-28 11:09 PM

抓游標?
取得游標的座標後
再把 游標的圖 事後合成上去就可以了
(應該是這樣...?)

getter 2017-06-29 01:31 AM

迪西都用 FSCapture 免費版的說 ...,該有的功能都有 ...

DOS 時代則是用遊戲修改工具內附的抓圖工具 ...

魔術王子 2017-06-29 06:38 AM

引用:

作者: mini (文章 2369818)
抓游標?
取得游標的座標後
再把 游標的圖 事後合成上去就可以了
(應該是這樣...?)

我這兩天使用HyperSnap後發現,HyperSanap一啟動會先將剪貼簿清除
然後監視剪貼簿,只要有人按下PrtScr鍵,程式就會將資料取出,加入游標,顯示出來
或將自己隱藏,重新擷取畫面,加入游標
因為程式是"執行中",所以不需要將資料再存回剪貼簿

ppp0600 2017-06-29 11:10 AM

想請問可有簡單的網頁版通訊錄管理

不飛 2017-06-29 11:49 AM

引用:

作者: ppp0600 (文章 2369822)
想請問可有簡單的網頁版通訊錄管理

Gmail 通訊錄就口已的啦.....

安卓手機 換機換號 不用煩惱,直接從 Gmail 通訊錄下載聯絡人即可。

superxboy 2017-06-29 01:40 PM

我都用PicPick來截圖...可以設定截取游標

getter 2017-06-29 02:50 PM

引用:

作者: superxboy (文章 2369824)
我都用PicPick來截圖...可以設定截取游標

很多都可以吧 ... 迪西用的那套也可以,只不過迪西設定是取消的

好幾種相比,FastStone Capture 免費版的程式容量不大 ...

像是股溝軟體的還有結合「雲端」... 抓玩直接上傳 ... 而外附帶相片管理

另外有幾家的是,抓成動畫檔兼錄音加字幕 ... 格式有 AVI 或是 SWF 或是 GIF 格式

... 哪種好用 ... 能達到目的解決問題的就是好用 ...

mini 2017-06-29 03:34 PM

如果將BitBlt 改成 StretchBlt
就可以翻轉 與 縮放

Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

以下是將WinAPI與.NET的畫布概念之混和修改

PHP 語法:

   Private Declare Function GetDC Lib "user32" (ByVal hWnd As Integer) As Integer
   
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As IntegerByVal hDC As Integer) As Integer
   
Private Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As IntegerByVal x As IntegerByVal y As IntegerByVal nWidth As IntegerByVal nHeight As IntegerByVal hSrcDC As IntegerByVal xSrc As IntegerByVal ySrc As IntegerByVal nSrcWidth As IntegerByVal nSrcHeight As IntegerByVal dwRop As Integer) As Integer

Private Enum TernaryRasterOperations As UInteger
        
''' <summary>dest = source</summary>
        SRCCOPY = &HCC0020
        ''' 
<summary>dest source OR dest</summary>
        
SRCPAINT = &HEE0086
        
''' <summary>dest = source AND dest</summary>
        SRCAND = &H8800C6
        ''' 
<summary>dest source XOR dest</summary>
        
SRCINVERT = &H660046
        
''' <summary>dest = source AND (NOT dest)</summary>
        SRCERASE = &H440328
        ''' 
<summary>dest = (NOT source)</summary>
        
NOTSRCCOPY = &H330008
        
''' <summary>dest = (NOT src) AND (NOT dest)</summary>
        NOTSRCERASE = &H1100A6
        ''' 
<summary>dest = (source AND pattern)</summary>
        
MERGECOPY = &HC000CA
        
''' <summary>dest = (NOT source) OR dest</summary>
        MERGEPAINT = &HBB0226
        ''' 
<summary>dest pattern</summary>
        
PATCOPY = &HF00021
        
''' <summary>dest = DPSnoo</summary>
        PATPAINT = &HFB0A09
        ''' 
<summary>dest pattern XOR dest</summary>
        
PATINVERT = &H5A0049
        
''' <summary>dest = (NOT dest)</summary>
        DSTINVERT = &H550009
        ''' 
<summary>dest BLACK</summary>
        
BLACKNESS = &H42
        
''' <summary>dest = WHITE</summary>
        WHITENESS = &HFF0062
    End Enum

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim hDC As Integer, sx As Integer, sy As Integer

        Me.Hide()

        PictureBox1.Width = My.Computer.Screen.WorkingArea.Width
        PictureBox1.Height = My.Computer.Screen.WorkingArea.Height

        hDC = GetDC(0) ' 
取得螢幕DC
        sx 
PictureBox1.Width
        sy 
PictureBox1.Height

        Dim g 
As Graphics PictureBox1.CreateGraphics
        Dim bmp 
As Bitmap = New Bitmap(My.Computer.Screen.Bounds.WidthMy.Computer.Screen.Bounds.Height'記憶體圖空間
        g = Graphics.FromImage(bmp) '
畫布

        
' 將螢幕DC的圖像轉移到PictureBox1
        StretchBlt(g.GetHdc, 0, 0, sx, sy, hDC, 0, 0, sx, sy, TernaryRasterOperations.SRCCOPY) '
PictureBox1.CreateGraphics.GetHdc
        PictureBox1
.Image bmp
        PictureBox1
.Update() '不更新就不會顯示出來
        '
釋放資源
        ReleaseDC
(0hDC)
        
g.ReleaseHdc()

        
Me.Show()

    
End Sub 


ppp0600 2017-06-29 04:04 PM

引用:

作者: 不飛 (文章 2369823)
Gmail 通訊錄就口已的啦.....

安卓手機 換機換號 不用煩惱,直接從 Gmail 通訊錄下載聯絡人即可。

其實我是想弄個網頁版給一個社群的人使用,只是不會寫程式,也想不到辦法:on_14:

魔術王子 2017-06-29 08:01 PM

引用:

作者: ppp0600 (文章 2369822)
想請問可有簡單的網頁版通訊錄管理

為了脫離電腦領域,只要跟網頁有關的程式設計小弟一概不碰:on_52::on_52::on_52:

getter 2017-06-29 09:13 PM

引用:

作者: 魔術王子 (文章 2369831)
為了脫離電腦領域,只要跟網頁有關的程式設計小弟一概不碰:on_52::on_52::on_52:

為了脫離電腦領域,迪西一律說「我只會玩,不會修。要修電腦請找電腦公司。」 :on_52::on_52::on_52:

魔術王子 2017-06-29 10:19 PM

引用:

作者: getter (文章 2369832)
為了脫離電腦領域,迪西一律說「我只會玩,不會修。要修電腦請找電腦公司。」 :on_52::on_52::on_52:

在公司這樣說就準備走路啦:on_72:

魔術王子 2017-06-29 10:32 PM

程式已經"粗略"寫好了,有人有興趣測試看看嗎
不過剛剛測試了一下還有一些問題,就是再簡易編輯時,因為掃描剪貼簿沒關掉
導致剪下或複製的資料會被清除,所以簡易編輯時,要把掃描剪貼簿關掉
還有就是記憶體分配問題沒考慮進去,所以造成圖片閃爍嚴重
https://mega.nz/#!2M5znZpQ!GSY_y3Ibk..._XzuL9rX9qgCtk

superxboy 2017-06-29 11:03 PM

引用:

作者: getter (文章 2369832)
為了脫離電腦領域,迪西一律說「我只會玩,不會修。要修電腦請找電腦公司。」 :on_52::on_52::on_52:

迪西讓我想起以前大學女同學

來找我重灌電腦...說給你重灌電腦不錯喔...重灌一次可以兩三年重灌一次

我對她說...你只有重灌才會出現在我家

結果她回...我們不是朋友嗎

兩三年才見一次...重灌完就拿回家看韓劇...那次重灌後...我就叫她別來找我了

getter 2017-06-29 11:15 PM

引用:

作者: 魔術王子 (文章 2369834)
在公司這樣說就準備走路啦:on_72:

不是修電腦的部門 ... 就沒關係 ... :on_85::on_85::on_85:

leowang 2017-07-04 11:50 AM

引用:

作者: superxboy (文章 2369838)
迪西讓我想起以前大學女同學

來找我重灌電腦...說給你重灌電腦不錯喔...重灌一次可以兩三年重灌一次

我對她說...你只有重灌才會出現在我家

結果她回...我們不是朋友嗎

兩三年才見一次...重灌完就拿回家看韓劇...那次重灌後...我就叫她別來找我了

送出好人卡一張:on_14:

mini 2017-07-04 12:11 PM

引用:

作者: 魔術王子 (文章 2369835)
程式已經"粗略"寫好了,有人有興趣測試看看嗎
不過剛剛測試了一下還有一些問題,就是再簡易編輯時,因為掃描剪貼簿沒關掉
導致剪下或複製的資料會被清除,所以簡易編輯時,要把掃描剪貼簿關掉
還有就是記憶體分配問題沒考慮進去,所以造成圖片閃爍嚴重
https://mega.nz/#!2M5znZpQ!GSY_y3Ibk..._XzuL9rX9qgCtk

或許位元圖空間之宣告
不要放在 MOUSEMOVE裡會比較好
因為一來MOUSEMOVE觸發時間間隔是不穩的
二來過於平凡的大面積記憶體空間 宣告又回收 感覺是很費工的(可以改放在抓圖後與程式結束)
最後
總覺得會閃爍 最大問題是出在 Refresh 放在 MOUSEMOVE裡
如何解決
因為沒有編譯器也沒法驗證

魔術王子 2017-07-04 02:50 PM

引用:

作者: mini (文章 2369925)
或許位元圖空間之宣告
不要放在 MOUSEMOVE裡會比較好
因為一來MOUSEMOVE觸發時間間隔是不穩的
二來過於平凡的大面積記憶體空間 宣告又回收 感覺是很費工的(可以改放在抓圖後與程式結束)
最後
總覺得會閃爍 最大問題是出在 Refresh 放在 MOUSEMOVE裡
如何解決
因為沒有編譯器也沒法驗證

正打算先在記憶體內將方框畫好再貼到Image上來處理

魔術王子 2017-07-04 03:48 PM

引用:

作者: mini (文章 2369925)
或許位元圖空間之宣告
不要放在 MOUSEMOVE裡會比較好
因為一來MOUSEMOVE觸發時間間隔是不穩的
二來過於平凡的大面積記憶體空間 宣告又回收 感覺是很費工的(可以改放在抓圖後與程式結束)
最後
總覺得會閃爍 最大問題是出在 Refresh 放在 MOUSEMOVE裡
如何解決
因為沒有編譯器也沒法驗證

剛剛有試著remark Refreah,結果一樣,即使將圖在記憶體畫好,再貼上,一樣閃爍

魔術王子 2017-07-04 03:54 PM

好像是使用多重視窗造成的
晚上小弟再分享第一次設計的程式,完全就沒有閃爍的狀況

a471 2017-07-04 06:19 PM

引用:

作者: leowang (文章 2369924)
送出好人卡一張:on_14:

這傢伙失敗的地方就是給人家一灌用三年,要是一灌用2個月....熊媽
早抱孫了......

不過我也好不到哪去~~~我一灌用6年....機器都淘汰了還不壞:on_36:

魔術王子 2017-07-04 07:42 PM

https://mega.nz/#!zER1UCZZ!VKQKgCjKf...r8gxhMYyI0RegY
大家玩玩看吧

魔術王子 2017-07-06 08:04 PM

引用:

作者: mini (文章 2369925)
或許位元圖空間之宣告
不要放在 MOUSEMOVE裡會比較好
因為一來MOUSEMOVE觸發時間間隔是不穩的
二來過於平凡的大面積記憶體空間 宣告又回收 感覺是很費工的(可以改放在抓圖後與程式結束)
最後
總覺得會閃爍 最大問題是出在 Refresh 放在 MOUSEMOVE裡
如何解決
因為沒有編譯器也沒法驗證

今天找到原因了,只要將Image1的Stretch屬性設成True就不會有閃爍了
不過程式裡有很多效果都是手動的,所以很怕這樣改會影響到程式的一些功能

superxboy 2017-07-09 03:36 PM

引用:

作者: a471 (文章 2369930)
這傢伙失敗的地方就是給人家一灌用三年,要是一灌用2個月....熊媽
早抱孫了......

不過我也好不到哪去~~~我一灌用6年....機器都淘汰了還不壞:on_36:

我想練童子功...我全身上下沒有罩門

魔術王子 2017-07-14 10:30 PM

https://mega.nz/#!6VA2DIAZ!5kBOQTEl1...MxbPOz3UQk-Gvc
好了,這大概是小王子最滿意的成品吧
不過仍有一些Bug在,目前知道的就是如果圖是在1:1的狀態下修改,顯示會亂掉,不過小王子有想到原因,可惜想到時已經下班了,來不及修改
原因是程式為了處理再縮圖時也能繪圖,所以用了兩個圖片庫,一個是存放正常大小的圖,一個是縮小或放大的圖,縮小圖會顯示在畫面,當使用者在上面做圖時,就會對應到正常圖上,但如果是1:1,那就不需要縮小圖,但上一個縮小圖的資料還在,所以就會出問題
另外一個是在剪裁時,會出現問題,原因還沒想到

不可思議的題外話
老實說會寫成這個程式有點不可思議,因為小王子在完成這個程式之前,已經寫過快十個失敗的程式(其實是不滿意),每次只要不滿意,小王子就會放棄,然後重開一個新的Project重寫,其實現在小王子寫程式都養成這個壞習慣(含程式命名)
然而在開始寫這個程式的前一天晚上,小王子練習了一個小魔術,結果隔天,小王子很輕鬆的就解決在縮圖繪圖的程式碼邏輯
或許是胡思亂想吧,但小王子覺得"長輩"一直再督促小王子學魔術,這段時間一直寫不出好程式,可能也是受到影響吧(以練習魔術來說,只要中間過程有一點小疏忽,就要重新來過的道理一樣的)
有了這樣的想法,自己反而覺得開心,自從知道這件秘密後,就一直希望能夠接受"長輩"教導,可惜已經沒機會了,但現在有這樣的感覺,也是很開心的

mini 2017-07-16 07:58 PM

那個時鐘旁的 [ab]鈕是甚麼作用?
窗體不見了要用工作管理員才能終結...

以前寫程式都要用英文取 變數/物件Name (英文詞窮有時寫完還真的會不知是啥作用~)
後來.NET可以用中文
覺得這一點蠻方便的

個人寫程式就與魔王不同
捨棄的程式碼大多只會註解掉(留做一個經驗)
還有
畢竟要重開一個專案重新規劃窗體太費工夫了
以前學校是教畫功能圖
但自己幾乎從沒這樣照本宣科過
一切是以實現 窗體的表面功能為開始

覺得寫程式最常遇到最花腦的地方就是
如何利用簡單的數學計算實現功能
時常差這麼個 1 就會不對位
其實只要筆寫在紙上應該就能好過些
但就是習慣都在腦裡想...

魔術王子 2017-07-16 08:59 PM

引用:

作者: mini (文章 2370118)
那個時鐘旁的 [ab]鈕是甚麼作用?
窗體不見了要用工作管理員才能終結...

以前寫程式都要用英文取 變數/物件Name (英文詞窮有時寫完還真的會不知是啥作用~)
後來.NET可以用中文
覺得這一點蠻方便的

個人寫程式就與魔王不同
捨棄的程式碼大多只會註解掉(留做一個經驗)
還有
畢竟要重開一個專案重新規劃窗體太費工夫了
以前學校是教畫功能圖
但自己幾乎從沒這樣照本宣科過
一切是以實現 窗體的表面功能為開始

覺得寫程式最常遇到最花腦的地方就是
如何利用簡單的數學計算實現功能
時常差這麼個 1 就會不對位
其實只要筆寫在紙上應該就能好過些
但就是習慣都在腦裡想...

抱歉,那是將剪貼簿資料清除,然後監控剪貼簿,只要剪貼簿有圖片進入,就將圖片貼出,類似按下prtscr鍵,因為沒有這種鍵的圖示,就用ab圖示來代替(只要按下PrtScr鍵,視窗就會回復)
第一個按鈕打算設計成"常駐"式,然後一直監控剪貼簿,並再trayicon放一個圖示來控制程式
其實我也是很常用remark,但多了會影響到思索邏輯
有時新的邏輯靈感來時常常會被原有的程式碼導亂或誤導影響邏輯,所以不如重新來過
這些問題下禮拜整個程式都寫好後,會再加入提示訊息的

魔術王子 2017-07-18 06:56 AM

https://mega.nz/#!7VgxUASB!NBbjh9QHG...HJLp1wTAnkfDAc

最後的修改版本:on_79::on_79::on_79:

mini 2017-07-18 09:50 AM

尺寸縮減 看起來怪怪的

魔術王子 2017-07-18 12:32 PM

引用:

作者: mini (文章 2370138)
尺寸縮減 看起來怪怪的

那是臨時起意的,而且目前只能縮半,看看有沒有朋友可以增加它的使用彈性:on_79::on_79::on_79:

魔術王子 2017-07-18 03:24 PM

發現「調整尺寸」不可思議的bug,已經改好了,晚上再放上來,不知是否還有其他bug

魔術王子 2017-07-18 08:22 PM

https://mega.nz/#!WIJVnL6A!H3qdr9k8z...K55xP06jG2X4_8
尺寸縮小部分有修改了,由於並未加入尺寸是否超出視窗範圍進行Fit或顯示原尺寸的判斷
所以縮小後,若尺寸小於顯示視窗,程式就會將圖片放大(看起來就會怪怪的)
另外新加入的旋轉及翻轉功能,是抄襲書籍的,而書籍出版的年代是windows 98,所以在解析度上會失真,這只是跟大家說一下,有這種技術

魔術王子 2017-07-21 10:09 PM

https://mega.nz/#!iZYDzTzY!0wbXvvH6x...bcH5Ttz_Q4gRow
為了解決自動調整圖片檢視尺寸的問題小王子再度將程式重新設計,這也是小王子設計程式的習慣之一
當程式碼越來越複雜時,只好另起新專案將程式重寫,或將新構想在新專案上設計好後再寫回原程式
而小王子會選擇重寫的原因是圖片檢視大小的程式碼仍有很大的問題,利用重寫將程式碼再重新思考,另外定時擷取只能使用一次的問題下禮拜改進
程式重寫後,大部分功能仍沿用原來的程式碼,只是其他功能是否完整,就不得而知,這次改寫還有一個地方本來也要改進的就是自動偵測圖片高度及寬度(檢視百分比旁的兩個按鈕),可惜這幾天太忙了,來不及完成,只好等待下禮拜

這個程式算是小王子離開程式設計領域的"告別作",所以希望力求完美,而且裡面有很多都是自己這段時間所學到的技術,也順便分享給大家

魔術王子 2017-07-24 07:55 PM

https://mega.nz/#!rBhRlKJC!p_4wgogKa...2R9ggGcdTxpMg8
這應該是最後的版本了
不過小王子又額外加了三個功能
第一個是基本的開啟圖檔本來試不打算加入這個功能的因為這是一個螢幕畫面擷取程式,加了開啟的功能怕會變成袖珍版的小畫家
第二個是拖曳的功能,就是可以將圖檔從檔案總管或桌面托到程式視窗上(程式必須在執行中),程式就會開啟檔案(而且可以多個檔案)
第三個是將選擇的圖檔會到剪貼簿上這在小王子的工作上相當常用,往往需要將照好的照片貼到Wrod編輯,這時就必須要開啟小畫家,而且若圖檔解析度高,還必須將圖檔縮小在圈選複製到剪貼簿這功能可以讓你直接選擇圖檔,然後就傳到剪貼簿裡

目前這個程式大概就這樣啦,設計有點粗枝大葉的如果你喜歡這個構想,或裡面某段程式碼,歡迎你將它重新設計,變成你自己的工具
也許未來小王子可能又會再重新設計一個新的(因為太過於粗枝大葉了),相信那時還是會分享給大家的


所有時間均為台北時間。現在的時間是 11:32 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1