2007년 12월 15일 토요일
Visual Basic에서 TaskBar 사이즈 얻어오기
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Dim hTaskbar As Long
Dim rTaskbar As RECT
Dim sClass As String
sClass = "Shell_TrayWnd"
hTaskbar = FindWindow(sClass, "")
GetWindowRect hTaskbar, rTaskbar
API Guide
이 글을 보는 모든 프로그래머에게 엄청나게 유용한 프로그램을 소개한다.
바로 API-Guide..
물론 아는 사람들도 많겠지만, 프로그래머를 바보로 만드는 유명한 프로그램이라 소개한다.
비주얼베이식 프로그래머들의 고질적인 단점이 뭘까...
바로.. Win32 API 가 뭔지도 모른다는거다. 비베의 한계를 뛰어넘기 위해서는
Win32 API를 써야 함에도 불구하고 많은 후잡 프로그래머들은 비베의 한계를 느끼고
프로그래밍을 접거나, MFC 쪽으로 넘어가고 만다.
이 글을 쓰고 있는 나도 고등학생때까지 비베에서 API라는 걸 쓰는 건 알고 있었지만
어떻게 써야 하는지 전혀 몰랐다.
자.. 여기 그런 프로그래머들을 위한 프로그램을 소개한다.
API Guide 는 약 1000개정도의 비주얼 베이식에서 사용할 수 있는 API를 간편하게 정리해놓은
프로그램이다. 물론 덤으로 그에 따른 예제까지 실어주고 있다.
너무 좋아하지는 마라..
이런 프로그램.. 예를 들어 VA(Visual Assistance)와 같이 프로그래머의 손을 더 쉽게 해주는 프로그램을 많이 쓰면 어느 순간에 그런것들이 없으면 프로그래밍이 불가능한 바보가 될지도 모르니깐... 정말 모를때만 쓰고 왠만하면 MSDN을 참고하는 습관을 들이자.
MSDN에는 API가 C 문법 위주로 나와 있는데 데이터 형만 잘 이해하고 있다면
Visual Basic에서도 얼마든지 사용 가능하다.
이상!
2007년 4월 9일 월요일
Uncompressed wave file 에서 정보 추출(VB)
[CODE type=vb] Public Type wave_header wavRIFFChunk As String * 4 wavSize As Long wavWaveChunk As String * 4 wavFMTChunk As String * 4 wavFormatSize As Long wavPCMFormatFlag As Integer wavChannel As Integer wavSampleRate As Long wavSampleRatePerSec As Long wavPerSecScale As Integer wavBits As Integer wavDataChunk As String * 4 wavDataSize As Long End Type Open txtFile1.Text For Binary As #1 Get #1, , openFile1 If openFile1.wavPCMFormatFlag <> 1 Then MsgBox "표준 PCM 웨이브 파일이 아닙니다.", vbOKOnly + vbInformation, "확인" Close #1 txtFile1.Text = "" Exit Sub End If MCI.Command = "stop" MCI.Command = "close" tinfo = "RIFF Chunk : " & openFile1.wavRIFFChunk & vbCrLf & _ "Size : " & openFile1.wavSize & vbCrLf & _ "Wave Chunk : " & openFile1.wavWaveChunk & vbCrLf & _ "FMT Chunk : " & openFile1.wavFMTChunk & vbCrLf & _ "Format Size : " & openFile1.wavFormatSize & vbCrLf & _ "PCM Format Flag : " & openFile1.wavPCMFormatFlag & vbCrLf & _ "Channels : " & openFile1.wavChannel & vbCrLf & _ "Sample Rate : " & openFile1.wavSampleRate & vbCrLf & _ "Sample Rate/sec : " & openFile1.wavSampleRatePerSec & vbCrLf & _ "Per sec Scale : " & openFile1.wavPerSecScale & vbCrLf & _ "Bits per Sample : " & openFile1.wavBits & vbCrLf & _ "Data Chunk : " & openFile1.wavDataChunk & vbCrLf & _ "Data Size : " & openFile1.wavDataSize lblInformation1.Caption = tinfo zNumSample1 = openFile1.wavDataSize / (openFile1.wavChannel * (openFile1.wavBits / 8)) lblWating1.Visible = True DoEvents ReDim WaveData1(openFile1.wavChannel, zNumSample1) 'reading data For i = 0 To zNumSample1 - 1 For j = 0 To openFile1.wavChannel - 1 If openFile1.wavBits = 8 Then Get #1, , sdata8 WaveData1(j, i) = sdata8 Else Get #1, , sdata16 WaveData1(j, i) = sdata16 End If Next Next lblWating1.Visible = False Close #1 [/CODE]
2006년 7월 20일 목요일
Where's my app.path in vb.net
Where's my App.Path in VB.NET?ID: 1064 Author: Abstractvb.com Date: 9/15/2002 12:59:10 PM VB.NET DescriptionThe APP Object no longer exists in VB.NET, so calling App.Path to get the location of your application does not work. Thankfully there are many other ways to do this in VB.NET, here are a few. NOTE: Some of these will only work for forms and not DLL's without any UI. The first two that reference the System.Windows.Forms namespace will not work in a DLL with no UI. CodeHere are a few examples: (I'm sure there are more.) System.Windows.Forms.Application.ExecutablePath System.Windows.Forms.Application.StartupPath System.AppDomain.CurrentDomain.BaseDirectory() System.GetEntryAssembly().Location |