Toon posts:

[VB/VBA] Het VBA-Project is vertaald in het engels

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag allemaal,

zie topic titel.

Ik ben bezig een conversie te schrijven van Excel95 naar Excel2000. Dit werkt prima, ik kan openen zonder de auto_macros te starten etc etc.

Echter, omdat in die Excel95 files ook oud VBA zit krijg ik en pop-window met "Het VBA-Project is vertaald in het engels".

Ik kan deze niet onderdrukken.

Ik heb al het volgende gedaan:

xlApp.DisplayAlerts = False
xlApp.Application.DisplayAlerts = False 'voor de zekerheid
xlApp.EnableEvents = False

Deze draaien ook maar onderdrukken mijn VBA melding niet.
En om de gebruiker nou 5000 x op "OK" te laten drukken vind ik ook zo zielig.

Iemand ideeen?

Ik ben nu aan het experimenteren met sendkeys. Echter, mijn sendkeys opdracht wordt pas uitgevoerd als de user op "OK" drukt terwijl mijn sendkeys dat wilt doen.

Daarom nog een keer proberen via GOT.

  • cinnamon
  • Registratie: April 2002
  • Niet online
eerst sendkeys, dan aanroep sub/functie die popup veroorzaakt

Verwijderd

Topicstarter
Helaas. Het lukt niet zoals het moet.

Ik ben nu aan het klooien met FindWindow.
Nadat het window gevonden is dan op "OK" te klikken (ik gebruik een spatie om dit voor elkaar te krijgen).

Eigenlijk zo (pseudo code):
code:
1
2
3
4
5
6
if exist FindWindow("Microsoft Visual Basic",_
              "Microsoft Visual Basic") then
   sendkeys.send(" ")
   else
   
end if

Maar zie dat maar voor elkaar te krijgen in VB.NET :'(

De documentatie laat me nu in de steek, net als de MSDN en Google. Ik probeer en probeer...

Verwijderd

Topicstarter
Opgelost.

Via een dikke omweg eigenlijk want ik kende dit nog uit het VB6 tijdperk. Dus ik heb m ook gemaakt in VB6.

Maar daarna ge-exporteerd naar VB.NET en nu draait ie als een zonnetje. De MSDN (ik heb de Juli 2002) cd's konden mij niet verder helpen dus daarom via deze weg.

Om de search nog waardig te houden hier de oplossing:

Ik heb een programma geschreven om de classname van een window te achterhalen. Gewoon even de MSDN induiken en knippen-plakken. Hiermee heb ik mijn window weten te achterhalen

lpClassName = "#32770"
lpCaption = "Microsoft Visual Basic"

Daarop de volgende code losgelaten:

MODULE:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Option Strict Off
Option Explicit On
Module Module1
Declare Function FindWindow Lib "user32" _
Alias "FindWindowA"(ByVal lpClassName As String, ByVal _
lpWindowName As String) As Integer

Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Integer, _
ByVal wMsg As Integer, ByVal wParam As Integer, _
ByRef lParam As Integer) As Integer
End Module

BUTTON ACTION:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim lpClassName As String
Dim lpCaption As String
Dim Handle_Renamed As Integer
        
Const NILL As Short = 0
Const WM_SYSCOMMAND As Short = &H112s
Const SC_CLOSE As Integer = &HF060
        
'classnames van te killen applicatie/window
lpClassName = "#32770"
lpCaption = "Microsoft Visual Basic"

'opdracht tot zoeken en sluiten applicatie
Handle_Renamed = FindWindow(lpClassName, lpCaption)
Handle_Renamed = SendMessage(Handle_Renamed, _
WM_SYSCOMMAND, SC_CLOSE, NILL)

Hiermee werkt mijn applicatie geweldig en zijn problemen opgelost. Het is jammer dat je op de zoekterm FindWindow geen ruk kan vinden op MSDN vwb VB.NET.
Voor VB6 had ik maar 1 seconde nodig.

Indien mensen mijn zoek-class programma willen hebben, geef een gil. Het heeft mij verschrikkelijk geholpen om de juiste windows te vinden.

:)

  • Wiebbe
  • Registratie: Februari 2001
  • Laatst online: 28-08 14:20

Wiebbe

<none />

Hmm,
dit is al een oud topic maar hij heeft wel precies wat ik moet hebben,
ik zou contact met hem ongenomen buiten GOT maar helaas staat er helemaal geen contact info bij hem :/
dus als je dit leest :P

ik zou graag dat programmatje willen hebben voor de classname.

Oh noes.. No more TreinTijden :(