2014-04-10 7 views
-2

URL을 현재 Internet Explorer URL에서 문자열로 반환하는 방법을 찾고 있습니다.Internet Explorer의 현재 url을 문자열로 가져 오는 가장 좋은 방법은 무엇입니까

이 접근법은 dde를 사용합니다. 그것은 매우 빠르며 잘 동작합니다. 두 부분 모두에서 매우 긴 문자열을 따옴표로 반환합니다. "http://core2.staticworld.net/images/article/2014/01/counterfeit_android_apps1-100227383-medium.jpg"

, "http://core2.staticworld.net/images/article/2014/01/counterfeit_android_apps1-100227383-medium.jpg"그러나 나는 따옴표없이 첫 번째 쉼표 전에 단지 첫 번째 부분을 찾고 있는데요 :

uses 
    ddeman; 

function GetURL(Service: string): string; 
var 
    ClDDE: TDDEClientConv; 
    temp: PAnsiChar; 
begin 
    Result := ''; 
    ClDDE := TDDEClientConv.Create(nil); 
    with ClDDE do 
    begin 
    SetLink(Service, 'WWW_GetWindowInfo'); 
    temp := RequestData('0xFFFFFFFF'); 
    Result := StrPas(temp); 
    StrDispose(temp); 
    CloseLink; 
    end; 
    ClDDE.Free; 
end; 

예를 들어이 반환을위한 http://core2.staticworld.net/images/article/2014/01/counterfeit_android_apps1-100227383-medium.jpg

어떤 제안 또 다른 방법이나 문자열을 구문 분석하여 따옴표없이 문자열의 첫 번째 부분 만 표시된 결과를 생성하는 방법은 무엇입니까?

당신은 꽤 간단하게 문자열을 구문 분석 할 수
+2

왜 y를 할 수 없습니다 ou는 쉼표 앞에있는 부분을 추출한 다음 따옴표를 직접 제거합니까? –

+0

http://stackoverflow.com/questions/8445742/how-to-get-the-url-of-the-internet-explorer-tabs-with-pid-of-each-tab –

+0

나는 어떻게 정의합니까? 현재 * 여러 번 탭이 여러 개있는 창 (배경이 모두있는 경우). –

답변

2

자신 : 여기

// Extract string up to position of the , 
Temp := Copy(Temp, 1, Pos(',', Temp) - 1); 
// Remove double-quotes from resulting string 
Temp := StringReplace(temp, '"', '', [rfReplaceAll]); 

는 제공되는 샘플 응답에 위의 논리를 사용하는 샘플 콘솔 응용 프로그램, 그리고 콘솔에 최종 내용을 출력합니다

program Project2; 

{$APPTYPE CONSOLE} 

uses 
    SysUtils; 

const 
    LinkStr = '"http://core2.staticworld.net/images/article/2014/01/counterfeit_android_apps1-100227383-medium.jpg","http://core2.staticworld.net/images/article/2014/01/counterfeit_android_apps1-100227383-medium.jpg"'; 

var 
    Temp: string; 

begin 
    Temp := Copy(LinkStr, 1, Pos(',', LinkStr) - 1); 
    Temp := StringReplace(Temp, '"', '', [rfReplaceAll]); 
    Writeln('After: ' + Temp); 
    ReadLn; 
end. 

출력 :

enter image description here

+0

@Ken ... 따옴표가 제거되었지만 불행히도 전체 문자열이 첫 번째 문자열 대신 반환됩니다 쉼표 앞에있는 문자열의 일부. – Bill

+0

@Bill : 그건 사실이 아니야. 당신이 제공 한 ** 정확한 ** 문자열을 사용하여 (복사하고 붙여 넣은) 편집 된 대답을보고 인용 부호가 제거 된 첫 번째 부분 (쉼표까지) 만 출력합니다. –

+0

dde를 사용하는 것에 대한 대안이 있는지 알고 있으면 좋을 것입니다. 도움을 주신 Ken 께 감사드립니다. – Bill