Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ShellExecute - assoc (https://www.delphipraxis.net/106730-shellexecute-assoc.html)

cran7 15. Jan 2008 18:16


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:
ShellExecute(Application.Handle, 'open', 'cmd.exe', PChar('/C assoc .bat = batfile '), nil, SW_show);
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)

lbccaleb 15. Jan 2008 18:26

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

cran7 15. Jan 2008 18:30

Re: ShellExecute - assoc
 
bigges THX, genau das was ich gesucht hab :)

lbccaleb 15. Jan 2008 18:37

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

cran7 15. Jan 2008 18:54

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;

Apollonius 15. Jan 2008 19:05

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.

cran7 15. Jan 2008 19:31

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

Die Muhkuh 15. Jan 2008 19:34

Re: ShellExecute - assoc
 
Zitat:

Zitat von cran7
das was lbccaleb in seinem ersten post gesagt hat, der wert dort heist (standard), manuel kann ich ihn verändern und es geht...

Wie Du veränderst mich und es geht? :shock:

Apollonius 15. Jan 2008 19:35

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.

lbccaleb 15. Jan 2008 19:43

Re: ShellExecute - assoc
 
ich glaube du musst das so aufrufen, um den standart string zu bekommen:
Delphi-Quellcode:
    reg.OpenKey('', false);
    reg.WriteString('', 'batfile1');
bin mir da aber jetzt so sicher, und das ist es doch was ihr meint??


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.
Seite 1 von 2  1 2      

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