Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Kein Audiogerät
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 129
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27.01.2012, 07:03   #1 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard Problem mit API SHFileOperation

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
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 27.01.2012, 09:41   #2 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Poste mal lauffähigen Code, der diesen Fehler produziert.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Alt 27.01.2012, 11:07   #3 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist gerade online   Mit Zitat antworten
Alt 27.01.2012, 11:12   #4 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard

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
  Mit Zitat antworten
Alt 27.01.2012, 11:24   #5 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard

Wenn ich FOF_SILENT dazunehme erscheint zwar der Dialog trotzdem, aber nach abbrechen geht es schon mal weiter.
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 27.01.2012, 13:44   #6 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Lächeln

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
  Mit Zitat antworten
Alt 27.01.2012, 15:00   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist gerade online   Mit Zitat antworten
Alt 27.01.2012, 16:27   #8 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard

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.
  Mit Zitat antworten
Alt 28.01.2012, 00:32   #9 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
Standard

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
p. specht ist gerade online   Mit Zitat antworten
Alt 28.01.2012, 02:06   #10 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 28.01.2012, 08:38   #11 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.083
Standard

Danke!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist gerade online   Mit Zitat antworten
Alt 28.01.2012, 16:06   #12 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist gerade online   Mit Zitat antworten
Alt 28.01.2012, 16:09   #13 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

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
AHT ist offline   Mit Zitat antworten
Alt 28.01.2012, 16:09   #14 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

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
ts-soft ist gerade online   Mit Zitat antworten
Alt 28.01.2012, 16:15   #15 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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.
Frabbing ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ä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



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:53 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2