Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Öppna fil i redan öppnat program.

Postades av 2003-11-21 16:50:38 - Jon Tejnung, i forum visual basic - allmänt, Tråden har 5 Kommentarer och lästs av 464 personer

Jag håller på med ett program men har fastnat.
Hur gör jag för att när man ska öppna en fil så ska den öppnas i mitt redan öppnade program?

Hoppas ni förstod vad jag menade.

/Jon


Svara

Sv: Öppna fil i redan öppnat program.

Postades av 2003-11-21 17:10:53 - Sven Åke Persson

Du vill kommunicera med ett redan öppnat prog ? tex Word ?


Svara

Sv: Öppna fil i redan öppnat program.

Postades av 2003-11-22 08:20:38 - Kenneth Hedman

Jag har gjort på följande vis.

Jag tar det via mitt scenario med min egen filmspelare
Användaren öppnar film1, spelaren öppnas och dess hwnd skrivs till registret.

Användaren har fortfarande spelaren öppen men klickar på film2 i explorer.
En ny instans av spelaren öppnas och via App.PrevInstance detectar jag att
det finns en föregående instans öppen.
Från den senaste instansen av spelare skickar jag då via API SendMessage sökvägen
till film2 till den först öppnade spelaren, har ju hwnd i registret. Första instansen av spelaren tar emot sökvägen i meddelandet till den och utför nödvändiga åtgärder för
att öppna den. Andra instansens slås ner.

Hoppas du förstår vad jag menar :-)


Svara

Sv: Öppna fil i redan öppnat program.

Postades av 2003-11-22 12:06:45 - Sven Åke Persson

Som jag ser det är det väl bara att växla med AppActivate "titel på Formen" eller processId.


Svara

Sv: Öppna fil i redan öppnat program.

Postades av 2003-11-22 17:48:39 - Kenneth Hedman

Skickar med lite kod också.....
kompilera nedanstående och öppna en instans av programmet.
Öppna sedan kommandotolken och skriv programnamn.exe Filenduvillöppna.txt
filnamnet kommer att skrivas i den första instansens form1.

Denna koden är för Form1
<code>
Option Explicit

Private Sub Form_Load()
Dim ret As Long
Dim cds As COPYDATASTRUCT
Dim buf(1 To 255) As Byte
Dim a As String, i As Long, prevHwnd As Long
PrevProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf CallbackMsgs)

If App.PrevInstance Then
If Command <> "" Then
a$ = Command
Call CopyMemory(buf(1), ByVal a$, Len(a$))
cds.dwData = 3
cds.cbData = Len(a$) + 1
cds.lpData = VarPtr(buf(1))
prevHwnd = GetSetting("TEST", "INSTANCE", "LATESTHWND", "0")
i = SendMessage(prevHwnd, WM_COPYDATA, Me.hwnd, cds)
End If
End
End If
SaveSetting "TEST", "INSTANCE", "LATESTHWND", CStr(Me.hwnd)
End Sub
</code>

Lägg denna koden i en modul

<code>
Option Explicit

Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type

Public Const WM_COPYDATA = &H4A
Public Const GWL_WNDPROC = -4
Public PrevProc As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

Public Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal _
wParam As Long, lParam As Any) As Long


Public Function CallbackMsgs(ByVal wHwnd As Long, ByVal wMsg As Long, ByVal wp_id As Long, ByVal lp_id As Long) As Long
If wMsg = WM_COPYDATA Then
PrevInstanceDetected lp_id
CallbackMsgs = 1
Else
CallbackMsgs = CallWindowProc(PrevProc, wHwnd, wMsg, wp_id, lp_id)
End If
End Function

Public Sub PrevInstanceDetected(lParam As Long)
Dim cds As COPYDATASTRUCT
Dim buf(1 To 255) As Byte
Dim a As String
Call CopyMemory(cds, ByVal lParam, Len(cds))

Call CopyMemory(buf(1), ByVal cds.lpData, cds.cbData)
a$ = StrConv(buf, vbUnicode)
a$ = Left$(a$, InStr(1, a$, Chr$(0)) - 1)
Form1.Print a$

End Sub
</code>




Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 553
27 958
271 741
2 802
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies