2013年6月16日 星期日

Procedure GetProcessList(List Process.PrsInfo())

Procedure GetProcessList(List Process.PrsInfo())
  If OpenLibrary(0, "psapi.dll")
    EnumProcesses = GetFunction(0, "EnumProcesses")
    EnumProcessModules = GetFunction(0, "EnumProcessModules")
    GetModuleBaseName = GetFunction(0, "GetModuleBaseNameA")
    CallFunctionFast(EnumProcesses, ProcessesArray(), #NbProcessesMax, @nProcesses)
    For k = 0 To nProcesses >> 2
      hProcess = OpenProcess_(#PROCESS_QUERY_INFORMATION | #PROCESS_VM_READ, #False, ProcessesArray(k))
      If hProcess
        CallFunctionFast(EnumProcessModules, hProcess, @BaseModule, 4, @cbNeeded)
        Prozess$ = Space(cbNeeded)
        CallFunctionFast(GetModuleBaseName, hProcess, BaseModule, @Prozess$, cbNeeded)
        If Len(Prozess$) <> 0               ;z.B. System
          ;AddGadgetItem(Gadget, -1, Prozess$ + Chr(10) + Str(ProcessesArray(k)))
          Debug Prozess$+" "+Str(ProcessesArray(k))
          AddElement(Process())
          Process()\path=Prozess$
          Process()\pid=Str(ProcessesArray(k))
        EndIf
        CloseHandle_(hProcess)
      EndIf
    Next
    CloseLibrary(0)
  EndIf
EndProcedure

Procedure ListFile(List Dir.DirInfo(),rootdir.s)


Structure DirInfo
  Name$
  Size$
  DirType.l
  Path$
EndStructure


Enumeration 
  #Directory 
EndEnumeration

Global NewList Dir.DirInfo()

Procedure ListFile(List Dir.DirInfo(),rootdir.s)
 
 
  Directory$ = rootdir
  If ExamineDirectory(#Directory, Directory$, "*.*") 
    While NextDirectoryEntry(#Directory)
      If DirectoryEntryName(#Directory)<> ".." And DirectoryEntryName(#Directory)<> "."
        AddElement(Dir())
        Dir()\Path$=rootdir
        Dir()\Name$=DirectoryEntryName(#Directory)
        Dir()\Size$= Str(DirectoryEntrySize(#Directory))
        If DirectoryEntryType(#Directory) = #PB_DirectoryEntry_File
          Dir()\DirType = 0
        Else
          Dir()\DirType = 1
        EndIf
      EndIf
    Wend
    FinishDirectory(#Directory)
    SortStructuredList(Dir(), #PB_Sort_Ascending, OffsetOf(DirInfo\DirType),#PB_Sort_Long)
   
  EndIf          
 
 
 
EndProcedure

ListFile(Dir(),"c:\windows")
dirstr.s="dir"
ForEach Dir()
  dirstr=dirstr+Dir()\Name$  + ":" + Dir()\Size$+ ":" + Str(Dir()\DirType)+"|"
Next

If Len(dirstr)<8187
 
 
  Debug dirstr+"->"
 
Else
 
EndIf
ClearList(Dir())

edit purebasic at notepad++


userDefineLang-PB440.xml
userDefineLang-PB450.xml
Note: the Highlighting PB-4.50 still is actual, as no new functions have been added to PB 4.51!

1- Rename userDefineLang-PB440.xml To userDefineLang.xml
2- Copy it To c:\users\Mistrel\AppData\Roaming\Notepad++ (If your user name is Mistrel)

You will find PureBasic listed at the End

You can have several user-languages if you like and they are all within this file, surrounded by
Quote:
<NotepadPlus>
<UserLang>
one language
</UserLang>

<UserLang>
another language
</UserLang>

</NotepadPlus>
and appear in the editors language-list (very bottom).
You can change anything you like For PureBasic spec file As follows :
1- Start notepad++ v5.6.6
2- Goto View-->User-Defined Dialugue
3- User Language : PureBasic
4- Change anything you like (Font name - Font Size - Color ......) Or add keywords Or ....
5- Close the dialogue (Just close it nothing more)
6- Close Notepad++
7- StartNotePad++ again And choose PureBasic from Language
 

Procedure GetAllDrives(List Drive.DriveInfo())


Structure DriveInfo
  DriveLetter$
  Volume$
EndStructure

Global NewList Drive.DriveInfo()
Procedure GetAllDrives(List Drive.DriveInfo())
  Protected memLen, *buffer, numDrives, *ptrChar.CHARACTER, i
  memLen = GetLogicalDriveStrings_(0, 0)
  If memlen
    *buffer = AllocateMemory(memLen * SizeOf(CHARACTER))
    If *buffer
      numDrives = GetLogicalDriveStrings_(memLen,*buffer)>>2
      *ptrChar = *buffer
      For i = 1 To numDrives
        AddElement(Drive())
       
        Drive()\DriveLetter$ = UCase(PeekS(*ptrChar,3))
       
        *ptrChar + SizeOf(CHARACTER)<<2
        Drive()\Volume$ = Space(256)
        If Drive()\DriveLetter$ <> "A:\"
          GetVolumeInformation_(Drive()\DriveLetter$, @Drive()\Volume$,255,0,0,0,0,0)
        Else
          Drive()\Volume$="x"
        EndIf
        If Drive()\Volume$=""
          Drive()\Volume$="?"
        EndIf
      Next
      FreeMemory(*buffer)   
    EndIf
  EndIf
EndProcedure
 GetAllDrives(Drive())
drvstr.s="drv"
ForEach Drive()
    drvstr.s=drvstr+Drive()\DriveLetter$  + ":" + Trim(Drive()\Volume$)+"|"
Next
Debug drvstr+"->"           
ClearList(Drive())





買了新微單,EOS-M

PCHOME賣19900,平行輸入簡中版,附雙鏡頭、閃光燈(EF-M 18-55mm F3.5-5.6 IS STM 標準變焦鏡+EF-M 22mm F2 STM 定焦鏡+Speedlite 90EX 閃光燈)及EF鏡頭的轉接環,加上我本身就有EF-PB的轉接環及2顆德國百佳Pentacon鏡頭。

老鏡新生,加上新鏡,只差新出的廣角鏡了(還忘了附上70~210mm的照片)
APS-C和FF的視野換算
http://www.taiwan-photoschool.com/index.php?action=teach_detail&&id=178

鏡頭FX/角度APS-C/角度鏡頭FX/角度APS-C/角度
14mm11490600mm42
16mm魚眼18010717~35mm104~6279~44
18mm1007618~35mm100~6276~44
20mm947024~50mm84~4661~31
24mm846124~85mm84~2861~18
28mm745324~120mm84~2061~13
35mm624428~70mm74~3453~22
50mm463128~80mm74~3053~20
60mm392628~100mm74~2453~16
85mm281828~105mm74~2353~15
105mm231528~200mm74~1253~8
135mm181235~70mm62~3444~22
180mm13970~180mm34~1322~9
200mm12870~200mm34~1222~8
300mm8570~300mm34~822~5
400mm6480~200mm30~1220~8
500mm5380~400mm30~620~4
註:FX為全片幅,APS-C為非全片幅

若以FF 50mm的視角46度,比照APS-C相當於35mm,EF-M 18-55mm這顆就可以用。
EF-M 22mm那顆就相當於FF 35mm中廣角
新出的EF-M 11-22mm相當於FF 18-22超廣角
百佳的50mm接到EOS-M就相當於FF 70mm的視角
百佳的135mm接到EOS-M就相當於FF 200mm的視角,拍人像特寫很適合。

http://digiphoto.techbang.com/posts/3845-typical-use-of-aperture-priority-and-skills

戶外人像寫真、婚紗攝影常用F2.8、F4這樣的大光圈拍攝,讓景深變得很淺,配合135mm的中長焦距,模糊的背景在突顯主體的同時營造柔美的畫面氛圍。

設定大光圈、使用長焦鏡頭拍攝、靠近主體、讓主體遠離背景,都能夠拍攝出背景更加模糊的淺景深照片。

經過轉接後,視角倍率會改變,但是景深的影響程度還需測試。
可以肯定的是因為APS-C片幅較FF來的小,單位像素進光量較FF小,低光源環境下雜訊會較高,其他在光圈、快門等使用技巧應該差別不大。

下面已經有人做過測試
http://judelaw.pixnet.net/blog/post/31604835 全片幅 FF 機種與 APS-C 景深差別

幾個例子比較下來,不難發現同樣的構圖下與相機設定, FF 全片幅機種的景深範圍相較於 APS-C 是較淺、薄一些,這些照片都是在光圈 F4 設定下所拍出來的,倘若用更大光圈差別會是更明顯。

似乎是FF景深較淺,所以在APS-C上需要較淺的景深時(在相同構圖下),盡量接近主體以及使用較大焦距鏡頭(但是兩者都會放大主體,破壞構圖,不知哪一種效果較佳)

http://cck0217.myweb.hinet.net/TNGNEW-6.html

景深控制手法就非常重要了,以背景的散景來看,我們應該越接近人像,散景效果越好。若前景的散景來看,剛好相反,我們應該遠離人像,但又得注意主體比例,所以必須使用長焦距鏡頭。

簡單個改變主體的拍攝方向而已,用特寫的方式,擷取單獨的背景,自然而然的使背景散景的效果更為明顯,再加上稍微逆側光的效果,使頭髮邊緣反光,更顯得整體畫面的美觀。

嗯,鏡頭效果比接近主體好,所以要敗家。

一般初學者常犯的錯誤就是『貪心』,眼界內所看到的景物都想攝入畫面中,造成主題不明確、主體太小,前景、中景、背景混雜在一起,而表現不出特色來。無論主體是前景、中景或背景,只要把握著主體的比例大小,人們才會有興趣繼續看下去。

人像特寫,焦點不但要在人身上,而且要對焦在眼睛,否則模特兒會顯得沒有神採;拍攝一場排的椅子,焦點要對在第幾張椅子上?要表現數大的延伸感,還是其中一張椅子斑駁的樣子?拍攝剪影時,要使背景得到模糊的短焦距?還是忠實的紀錄遠方的雲彩?而你的焦距應該對在剪影身上、後方的背景、還是來個全焦點攝影?不知各位是否有仔細想過這些問題呢!


看來有很多因素要考慮,難怪有人說攝影是減法的表現
http://digiphoto.techbang.com/posts/1129-that-is-give-up-gains
http://photalks.com/2010/08/%E6%94%9D%E5%BD%B1%E6%98%AF%E6%B8%9B%E6%B3%95

攝影應該也可以說是透過畫家的眼來看世界,如果畫家的畫都完全寫實,就喪失它的價值,畫家會透過特有的意念將寫實的畫面加以扭曲改變。
攝影也算是讓時間凍結的技巧,就好像是對你關心環境做摘要一樣,以一張圖來代表某一個故事,最常用的就是新聞攝影及商業攝影,算是一種加法的表現。
其實不論是減法或加法,就跟投資股票一樣,選好股票,淘汰爛股票,才能讓你賺錢,所以宇宙之道,一以貫之,哈哈。

http://www.books.com.tw/exep/prod/booksfile.php?item=0010554542
這方面的書還不少,或是先學畫畫再學攝影?

在後製越來越普遍的情況下,拍攝者往往兼差畫家的工作,用PS去改變原有的作品,亦即所謂的修圖。

夢想被理想妥協的黃牌車,Aeon elite 300i

定價148K,比高檔白牌只貴幾萬,拿來上下班首選。
我的老艦以後只有在買早餐、宵夜、理髮這種瑣事才需要麻煩它。
老艦不死,只是凋零。
至於新四輪,就先緩一緩囉。

老艦要繼續活下去擔當大任囉!因為生涯規劃可能改變,不能再花錢了!


機器腳踏車使用牌照稅稅額表 機車汽缸總排氣量(立方公分)c c                 稅額(新臺幣元)
150cc以下                                                       0
151-250cc                                                    800
251-500cc                                                   1,620
501-600cc                                                   2,160
601-1200cc                                                 4,320
1201-1800cc                                               7,120
1801以上                                                    11,230
排氣量500cc以下: 牌照稅 1620 + 燃料稅 2160 = 3780元

排氣量501-600cc: 牌照稅 2160 + 燃料稅 2880 = 5040元

排氣量601-1200cc: 牌照稅 4320 + 燃料稅 4320 = 8640元

排氣量1201-1800cc: 牌照稅 7120 + 燃料稅 4800 = 11920元

排氣量1801-2400cc: 牌照稅 11230 + 燃料稅 6210 = 17440元

所以一年要多出3780的的稅,相當於30杯星巴克,一個月就少喝2杯吧,相較節省的油錢和時間,絕對值得。

我的老天(老天是一部車),又要繼續頭好壯壯了,1997年出廠,2013年仍舊不死,也不凋零。