Avatar billede tdaugaard Nybegynder
23. juli 2001 - 00:40 Der er 10 kommentarer og
1 løsning

Checke om mit program allerede er åbent, og i så fald sende ALT videre til detq

Jeg skal bruge noget kode der gør at hvis mit program startes, men allerede ER startet lukker den anden instans og smider indholdet af COMMAND$ videre til den allerede kørende instans.

Point gives til den bedste, korteste og pæneste kode løsning.
Avatar billede sjh Nybegynder
23. juli 2001 - 18:29 #1
jeg kan hjælpe dig med<<

\'nu kan du kun åbne dit program en gang.
Private Sub Form_Load()
If App.PrevInstance Then End
End Sub
Avatar billede tdaugaard Nybegynder
23. juli 2001 - 19:40 #2
sjh:> men ehm .. det hjælper mig jo ligesom ikke med mit problem i at jeg skal kunne sende indholdet af Command$ videre !?
Avatar billede sjh Nybegynder
23. juli 2001 - 21:38 #3
Set en Text1 på en Form1:


Option Explicit

Private Declare Function SendMessageByString Lib \"user32\" Alias \"SendMessageA\" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

Public Function SendText(hwnd As Long, Text As String)
SendMessageByString hwnd, &HC, 0&, Text
End Function

Private Sub Form_Load()
Dim filpath As String \'sti
Dim SendCommando As Long \'hWnd kode

filpath = App.Path & \"\\hwnd.log\" \'sti for hwnd.log

If App.PrevInstance Then
  Open filpath For Input As #1
      SendCommando = Input(FileLen(filpath), #1) \'Open hWnd kode
  Close #1

SendText SendCommando, Command$ \'Sender Tekst til Text1
Unload Me \'Lukker programmet

Else
If Not filpath > \"\" Then Kill filpath \'sletter hwnd.log filen

  Open filpath For Output As #1
      Print #1, Text1.hwnd; \'Save hWnd kode for Text1
  Close #1

Text1.Text = Command$
End If

End Sub
Avatar billede tdaugaard Nybegynder
23. juli 2001 - 21:43 #4
Hmm .. det var godtnok en clumsy måde med filer und so .. det synes jeg ikke rigtigt ser \"holdbart\" ud ... jeg har lige postet Q på www.experts-exchange.com sååe .. jeg ser lige hvad der sker der ...
Avatar billede sjh Nybegynder
24. juli 2001 - 00:58 #5
Du kan jo også lave den sådan:

Option Explicit

Private Declare Function SendMessageByString Lib \"user32\" Alias \"SendMessageA\" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

Public Function SendText(hwnd As Long, Text As String)
SendMessageByString hwnd, &HC, 0&, Text
End Function

Private Sub Form_Load()
Dim SendCommando As Long

Text1.Visible = False

If App.PrevInstance Then
SendCommando = Val(GetSetting(\"MyAppName\", \"Command\", \"hWnd\", 0))
SendText SendCommando, Command$
Unload Me
Else
SaveSetting \"MyAppName\", \"Command\", \"hWnd\", Str$(Text1.hwnd)
Text1.Text = Command$
End If
End Sub

Private Sub Text1_Change()
If Text1.Text <> \"\" Then List1.AddItem Text1.Text
End Sub
Avatar billede tdaugaard Nybegynder
24. juli 2001 - 01:01 #6
Kunne jeg godt, men her ligger problemet i at det registy entry kan ændres af enhver med REGEDIT ...
Avatar billede sjh Nybegynder
24. juli 2001 - 01:04 #7
hvad sjovt skulle man have i det??
Avatar billede tdaugaard Nybegynder
24. juli 2001 - 01:07 #8
sjh:> dunno, men muligheden er der ...
Avatar billede sjh Nybegynder
24. juli 2001 - 01:11 #9
ja det vil den altid være, om du så gemmer den i hukommelsen
Avatar billede tdaugaard Nybegynder
24. juli 2001 - 01:19 #10
sjh:> Ja, men i REGEDIT er den ikke svær at finde .. desuden har jeg fået noget andet fra EE .. en ActiveX server EXE .. der virker som et mellemled .. langt mere effektivt .. men er stadig i gang med at finde ud af hvordan jeg skal bruge det ...
Avatar billede tdaugaard Nybegynder
24. juli 2001 - 12:30 #11
Lukker .. jeg har ikke fået noget brugbart, det har jeg derimod på EE ..

http://www.experts-exchange.com/jsp/qManageQuestion.jsp?ta=visualbasic&qid=20155683

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester