|
|
Hej Berpox
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
if FindWindow("XLMAIN",vbnullstring)>0 then
msgbox "Excel kører"
Endif
| |
| Kommentar Fra : berpox |
Dato : 16-03-04 13:26 |
|
Hej CADmager
OK - det virker fint nok - så længe det er EXCEL. Du lige fortælle mig hvordan du kom fra EXCEL.EXE til at det er XLMAIN der skal kigges efter?
Hvis det nu er et andet program hvor man ikke "bare ved" at det hedder XLMAIN, hvordan finder jeg så ud af hvad vinduet hedder?
mvh Berpox
| |
| Accepteret svar Fra : CADmageren | Modtaget 150 point Dato : 16-03-04 16:14 |
|
Ja se det ved man da bare
Jeg fandt det faktisk i et eksempel, og har selv brugt det til netop Excel.
http://www13.brinkster.com/vincenzog/isxart.asp?idart=37
Tilsyneladende findes der et program der hedder Winspector.
Hvis du kender det fulde vinduesnavn, kan du også bruge FindWindows, og angive det andet argument istedet.
Når jeg selv skal grave i den slags, har jeg med stor success brugt http://www.mentalis.org/index2.shtml til at finde diverse API kald.
/ Michael Christoffersen
| |
| Godkendelse af svar Fra : berpox |
Dato : 17-03-04 15:37 |
|
Tak for svaret CADmageren.
Det var jo lige det jeg havde brug for - jeg kan nu ikke få det til at virke, for WinSpector har afdækket, at det class name der kan bruges i FindWindow genereres hver gang programmet startes Æv !
Men WinSpector gør sit arbejde helt kanon Det kan knag'me afdække lidt forskelligt må jeg sige...
mvh Berpox
| |
|
Tak for pointene. Men jeg mener stadig at du kan bruge FindWindow, hvis du kender det fulde Vinduesnavn.
Alternativt så kig på API-guide fra ovennævnte hjemmeside. Der er et godt eksempel på hvordan du kan "enumerere" over alle kørende processer - lidt i stil med tasklist. Denne kode må kunne bruges til at finde det program du søger.
Det lyder ikke til at det program du checker er et standard windows program, men ellers kunne man prøve med
on local error resume next
dim xApp as object
set xApp=GetObject("",<programnavn>)
if err then
Msgbox "Program kører ikke"
else
msgbox "Program kører
endif
set xApp=nothing
/ Michael Christoffersen
| |
| Kommentar Fra : berpox |
Dato : 18-03-04 09:26 |
|
Jo - jeg tror nu også det er FindWindow der skal bruges - det er bare lige at hitte ud af hvordan. Vinduesnavnet ændres nemlig også i takt med hvilke "dokumenter" der er aktive i programmet, og ja, det er ikke en MS office application men et CAD program der skal styres vha. bl.a. API, FSO osv....
Så jeg er i fuld gang med at forfølge idéen
Jeg skal lade dig det vide hvis jeg finder løsningen...
mvh Berpox
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|