그래서 레지스트리를 사용하여 Inno에서 ODBC 연결을 생성하는 중입니다. 내가 겪었던 문제는 Inno가 내가 설정 한 모든 키를 생성하지 않는다는 것입니다. 64 비트 버전의 Windows를 사용하고 32 비트 Inno 설치 프로그램을 사용하여 32 비트 응용 프로그램을 설치합니다. 내가 사용하고 경로는 HKLM \ 소프트웨어입니다 \ WOW6432Node \ ODBC \ ODBC.INIInno 설정으로 모든 ODBC REG 키가 생성되지 않음
예 :이 32 비트 ODBC 관리자에서 연결을 생성 TESTDBF1
: 나는 값을 유지하는 연결 TESTDBF1이 하지만 또한 사용자 지정 dBase 버전 (IV)과 디렉터리 (C : \ DIR)를 지정해야합니다. 이를 수행하려면 아래의 하위 키를 추가해야합니다. 그렇지 않으면 ODBC 관리자는 기본 dBase 버전 (V) 및 현재 디렉터리 만 표시합니다.
또한 The keys in the Xbase directory.
This Xbase directory is needed to hold the custom settings specified in the main TESTDBF1 section
, 내가 이름을 추가 TESTDBF1를 문자열로 "드라이버는 어떻게 마이크로 소프트 디베이스 (* .DBF)"WOW6432Node \ ODBC \ ODBC.INI \ ODBC 데이터 소스로.이러한 명령을 모두 실행하려면 TESTDBF1.reg를 작성하여 기능을 확인하십시오. 이 파일을/병합 실행시
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1]
"Driver"="C:\\WINDOWS\\system32\\odbcjt32.dll"
"DefaultDir"="C:\\IBS"
"DriverId"=dword:00000115
"FIL"="dBase IV;"
"SafeTransactions"=dword:00000000
"UID"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines]
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase]
"CollatingSequence"="ASCII"
"Deleted"=hex:00
"ImplicitCommitSync"=""
"PageTimeout"=dword:00000005
"Statistics"=hex:00
"Threads"=dword:00000003
"UserCommitSync"="Yes"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI\ODBC Data Sources]
"TESTDBF1"="Driver do Microsoft dBase (*.dbf)"
는, 모든 키가 성공적으로 만들어지고 나는 값이 ODBC 관리자에 표시되는 사용자 정의를 확인할 수 있습니다.
그래서 저는 생각합니다 - 안녕하세요! 이제 Inno에 추가 할 수 있습니다! No. Inno Script Studio를 제 컴파일러로 사용하고 있습니다. 레지스트리 파일 TESTDBF1.reg를 가져 왔습니다. 방금 스크립트에 사용한 다음 설치 프로그램을 실행합니다. 그런 행운은 없습니다. \ WOW6432Node \ ODBC \ ODBC.INI \ TESTDBF1에있는 모든 키가 생성되지만 다음 하위 디렉토리는 생성되지 않습니다 (\ Engines 및 \ Engines \ Xbase).주의 : Xbase는 ODBC.INI \ TESTDBF1은 ODBC 관리자를 열 때 보류됩니다.
; Imported Registry File: "C:\Users\Support\Documents\test\TESTDBF1.reg"
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: string; ValueName: "Driver"; ValueData: "C:\WINDOWS\system32\odbcjt32.dll"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: string; ValueName: "DefaultDir"; ValueData: "C:\DIR"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: dword; ValueName: "DriverId"; ValueData: "$00000115"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: string; ValueName: "FIL"; ValueData: "dBase IV;"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: dword; ValueName: "SafeTransactions"; ValueData: "$00000000"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: string; ValueName: "UID"; ValueData: ""; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: string; ValueName: "CollatingSequence"; ValueData: "ASCII"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: binary; ValueName: "Deleted"; ValueData: "00"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: string; ValueName: "ImplicitCommitSync"; ValueData: ""; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: dword; ValueName: "PageTimeout"; ValueData: "$00000005"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: binary; ValueName: "Statistics"; ValueData: "00"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: dword; ValueName: "Threads"; ValueData: "$00000003"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1\Engines\Xbase; ValueType: string; ValueName: "UserCommitSync"; ValueData: "Yes"; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\ODBC Data Sources; ValueType: string; ValueName: "TESTDBF1"; ValueData: "Driver do Microsoft dBase (*.dbf)"; Flags: uninsdeletekey;
흠 다음 TESTDBF1.reg를 확인하는 것은 다시 작동 후
그래서, 나는 이노에 쓰고 있어요 코드를 살펴. 나는 그것으로 잘못된 것을 발견 할 수 없다. 나는 설치 스크립트를 다른 이름, 디렉토리 등으로 반복해서 실행했고, 무엇을하든 관계없이 \ Engines \ Xbase 키를 설치 스크립트 내부에서 쓸 수는 없다.
이제 설치가 끝나면 .reg 파일을 실행하지 않으시겠습니까?
내 스크립트의 일부가이 등록 키의 일부로 설치 디렉토리 (변경 사항)를 사용하기 때문에. ValueData를 참고하십시오. 예 :
Root: HKLM; Subkey: SOFTWARE\WOW6432Node\ODBC\ODBC.INI\TESTDBF1; ValueType: string; ValueName: "DefaultDir"; ValueData: "{app}\IBS"; Flags: uninsdeletekey;
설치 프로그램을 실행 한 후,이 어떤 도움이 많이 주시면 감사하겠습니다
HKLM \ SOFTWARE \ WOW6432Node \ ODBC \ ODBC.INI \ TESTDBF1에서 생성되는 키입니다 - 나는이 시점에서 꽤 난처한 상황이다.