![]() |
ShellExecute - assoc
Ich hab hier n problem, ich will das man keine .bat's mehr ausführen kann. Ich dachte mir wieso nich mit assoc .bat = error (oder sonstwas) und später wieder rückgängig mit assoc .bat = batfile
ich habs mit shellexecute ausprobiert, aber das ging leider net.
Delphi-Quellcode:
dann hab ichs noch in der Registry mit "DisableCMD" mit dem wert "2" probiert, aber das hat auch nicht hingehauen :( (mit dem wert 1 konnt ich CMD verbieten)
ShellExecute(Application.Handle, 'open', 'cmd.exe', PChar('/C assoc .bat = batfile '), nil, SW_show);
|
Re: ShellExecute - assoc
du möchtest also das man auf deinem windows system keine *.bat dateien aus führen kann mehr nicht, oder was genau ist da jetzt die frage??
wenn du das verhindern willst, kannst du in dem reg schlüssel HKEY_CLASSES_ROOT\.bat den standart wert "batfile" ändern in "batfile1", und wenn du es wieder einschalten willst nimmst die 1 wieder weg.. |
Re: ShellExecute - assoc
bigges THX, genau das was ich gesucht hab :)
|
Re: ShellExecute - assoc
da verlierst du allerdings die explorer symbole, und kannst mit der rechten maustaste nicht mehr drucken und gar nichts, wenn du das allerdings noch behalten willst, dann gehst du in den schlüssen "HKEY_CLASSES_ROOT\batfile\shell\open\command"
nun änderst du hier command wie oben (einfach ne 1 anhängen) und dann ist alles so wie vorher, kannst im popup menü der rechten maustaste noch drucken und so auswählen... nur nicht mehr ausführen.. willst das rückgängig machen, die 1 einfach wieder entfernen.. achja, für änderungen die du an deiner registry machst übernehm ich keine verantwortung ;-) p.s. falls du oben mein 1 post schon befolgt hast musst du dort die eins auch wieder weg nehmen, wenn du es nach dem machen willst ;-) das ganze sollte auch erst nach nem neustart funktionieren.. |
Re: ShellExecute - assoc
also das ich keine bat mehr ausführen kann würde erst nach restart gehn? das is net so gut
und bei dem post drüber schaff ichs net das per reg zu machn... (ich kann noch rechtsklickn und andre sachn auf desktop ausführen)
Delphi-Quellcode:
procedure DisableBat(bTF: boolean);
var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CLASSES_ROOT; reg.OpenKey('.bat', True); if bTF = true then begin reg.OpenKey('(Standard)', false); reg.WriteString('(Standard)', 'batfile1'); reg.CloseKey; end else if bTF = false then begin reg.OpenKey('(Standard)', false); reg.WriteString('(Standard)', 'batfile'); reg.CloseKey; end; reg.CloseKey; end; |
Re: ShellExecute - assoc
Was willst du tun? Und den Schlüssel (Standard) gibt es nicht, weder mit d noch mit t. Der Schlüssel ist ein Leerstring.
|
Re: ShellExecute - assoc
das was lbccaleb in seinem ersten post gesagt hat, der wert dort heist (standard), manuel kann ich ihn verändern und es geht...
|
Re: ShellExecute - assoc
Zitat:
|
Re: ShellExecute - assoc
NEIN, DER WERT HEISST NICHT STANDARD. Entschuldige bitte, dass ich schreie. Ich wiederhole: Der Schlüssel ist ein Leerstring. Was Regedit daraus macht, ist etwas anderes.
|
Re: ShellExecute - assoc
ich glaube du musst das so aufrufen, um den standart string zu bekommen:
Delphi-Quellcode:
bin mir da aber jetzt so sicher, und das ist es doch was ihr meint??
reg.OpenKey('', false);
reg.WriteString('', 'batfile1'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz