|  | 		    
					
    
        
            
                
                        
                
            
            
                
                |  |  | 
 
                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.
 |  |  | 
 |  |