![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hi,
Ich habe ein Problem mit der API SHFileOperation. Ich will damit eine Menge Dateien löschen. Das funktioniert auch soweit gut wie gewollt. Nur wenn eine Datei dabei ist die noch in Anwendung ist, kommt es zu einem seltsamen Verhalten. Es kommt dann die Meldung, dass die Aktion nicht abgeschlossen werden konnte mit den Buttons "Wiederholen" und "Abbrechen". Wenn ich dann auf Abbrechen klicke bleibt das Programm im Aufruf der SHFileOperation stehen und kehrt nicht aus der Proc zurück. Die Rückgabe kann ich schon nicht mehr abfragen, weil das Programm nicht soweit kommt Mein Aufruf Var F&=External("SHELL32","SHFileOperationA",opstruct#) Messagebox(str$(f&),"",0) Zur Messagebox kommt das Programm schon nicht mehr. Es stürzt aber auch nicht hart ab. Die Bedienelemente sind weiterhin sichtbar klickbar aber es passiert nichts, weil das Programm im API-Aufruf steht. Soweit ist alles richtig, Files mit 2 Nullbytes abgeschlosssen usw., ich benutze die Routine schon sehr lange aber das mit der benutzten Datei passiert zum ersten Mal bei mir. Bei anderen Fehlern gehts auch dann weiter nur bei diesem nicht. Weiß jemand eine Möglichkeit oder hat eine Idee wie ich aus dem Aufruf wieder rauskomme. Windows 7 |
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Poste mal lauffähigen Code, der diesen Fehler produziert.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Hast du auch die Flags FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR gesetzt? Ansonsten kann man, wie AHT schon schrieb, ohne Testquellcode nicht groß weiter helfen.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#4 (Direktlink) |
|
Gast
Beiträge: n/a
|
Es ist eigentlich der übliche Code wie er vielfach herumschwirrt
Code:
Proc Fileoperation
Parameters operation$,File$,File2$,confirm%,recycle%,can%
Declare opstruct#,file#,file2#,title#,operation&
Var FOF_Flag% = 1 | 512 | 2048 'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
Dim title#,24
string title#,0 = "Fileoperation Progress"
Select upper$(operation$)
CaseOf "MOVE"
operation&=1
CaseOf "COPY"
operation&=2
CaseOf "DELETE"
operation&=3
CaseOf "RENAME"
operation&=4
endselect
case confirm%:confirm%=16
Casenot recycle%:recycle%=64
If can%
FOF_Flag% = FOF_Flag% | confirm% | recycle% | $20 | 8 '$20 = FOF_WANTMAPPINGHANDLE 8 = FOF_RENAMEONCOLLISION
Else
FOF_Flag% = FOF_FLAG% | confirm% | recycle% '16 = FOF_NOCONFIRMATION,64 = FOF_ALLOWUNDO
endif
Dim opstruct#,30:Dim file#,(Len(file$)+2):Dim file2#,(Len(file2$)+2)
Char file#,0 = file$+Chr$(0)+Chr$(0):Char file2#,0 = file2$+Chr$(0)+Chr$(0)
Long opstruct#,0 = GetActiveWindow()
Long opstruct#,4 = operation&
Long opstruct#,8 = file# ' pfrom
Long opstruct#,12 = file2# 'pto
Word opstruct#,16 = FOF_Flag%
Long opstruct#,18 = 0
Long opstruct#,22 = 0
Long opstruct#,26 = Title#
Var FEHLER&=External("SHELL32","SHFileOperationA",opstruct#)
case (long(opstruct#,18)=1):MessageBox("Die Dateioperation wurde abgebrochen!","Abbruch durch Benutzer!",64)
case (Fehler& <> 0):MessageBox(ShFehlertext(fehler&),"Es ist ein Fehler aufgetreten",16)
If val($WinVer)> 5.0
Case LONG(opstruct#,22) <> 0:External("Shell32","SHFreeNameMappings",LONG(opstruct#,22)) 'min XP
endif
Dispose file#,file2#,opstruct#,title#
return
EndProc
Geändert von Frabbing (27.01.2012 um 14:12 Uhr) Grund: Codetags gesetzt |
|
|
|
#5 (Direktlink) |
|
Gast
Beiträge: n/a
|
Wenn ich FOF_SILENT dazunehme erscheint zwar der Dialog trotzdem, aber nach abbrechen geht es schon mal weiter.
|
|
|
|
|
#6 (Direktlink) |
|
Gast
Beiträge: n/a
|
ist zwar seltsam aber FOF_SILENT hat es gebracht. Nach der Beschreibung nach sollen ja nur Meldungen unterdrückt werden. Aber der Dialog erscheint trotzdem, der Abbrechen-Button scheint dadurch aber zu funktionieren, was er zuvor offentsichtlich nicht tat.
Vielen Dank für die Hilfe |
|
|
|
#7 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
FOF_SILENT
Do not display a progress dialog box. Ich würde das übersetzen mit "Verhindert eine Fortschritt-Anzeige", verhindert also nicht zwangsläufig alle Dialoge.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#8 (Direktlink) |
|
Gast
Beiträge: n/a
|
Ja du hast natürlich recht, Ich habe mir das mal vor längerer Zeit angeschaut und mit FOF_NOERRORUI aus der lückenhaften Erinnerung verwechselt. Gerade eben nochmals nachgelesen. Ist aber dann noch seltsamer, dass damit irgendeine eine Wirkung in der Richtung erzielt wird. Da muss ich mal alle anderen auch testen, ob da auch irgendwas in der Richtung passiert.
|
|
|
|
#9 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
|
Und was ist der Wert von FOF_SILENT, bitte? Bzw.: Wo finde ich das?
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#10 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
nimm die 4
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
|
#11 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
|
Danke!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#12 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Wenn man keine Header zur Verfügung hat einfach den Suchbegriff, Leerzeichen und Gleichzeichen bei Google eingeben, dann findet man immer das Gewünschte auf den ersten (beiden) Seiten.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#13 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Und dann gibt es ja noch das hier: http://www.gerhard-putschalka.xprofan.com/api_hilfe.zip
Da steht fast alles drin.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
#14 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Naja, das mit Google funktioniert so leider oftmals nicht.
Bei den heutigen riesigen Festplatten und den meist vorhandenen Flatrates, sollte man besser das Plattform SDK von MS laden und installieren, da findet man wirklich alle Header.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#15 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
In API-Hilfe oder auch Konstantinopel steht einiges, aber leider nur alte 0815-Sachen. Mit exotischen Sachen war ich selber bisher bei Google immer noch fündig geworden. Die PSDK ist mir fürs Netbook z.B. viel zu gewaltig.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Direct3D Problem NEUES PROBLEM | Bonser | Treiber-Forum | 3 | 28.11.2007 14:42 |
| Problem mit Game. Grafiktreiber Problem?!?! | Chillers | Hardware - Problemlösungen | 4 | 16.05.2006 16:13 |
| Counter Strike: Server Problem sowie Online Problem | Simon@Xp | Computerspiele | 4 | 10.04.2006 14:30 |
| Bildschirm friert ein - DirectX Problem - ATI-Problem | LudBri | Allgemein | 1 | 01.01.2006 13:02 |
| Problem (Keine Ahnung, welches Problem das ist) | Der_Gast | Hardware - Problemlösungen | 3 | 11.10.2003 18:17 |