PDA

View Full Version : بستن يک پنجره و آزاد کردن حافظه



Hossis
پنج شنبه 27 اسفند 1388, 07:31 صبح
من با استفاده از متد CreatObject يک فايل ورد رو باز مي کنم ولي براي بستن و آُزاد کردن حافظه مشکل دارم لذا نياز به کدي دارم که بتونه پنجره باز شده ورد رو ببنده!؟؟

Public Sub ShowWord(ByVal Parent As Object, ByVal Kind As Office, Optional ByVal filename As String = "")
Dim i, j As Object
Dim m1 As Integer
On Error Resume Next
If filename = "" Then filename = My.Application.Info.DirectoryPath + "\" + IIf(Kind = Office.Word, "Doc1.doc", "book1.xlsx")
Select Case Kind
Case Office.Word
WD = CreateObject("Word.Application")
WD.Caption = "besuretofindthisinstanceWord"
wdHwnd = FindWindow("OpusApp", WD.Caption)
WD.Documents.Open(filename)
Case Office.Excel
WD = CreateObject("Excel.Application")
WD.Caption = "besuretofindthisinstanceExel"
wdHwnd = FindWindow("XLMAIN", WD.Caption)
WD.Workbooks.open(filename)
End Select
BringWindowToTop(wdHwnd)
Dim Handel1 As Long = Parent.Handle.ToString
SetParent(wdHwnd, Handel1)
ShowWindow(wdHwnd, 3)
WD.CommandBars("Menu Bar").Enabled = False
WD.CommandBars("Standard").Visible = True
WD.CommandBars("Tables and Borders").Visible = False
WD.CommandBars("View").Controls(3).Execute()
WD.CommandBars("Document Recovery").Visible = False
WD.ActiveWindow.DisplayVerticalRuler = True
WD.ActiveWindow.DisplayRulers = True
m1 = CreateRectRgn(3, 3, ((Parent.Width)), ((Parent.Height) - 3))
MoveWindow(wdHwnd, 0, 0, (Parent.Width) - 6, (Parent.Height) - 30, 1)
SetWindowRgn(wdHwnd, m1, True)
If filename <> "" Then
RaiseEvent DocumentOpened(Me, filename)
End If
End Sub

mehdi.mousavi
دوشنبه 02 فروردین 1389, 02:25 صبح
من با استفاده از متد CreatObject يک فايل ورد رو باز مي کنم ولي براي بستن و آُزاد کردن حافظه مشکل دارم لذا نياز به کدي دارم که بتونه پنجره باز شده ورد رو ببنده!؟؟

سلام.
اگر منظورتون بستن خود Word هستش، میتونید از Application.Quit (http://msdn.microsoft.com/en-us/library/bb215475.aspx) استفاده کنید. یعنی تو کد شما، میشه: WD.Quit ( + پارامترهای مورد نیازتون بر اساس لینکی که دادم). اگر منظورتون بستن Document هاست، میتونید از متود Close (http://msdn.microsoft.com/en-us/library/bb214417.aspx) استفاده کنید.

موفق باشید.