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


COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-26 15:20:53 - Raderat konto, i forum microsoft office, Tråden har 13 Kommentarer och lästs av 1032 personer

Jag har en filhanterare i Excel. Om en fil inte hittas vill jag köra Start-menyns sökfunktion automatiskt med filnamnet som argument. Så långt har jag lyckats men om jag kört tex Edit.com eller Command.com innan jag skickar namnet på en saknad fil till ShellExecute, så tar det ca 15 sekunder innan sökfunktion startas, då i och för sig som den ska. Jag har stegat genom programmet och konstaterat att det är i API:n fördröjningen sker. Det spelar ingen roll om jag startat någon av COM-filerna med min filhanterare eller manuellt från Windows Program-meny, samma fördröjning sker ändå. I bägge fallen är det bara första gången API:n anropas som fördröjningen sker, därefter fungerar API:n felfritt. För övrigt hade jag samma problem när jag försökte skicka mappsökvägar till ShellExecute efter att COM-filer körts. Koden på modulnivå ser ut så här<code>Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nshowcmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
Private Declare Function GetDesktopWindow Lib "user32" () As Long</code>Koden i den anropande rutinen ser ut så här<code> Dim hWndDesk As Long
Dim success As Long
Dim sFile As String
If MsgBox(Namn & " saknas på angiven plats" & Chr(10) & Chr(10) & "Vill du söka efter filen?", 35, "Fil saknas") <> 6 Then Exit Sub
hWndDesk = GetDesktopWindow()
success = ShellExecute(hwnd, "find", _
sFile, _
vbNullString, _
vbNullString, _
SW_SHOWNORMAL)
If Success < 33 Then
MsgBox "Kunde inte starta Windows sökfunktion", vbCritical, "Sök " & Namn
Exit Sub
End If
DoEvents
SendKeys Namn, True
SendKeys "{ENTER}", True</code>"Namn" är en variabel för namnet på den saknade filen. Jag har Excel 2000 och Windows 95. Är det någon som kan säga vad som är problemet och om och i så fall hur det kan åtgärdas?

mvh
Lars xl


Svara

Sv: COM-filer stör ShellExecute-API:n

Postades av 2003-01-28 21:35:08 - Raderat konto

Glöm frågan!
Nu när jag testar API:n uppstår inte problemet Kanske det beror på att jag startat om datorn eller vad vet väl jag? Fel har det i alla fall när jag utvecklade koden. Återkommer om felet uppstår igen


Svara

Sv: COM-filer stör ShellExecute-API:n

Postades av 2003-01-29 16:24:22 - Raderat konto

Jaha, och nu är felet tillbaka. Hjääääälp!


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-30 14:13:12 - Andreas Hillqvist

Kan ju bero på att aktuellsökväg ändras och windows måste söka fram Find. Find finns i windows systemkatalog(System32 på NT-system). Borde det inte vara bättre att ange dess exakta sökväg. Kan ju vara det.


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-30 14:29:07 - Raderat konto

Men varför skulle aktuell sökväg ändras endast i de fall när jag kört .COM-filer. I alla andra fall är det problemfritt. Dessutom fördröjs ibland även öppning av mappar efter körning av COM-filer. Ytterligare en konstighet är att problemet kommer och går. Just nu är det inget problem. Kan det vara så att något i systemet överbelastas när jag jobbat i VBA-gränssnittet.

Hur får jag fram sökvägen till Find. Det borde väl vara en API och jag behöver något som täcker Windows 95 och framåt och NT 4 och framåt?


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-30 14:56:21 - Andreas Hillqvist

Tror detta skall funka
<code>
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Function SystemDirectory() As String
Dim lpBuffer As String
Dim lReturn As Long
Const MAX_PATH As Long = 255&
lpBuffer = String(MAX_PATH, 0)
lReturn = GetSystemDirectory(lpBuffer, MAX_PATH)
If lReturn > 0 Then
SystemDirectory = Left(lpBuffer, lReturn)
End If
End Function
</code>


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-30 16:20:05 - Raderat konto

Menar du att det skulle starta det jag vill: Start-menyns sökfunktion? Den enda fil som heter Find på hårddisken ligger i C:\Windows\Command och heter Find.exe. Din API returnerar bara C:\Windows\System. Hur ska jag starta sökfunktionen med det? Vid manuell körning (dubbelklick på ikonen) startas Find.exe i ett DOS-fönster, så det är väl det enda den klarar. Min ursprungliga fråga var kanske otydlig, så jag preciserar den ovan. Det är Start-menyns sökfunktion jag vill ha.


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-30 18:29:45 - Andreas Hillqvist

Den låg i System32 på XP.


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-30 22:10:22 - Jonas Svensson

Tror knappast att du behöver bry dig om sökvägen. Find är bara ett namn som talar om vad shellexecute ska göra, och har inget direkt samband med en fil.


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-31 06:44:13 - Raderat konto

Jag tror att det är fel i handtags-parametern. I VB skriver man Me.hwnd men det går inte i VBA för Excel. Jag har därför tagit bort Me - även i andra API-anrop - med framgång och bara skrivit hwnd eller GetForegroundWindow men det tycks vara fel väg, så jag skulle vilja ha tag på ett handtag till anropande Excel-instansens handtag. Vet någon hur man gör?


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-01-31 10:53:39 - Jonas Svensson

Det jag märkt är om man använder en felaktig sökväg till katalogen som Find ska starta i så funkar det inte(sFile i ditt exempel).
ShellExecute(0,'find', 'felaktig sökväg', Nil, Nil, SW_SHOWNORMAL);


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-02-02 09:50:20 - Raderat konto

Hur jag än prövar så är det körning av COM- och BAT-filer, som stör sökningen efter en fil och öppnning av en mapp med ShellExecute, dvs störningen sker på mappval där lpOperation är satt till explore sller find. Jag är dålig på operativsystem, så ursäkta min amatörmässiga beskrivning: När jag kör COM- och BAT-filer, så körs de i DOS-läge eller kanske det heter DOS-fönster, det är vad som är gemensamt, det är då störningen av ShellExecute uppstår och alltid bara en gång (en gång vid sökning och en gång vid öppning av en mapp), aldrig annars. Exekvering av dokument- och programfiler funger med andra ord utan problem. Finns det något sätt att få operativsystemet att släppa/koppla loss DOS-fönstren utan att stänga dem? Det verkar ju som om operativsystemet tar väldigt lång tid på sig för att fundera vad som ska göras, bara för att ett DOS-fönster är eller har varit öppet.


Svara

Sv: COM-filer stör ShellExecute-API:n ibland

Postades av 2003-02-06 19:10:24 - Raderat konto

Nu tror jag mig ha märkt ytterligare en signifikant egenskap när *.COM- och *.BAT-filer stör ShellExecute. Det är när jag har en eller flera minneskrävande filer öppna i något program samtidigt med Excel. Det kan röra sig om ett dokument på närmare 2 Mb. När endast Excel tillsammans och några mindre program är öppna sker ingen fördröjning. Jag har en Cyrix 155 MHz-processor, 68 Mb internminne, Windows 95 och 1,6 Mb hårddisk.

Kan det var så att datorn - i fallen med relativt minneskrävande program - är näst intill totalt överbelastat och är det därför buggen uppstår och i så fall, går det att åtgärda programmeringsmässigt? Kan man tex se till att Excel eller ShellExecute får någon form av högsta prioritet för åtkomst av minne och processor? Kan man tex ta minne från DOS-fönster eller annat?

Varför uppstår fördröjningen bara när man har eller har haft ett DOS-fönster öppet och man skickar mappar till ShellExecute (fast bara först gången) och aldrig med vanliga dokument- eller programfiler?


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 619
27 953
271 709
339
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
Expand
next previous
Close

Previous

0/0

Next