myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Irgendwo in der Registry (https://mygully.com/showthread.php?t=1904350)

Answer 03.09.09 17:41

Irgendwo in der Registry
 
Hallöle,
Also ich wollte mit AutoIt mal einen Test machen.
Wenn ich doppelklick auf ein BMP bild auf dem Desktop mache, dann öffnet er das Bild automatisch mit meinem Programm.
Und jezt bin ich so weit, dass ich in die Registry einen Eintrag gemacht habe, dass er das Bild mit meinem Programm öffnen soll.


Das ist das Installations s*****:

Code:

$Endung = "bmp" ;ohne Punkt
$ProgPath = @DesktopDir & "\pic.exe"

$keyname= "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\."&$Endung
$value = $Endung&"_auto_file"
$valuename = "Hallo"
$type = "REG_SZ"

$keyname2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\" & $value & "\shell\open\command"
$value2 = $ProgPath
$type2 = "REG_EXPAND_SZ"

RegWrite($keyname,$valuename,$type,$value)
RegWrite($keyname2,$valuename,$type2,$value2)


und das ist das eingentliche programm in dem das Bild angezeigt werden soll:
Code:

GUICreate("hallo", 200,200)
GUICtrlCreatePic(RegRead(???????), 0,0, 200,200)
GUISetState()
Sleep(3000)
; Als test das Programm
MsgBox(0, "", RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\bmp_auto_file\shell\open\command","Hallo"))

Jezt muss ich nur noch wissen, wo in der Registry steht welches bild mit Doppelklick gestartet worden ist
(deswegen auch Regread(???????))

vielleicht könnt ihr mir Helfen

thx
Answer

manta656 04.09.09 00:18

hmm sry mit Auto it , kenne ich mich nicht aus , aber ich glaube nicht , dass in der Registery steht , welches Bild geöffnet wurde.

Nightmare2800 04.09.09 07:22

Mit Auto It hab ich leider auch keine erfahrungen. Was ich aber weiß ist das in der Reg bei jedem Datentyp immer die dazugehörigen Programme aufgeführt werden. Sieh mal unter:
Code:

HKEY_CLASSES_ROOT\
nach und such dort nach der Endung mit der du in deinem Programm umgehen willst. In deinem fall währe der komplette Pfad
Code:

HKEY_CLASSES_ROOT\.bmp
Hier müsstest du dich dann schaul machen nach welchen Kriterien er das Std Programm für diesen Dateityp wählt. Vom gefühl her würd ich einfach mal behaupten das man unter dem String Wert (Default) das programm eintragen müsste, ist aber leider nur eine Vermutung.

greez
Nightmare

Answer 04.09.09 11:06

Erstmal danke dafür, dass ihr euch mit meinem Problem beschäftigt.

@Nightmare2800
Da hab ich grad geguckt aber da steht nix.

Vielleicht wisst ihr ja, wie das in anderen Programmiersprachen gemacht wird.
hmmm... ich hab mal Gegoogelt aber nix gefunden. Da hat aber einer gesagt, ich soll $CMDLine[0] als Pfad angeben. Aber was ist $CMDLine[0]??? Hat auch nicht geklappt.:dozey:

Hoffe mal, das noch mehr Antworten kommen:(

Answer 28.09.09 15:41

YAHOOOOOOSA....
ich habs.

$CMDLine[0] gibt 0 zurück, wenn man die .exe mit doppelclick öffnet und 1, wenn man die .bmp mit doppelclick öffnet.
$CMDLine[1] gibt wenn $CMDLine[0] 1 beträgt den Pfad zurück

also:
Code:

If $CMDLine[0] = 1 Then
    $paht = $CMDLine[1]
Endif


Hab durch zufall einfach mal $CMDLine[1 brobiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.